arize-phoenix 10.10.0__py3-none-any.whl → 10.12.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of arize-phoenix might be problematic. Click here for more details.
- {arize_phoenix-10.10.0.dist-info → arize_phoenix-10.12.0.dist-info}/METADATA +2 -2
- {arize_phoenix-10.10.0.dist-info → arize_phoenix-10.12.0.dist-info}/RECORD +20 -19
- phoenix/experiments/functions.py +1 -1
- phoenix/experiments/tracing.py +1 -1
- phoenix/server/api/helpers/playground_clients.py +0 -1
- phoenix/server/api/input_types/DatasetFilter.py +14 -0
- phoenix/server/api/queries.py +4 -0
- phoenix/server/api/routers/v1/spans.py +164 -3
- phoenix/server/api/types/Project.py +29 -4
- phoenix/server/static/.vite/manifest.json +9 -9
- phoenix/server/static/assets/{components-DIL5A2s_.js → components-CKFZdR5A.js} +1 -1
- phoenix/server/static/assets/{index-BX0gVSKm.js → index-D3uXREcK.js} +1 -1
- phoenix/server/static/assets/{pages-DNp2bYa0.js → pages-BEpY_9Jm.js} +353 -349
- phoenix/server/telemetry.py +1 -1
- phoenix/trace/projects.py +1 -1
- phoenix/version.py +1 -1
- {arize_phoenix-10.10.0.dist-info → arize_phoenix-10.12.0.dist-info}/WHEEL +0 -0
- {arize_phoenix-10.10.0.dist-info → arize_phoenix-10.12.0.dist-info}/entry_points.txt +0 -0
- {arize_phoenix-10.10.0.dist-info → arize_phoenix-10.12.0.dist-info}/licenses/IP_NOTICE +0 -0
- {arize_phoenix-10.10.0.dist-info → arize_phoenix-10.12.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: arize-phoenix
|
|
3
|
-
Version: 10.
|
|
3
|
+
Version: 10.12.0
|
|
4
4
|
Summary: AI Observability and Evaluation
|
|
5
5
|
Project-URL: Documentation, https://arize.com/docs/phoenix/
|
|
6
6
|
Project-URL: Issues, https://github.com/Arize-ai/phoenix/issues
|
|
@@ -108,7 +108,7 @@ Requires-Dist: tox-uv==1.11.3; extra == 'dev'
|
|
|
108
108
|
Requires-Dist: tox==4.18.1; extra == 'dev'
|
|
109
109
|
Requires-Dist: types-jsonschema; extra == 'dev'
|
|
110
110
|
Requires-Dist: types-tabulate; extra == 'dev'
|
|
111
|
-
Requires-Dist: uv==0.
|
|
111
|
+
Requires-Dist: uv==0.7.12; extra == 'dev'
|
|
112
112
|
Requires-Dist: uvloop; (platform_system != 'Windows') and extra == 'dev'
|
|
113
113
|
Provides-Extra: embeddings
|
|
114
114
|
Requires-Dist: fast-hdbscan>=0.2.0; extra == 'embeddings'
|
|
@@ -6,7 +6,7 @@ phoenix/exceptions.py,sha256=n2L2KKuecrdflB9MsCdAYCiSEvGJptIsfRkXMoJle7A,169
|
|
|
6
6
|
phoenix/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
7
7
|
phoenix/services.py,sha256=ngkyKGVatX3cO2WJdo2hKdaVKP-xJCMvqthvga6kJss,5196
|
|
8
8
|
phoenix/settings.py,sha256=x87BX7hWGQQZbrW_vrYqFR_izCGfO9gFc--JXUG4Tdk,754
|
|
9
|
-
phoenix/version.py,sha256=
|
|
9
|
+
phoenix/version.py,sha256=pBrSaHNsQ4T1_xrksWp-HQLyHewcLal4iOxu8yfGX7M,24
|
|
10
10
|
phoenix/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
11
|
phoenix/core/embedding_dimension.py,sha256=zKGbcvwOXgLf-yrJBpQyKtd-LEOPRKHnUToyAU8Owis,87
|
|
12
12
|
phoenix/core/model.py,sha256=qBFraOtmwCCnWJltKNP18DDG0mULXigytlFsa6YOz6k,4837
|
|
@@ -56,8 +56,8 @@ phoenix/db/types/identifier.py,sha256=Opr3_1di6e5ncrBDn30WfBSr-jN_VGBnkkA4BMuSoy
|
|
|
56
56
|
phoenix/db/types/model_provider.py,sha256=vrG0yIQqy-SwvRJ1aGJqpCjPZ29vRAi6550CnvSyj2E,221
|
|
57
57
|
phoenix/db/types/trace_retention.py,sha256=fyqAQCvDiD7mpJ_WUqbPyQvuSdERof4DpKpHLJsdROk,9897
|
|
58
58
|
phoenix/experiments/__init__.py,sha256=6JGwgUd7xCbGpuHqYZlsmErmYvVgv7N_j43bn3dUqsk,123
|
|
59
|
-
phoenix/experiments/functions.py,sha256=
|
|
60
|
-
phoenix/experiments/tracing.py,sha256=
|
|
59
|
+
phoenix/experiments/functions.py,sha256=QoNkMW_EamcFyDBwq4WzKkmHVXD5ZFW9MlUaGRssrTQ,38227
|
|
60
|
+
phoenix/experiments/tracing.py,sha256=seNh9rBH-rtQe8_FPI_VJj1rbo3ADcP6wDvERkMoxNc,2858
|
|
61
61
|
phoenix/experiments/types.py,sha256=yntt6fnAny1U4Q9Y5Mm4ZYIb9319OaJovl-kyXFtGQE,23475
|
|
62
62
|
phoenix/experiments/utils.py,sha256=MZ1-OnTcavk_KUtbfGqt55Fk9TGtJpYG_K71WsN-zDk,785
|
|
63
63
|
phoenix/experiments/evaluators/__init__.py,sha256=CPWW1EiufLqc0JWghE4wVAPG_z6Wt4mD_-yf_4IckB4,772
|
|
@@ -101,7 +101,7 @@ phoenix/server/oauth2.py,sha256=GvUqZBoZ5dG-l2G1RMl1SUcN10jNAjaMXFznMSWz2Zs,3336
|
|
|
101
101
|
phoenix/server/prometheus.py,sha256=1KjvSfjSa2-BPjDybVMM_Kag316CsN-Zwt64YNr_snc,7825
|
|
102
102
|
phoenix/server/rate_limiters.py,sha256=cFc73D2NaxqNZZDbwfIDw4So-fRVOJPBtqxOZ8Qky_s,7155
|
|
103
103
|
phoenix/server/retention.py,sha256=MQe1FWuc_NxhqgIq5q2hfFhWT8ddAmpppgI74xYEQ6c,3064
|
|
104
|
-
phoenix/server/telemetry.py,sha256=
|
|
104
|
+
phoenix/server/telemetry.py,sha256=4EluDDrhdDPxAjaW6lVSbi73xkB5XeUCZWOmZGdk0hg,2755
|
|
105
105
|
phoenix/server/thread_server.py,sha256=Ea2AWreN1lwJsT2wYvGaRaiXrzBqH4kgkZpx0FO5Ocw,2144
|
|
106
106
|
phoenix/server/types.py,sha256=b17xahdt6uwDdUYul0xctu7TbBC65AjarlhUzOiXFNE,7443
|
|
107
107
|
phoenix/server/api/README.md,sha256=Pyq1PLPgTzXAswrfIhGXrjI3Skq8it2jTVnanT6Ba4Q,1162
|
|
@@ -110,7 +110,7 @@ phoenix/server/api/auth.py,sha256=cvKH2FQLL7PasiqZMHgu9P4qchhEG7a7P9Nxy35FoIQ,15
|
|
|
110
110
|
phoenix/server/api/context.py,sha256=oxNmVIIyycl22iQZjv59lU1inwlo-Povxe2Ok7t54mw,6954
|
|
111
111
|
phoenix/server/api/exceptions.py,sha256=TA0JuY2YRnj35qGuMSQ8d0ToHum9gWm9W--3fSKHrX0,1171
|
|
112
112
|
phoenix/server/api/interceptor.py,sha256=ykDnoC_apUd-llVli3m1CW18kNSIgjz2qZ6m5JmPDu8,1294
|
|
113
|
-
phoenix/server/api/queries.py,sha256=
|
|
113
|
+
phoenix/server/api/queries.py,sha256=_Ae8W6Y9O3_6gFdWjwVXIiX2kVvN8Ev_VcIQgO4x_88,41278
|
|
114
114
|
phoenix/server/api/schema.py,sha256=fcs36xQwFF_Qe41_5cWR8wYpDvOrnbcyTeo5WNMbDsA,1702
|
|
115
115
|
phoenix/server/api/subscriptions.py,sha256=73s6TzwI2M_bjIZDYwgohdI_13iv7pgpLCvZYNuExnw,23777
|
|
116
116
|
phoenix/server/api/utils.py,sha256=quCBRcusc6PUq9tJq7M8PgwFZp7nXgVAxtbw8feribY,833
|
|
@@ -158,7 +158,7 @@ phoenix/server/api/helpers/__init__.py,sha256=m2-xaSPqUiSs91k62JaRDjFNfl-1byxBfY
|
|
|
158
158
|
phoenix/server/api/helpers/annotations.py,sha256=9gMXKpMTfWEChoSCnvdWYuyB0hlSnNOp-qUdar9Vono,262
|
|
159
159
|
phoenix/server/api/helpers/dataset_helpers.py,sha256=DoMBTg-qXTnC_K4Evx1WKpCCYgRbITpVqyY-8efJRf0,8984
|
|
160
160
|
phoenix/server/api/helpers/experiment_run_filters.py,sha256=DOnVwrmn39eAkk2mwuZP8kIcAnR5jrOgllEwWSjsw94,29893
|
|
161
|
-
phoenix/server/api/helpers/playground_clients.py,sha256=
|
|
161
|
+
phoenix/server/api/helpers/playground_clients.py,sha256=laFDXVnj-n5-nze5OeJSLT5nwdz2IWFTVccKNcLqK7U,47932
|
|
162
162
|
phoenix/server/api/helpers/playground_registry.py,sha256=CPLMziFB2wmr-dfbx7VbzO2f8YIG_k5RftzvGXYGQ1w,2570
|
|
163
163
|
phoenix/server/api/helpers/playground_spans.py,sha256=QpXwPl_fFNwm_iA1A77XApUyXMl1aDmonw8aXuNZ_4k,17132
|
|
164
164
|
phoenix/server/api/helpers/prompts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -178,6 +178,7 @@ phoenix/server/api/input_types/CreateSpanAnnotationInput.py,sha256=BtPB8udqnpK7k
|
|
|
178
178
|
phoenix/server/api/input_types/CreateTraceAnnotationInput.py,sha256=GBzOwRw_GNQq3RwS5kDp32j55VI1czOmvEmRESqCsRQ,625
|
|
179
179
|
phoenix/server/api/input_types/DataQualityMetricInput.py,sha256=WPWRlqSejOnxlLqsbEwPCDgz8ocsyGSb-9SptdCjZEc,1361
|
|
180
180
|
phoenix/server/api/input_types/DatasetExampleInput.py,sha256=9oJ6pCFxFd02IWJuK4YAUvz-jCgFGDUCDDb2--GAzCw,289
|
|
181
|
+
phoenix/server/api/input_types/DatasetFilter.py,sha256=jPJ82ktyvflM7jFlhaMRrY2DjdyOcPBiTO8KMeFKgaE,233
|
|
181
182
|
phoenix/server/api/input_types/DatasetSort.py,sha256=KDKjx5L8WFNwx7O-g1pDzCMMwY-ErgDd1_HkkZBAvCY,333
|
|
182
183
|
phoenix/server/api/input_types/DatasetVersionSort.py,sha256=w9HyP9rQKsZGiGc2f33ZNmiO9g7FN8r77T7GA85kb40,344
|
|
183
184
|
phoenix/server/api/input_types/DeleteAnnotationsInput.py,sha256=nuTcbeRt54XCYc87URI1_ZTTnIBK25EwRJCgNLJqvAM,141
|
|
@@ -241,7 +242,7 @@ phoenix/server/api/routers/v1/experiments.py,sha256=V9_sxqLTE1MKGFu9H3FEdGKr70lY
|
|
|
241
242
|
phoenix/server/api/routers/v1/models.py,sha256=p3gJN-9SWiUYTUTft4bZMsZVCBNTb4nN1Foy68eRZzQ,1997
|
|
242
243
|
phoenix/server/api/routers/v1/projects.py,sha256=LFWxHYPRZy-1EvroNylL635vU1UuDbcuRo1oD26yBnw,12551
|
|
243
244
|
phoenix/server/api/routers/v1/prompts.py,sha256=aBOUBwLDzZDIzJQkxJcR8ZKnakNJOLMwzsLKINSs1mA,26545
|
|
244
|
-
phoenix/server/api/routers/v1/spans.py,sha256=
|
|
245
|
+
phoenix/server/api/routers/v1/spans.py,sha256=HhZtXsNTdOmMXWtMkz3VUb3aqpGsVAU5XOYi2KfvGMc,44106
|
|
245
246
|
phoenix/server/api/routers/v1/traces.py,sha256=DfzeszQvtlrVxvurJLaWJJAhkCZ4BodLwpFuBYPwN5Q,8206
|
|
246
247
|
phoenix/server/api/routers/v1/users.py,sha256=ZcW3if0L8-lUusTzET7fhlhvnmiCICDrGimzB7i3irc,11947
|
|
247
248
|
phoenix/server/api/routers/v1/utils.py,sha256=oXIOGPzPTkE0ZWUTRCoRIQQ7wTzoSwtWFaUSjlGBqts,4960
|
|
@@ -294,7 +295,7 @@ phoenix/server/api/types/MimeType.py,sha256=Zpi6zCalkSFgsvhzvOs-O1gYA04usAi9H__Q
|
|
|
294
295
|
phoenix/server/api/types/Model.py,sha256=8UIFqMe1q-2ufBNg-gxHusV8wM1h-KbfLUeJjyVcMvQ,8081
|
|
295
296
|
phoenix/server/api/types/NumericRange.py,sha256=afEjgF97Go_OvmjMggbPBt-zGM8IONewAyEiKEHRds0,192
|
|
296
297
|
phoenix/server/api/types/PerformanceMetric.py,sha256=KFkmJDqP43eDUtARQOUqR7NYcxvL6Vh2uisHWU6H3ko,387
|
|
297
|
-
phoenix/server/api/types/Project.py,sha256=
|
|
298
|
+
phoenix/server/api/types/Project.py,sha256=FulRsgTWcvZEyiV3lzJ505HMa9Eq7aoQr3OkbPWH2Ws,29864
|
|
298
299
|
phoenix/server/api/types/ProjectSession.py,sha256=fyfVtpUpFOTnBx8DFnH3dr7WXAssN0ooAgrQSSi7kEI,4677
|
|
299
300
|
phoenix/server/api/types/ProjectTraceRetentionPolicy.py,sha256=tYy2kgalPDyuaYZr0VUHjH0YpXaiF_QOzg5yfaV_c7c,3782
|
|
300
301
|
phoenix/server/api/types/Prompt.py,sha256=ccP4eq1e38xbF0afclGWLOuDpBVpNbJ3AOSRClF8yFQ,4955
|
|
@@ -349,10 +350,10 @@ phoenix/server/static/apple-touch-icon-76x76.png,sha256=CT_xT12I0u2i0WU8JzBZBuOQ
|
|
|
349
350
|
phoenix/server/static/apple-touch-icon.png,sha256=fOfpjqGpWYbJ0eAurKsyoZP1EAs6ZVooBJ_SGk2ZkDs,3801
|
|
350
351
|
phoenix/server/static/favicon.ico,sha256=bY0vvCKRftemZfPShwZtE93DiiQdaYaozkPGwNFr6H8,34494
|
|
351
352
|
phoenix/server/static/modernizr.js,sha256=mvK-XtkNqjOral-QvzoqsyOMECXIMu5BQwSVN_wcU9c,2564
|
|
352
|
-
phoenix/server/static/.vite/manifest.json,sha256=
|
|
353
|
-
phoenix/server/static/assets/components-
|
|
354
|
-
phoenix/server/static/assets/index-
|
|
355
|
-
phoenix/server/static/assets/pages-
|
|
353
|
+
phoenix/server/static/.vite/manifest.json,sha256=Y9B-iAYwgBxlFRmn9uT4BxZ3nISaTwSMJJiISSAYh8s,2165
|
|
354
|
+
phoenix/server/static/assets/components-CKFZdR5A.js,sha256=AOSKJmIJf-eGIIvuvZNIevW5CcPmHrbMAqtci-tbNYE,565838
|
|
355
|
+
phoenix/server/static/assets/index-D3uXREcK.js,sha256=vwzEn-uC6iBPUZ_gE2H8CCvcm2YLKQmO9mX1f6MuagQ,61125
|
|
356
|
+
phoenix/server/static/assets/pages-BEpY_9Jm.js,sha256=9uRMswtZ_NAVOR7Q6-zrg0DDtN7rljEmqO7VdAMpQMg,1054967
|
|
356
357
|
phoenix/server/static/assets/vendor-ARQZvmz5.js,sha256=U_VQSuHOpuX7DxntJS2ckfxW2a4hV-E3MCqeJSxwdCY,2735976
|
|
357
358
|
phoenix/server/static/assets/vendor-WIZid84E.css,sha256=spZD2r7XL5GfLO13ln-IuXfnjAref8l6g_n_AvxxOlI,5517
|
|
358
359
|
phoenix/server/static/assets/vendor-arizeai-Ct6kvW4e.js,sha256=n_v4BAgm9-OaJMlQTf0OtLfPmPBdagnu85gVuds43sM,181771
|
|
@@ -374,7 +375,7 @@ phoenix/trace/evaluation_conventions.py,sha256=t8jydM3U0-T5YpiQKRJ3tWdWGlHtzKytt
|
|
|
374
375
|
phoenix/trace/exporter.py,sha256=bUXh8fjJIbHurrnt4bAm-cCWqUN5FqNsIc8DZzzklkQ,4695
|
|
375
376
|
phoenix/trace/fixtures.py,sha256=1c7fsyvmxC53Fib9T_Qxp_Ly3OZdDbkLQ0XpFzikEjk,20298
|
|
376
377
|
phoenix/trace/otel.py,sha256=RJSbAuzS4KBS0t-fntXQaaYwv7FmIXRMrw65DI67z8k,10622
|
|
377
|
-
phoenix/trace/projects.py,sha256=
|
|
378
|
+
phoenix/trace/projects.py,sha256=9dKv1aiKL4IYMFsg2xnC6EOIRO0YHtkR5o9ALHbMK9g,2178
|
|
378
379
|
phoenix/trace/schemas.py,sha256=Su6e567Bei9oo6PsWO2srTcPAj9C2bMgbGtx64Sgqeg,6332
|
|
379
380
|
phoenix/trace/span_evaluations.py,sha256=x3nye9r2SQk1mrR3N05YbuWsgUKpMWwTRBtJTDBSj3Y,13156
|
|
380
381
|
phoenix/trace/span_json_decoder.py,sha256=J1_oDViuUoC4vxPg61U4EOZC1uEMcCzoj-kVjOFEE8k,3224
|
|
@@ -399,9 +400,9 @@ phoenix/utilities/project.py,sha256=auVpARXkDb-JgeX5f2aStyFIkeKvGwN9l7qrFeJMVxI,
|
|
|
399
400
|
phoenix/utilities/re.py,sha256=6YyUWIkv0zc2SigsxfOWIHzdpjKA_TZo2iqKq7zJKvw,2081
|
|
400
401
|
phoenix/utilities/span_store.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
401
402
|
phoenix/utilities/template_formatters.py,sha256=gh9PJD6WEGw7TEYXfSst1UR4pWWwmjxMLrDVQ_CkpkQ,2779
|
|
402
|
-
arize_phoenix-10.
|
|
403
|
-
arize_phoenix-10.
|
|
404
|
-
arize_phoenix-10.
|
|
405
|
-
arize_phoenix-10.
|
|
406
|
-
arize_phoenix-10.
|
|
407
|
-
arize_phoenix-10.
|
|
403
|
+
arize_phoenix-10.12.0.dist-info/METADATA,sha256=B2JAKsJ0YoxMzZ5_4AeWU8DW0UScmfnOXNnR3trLnwg,27006
|
|
404
|
+
arize_phoenix-10.12.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
405
|
+
arize_phoenix-10.12.0.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
|
|
406
|
+
arize_phoenix-10.12.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
|
|
407
|
+
arize_phoenix-10.12.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
|
|
408
|
+
arize_phoenix-10.12.0.dist-info/RECORD,,
|
phoenix/experiments/functions.py
CHANGED
|
@@ -25,7 +25,7 @@ from openinference.semconv.trace import (
|
|
|
25
25
|
)
|
|
26
26
|
from opentelemetry.context import Context
|
|
27
27
|
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
|
|
28
|
-
from opentelemetry.sdk.resources import Resource
|
|
28
|
+
from opentelemetry.sdk.resources import Resource
|
|
29
29
|
from opentelemetry.sdk.trace import Span
|
|
30
30
|
from opentelemetry.sdk.trace.export import SimpleSpanProcessor
|
|
31
31
|
from opentelemetry.trace import Status, StatusCode, Tracer
|
phoenix/experiments/tracing.py
CHANGED
|
@@ -6,7 +6,7 @@ from contextvars import ContextVar
|
|
|
6
6
|
from threading import Lock
|
|
7
7
|
from typing import Any, Optional
|
|
8
8
|
|
|
9
|
-
from opentelemetry.sdk.resources import Resource
|
|
9
|
+
from opentelemetry.sdk.resources import Resource
|
|
10
10
|
from opentelemetry.sdk.trace import ReadableSpan
|
|
11
11
|
from opentelemetry.trace import INVALID_TRACE_ID
|
|
12
12
|
from wrapt import apply_patch, resolve_path, wrap_function_wrapper
|
phoenix/server/api/queries.py
CHANGED
|
@@ -41,6 +41,7 @@ from phoenix.server.api.helpers.playground_clients import initialize_playground_
|
|
|
41
41
|
from phoenix.server.api.helpers.playground_registry import PLAYGROUND_CLIENT_REGISTRY
|
|
42
42
|
from phoenix.server.api.input_types.ClusterInput import ClusterInput
|
|
43
43
|
from phoenix.server.api.input_types.Coordinates import InputCoordinate2D, InputCoordinate3D
|
|
44
|
+
from phoenix.server.api.input_types.DatasetFilter import DatasetFilter
|
|
44
45
|
from phoenix.server.api.input_types.DatasetSort import DatasetSort
|
|
45
46
|
from phoenix.server.api.input_types.InvocationParameters import InvocationParameter
|
|
46
47
|
from phoenix.server.api.input_types.ProjectFilter import ProjectFilter
|
|
@@ -285,6 +286,7 @@ class Query:
|
|
|
285
286
|
after: Optional[CursorString] = UNSET,
|
|
286
287
|
before: Optional[CursorString] = UNSET,
|
|
287
288
|
sort: Optional[DatasetSort] = UNSET,
|
|
289
|
+
filter: Optional[DatasetFilter] = UNSET,
|
|
288
290
|
) -> Connection[Dataset]:
|
|
289
291
|
args = ConnectionArgs(
|
|
290
292
|
first=first,
|
|
@@ -296,6 +298,8 @@ class Query:
|
|
|
296
298
|
if sort:
|
|
297
299
|
sort_col = getattr(models.Dataset, sort.col.value)
|
|
298
300
|
stmt = stmt.order_by(sort_col.desc() if sort.dir is SortDir.desc else sort_col.asc())
|
|
301
|
+
if filter:
|
|
302
|
+
stmt = stmt.where(getattr(models.Dataset, filter.col.value).ilike(f"%{filter.value}%"))
|
|
299
303
|
async with info.context.db() as session:
|
|
300
304
|
datasets = await session.scalars(stmt)
|
|
301
305
|
return connection_from_list(
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import json
|
|
1
2
|
import warnings
|
|
2
3
|
from asyncio import get_running_loop
|
|
3
4
|
from collections.abc import AsyncIterator
|
|
@@ -12,7 +13,12 @@ from pydantic import BaseModel, Field
|
|
|
12
13
|
from sqlalchemy import select
|
|
13
14
|
from starlette.requests import Request
|
|
14
15
|
from starlette.responses import Response, StreamingResponse
|
|
15
|
-
from starlette.status import
|
|
16
|
+
from starlette.status import (
|
|
17
|
+
HTTP_202_ACCEPTED,
|
|
18
|
+
HTTP_400_BAD_REQUEST,
|
|
19
|
+
HTTP_404_NOT_FOUND,
|
|
20
|
+
HTTP_422_UNPROCESSABLE_ENTITY,
|
|
21
|
+
)
|
|
16
22
|
from strawberry.relay import GlobalID
|
|
17
23
|
|
|
18
24
|
from phoenix.config import DEFAULT_PROJECT_NAME
|
|
@@ -26,6 +32,19 @@ from phoenix.server.bearer_auth import PhoenixUser
|
|
|
26
32
|
from phoenix.server.dml_event import SpanAnnotationInsertEvent
|
|
27
33
|
from phoenix.trace.attributes import flatten
|
|
28
34
|
from phoenix.trace.dsl import SpanQuery as SpanQuery_
|
|
35
|
+
from phoenix.trace.schemas import (
|
|
36
|
+
Span as SpanForInsertion,
|
|
37
|
+
)
|
|
38
|
+
from phoenix.trace.schemas import (
|
|
39
|
+
SpanContext as InsertionSpanContext,
|
|
40
|
+
)
|
|
41
|
+
from phoenix.trace.schemas import (
|
|
42
|
+
SpanEvent as InternalSpanEvent,
|
|
43
|
+
)
|
|
44
|
+
from phoenix.trace.schemas import (
|
|
45
|
+
SpanKind,
|
|
46
|
+
SpanStatusCode,
|
|
47
|
+
)
|
|
29
48
|
from phoenix.utilities.json import encode_df_as_json_string
|
|
30
49
|
|
|
31
50
|
from .models import V1RoutesBaseModel
|
|
@@ -393,7 +412,9 @@ class SpanEvent(V1RoutesBaseModel):
|
|
|
393
412
|
|
|
394
413
|
|
|
395
414
|
class Span(V1RoutesBaseModel):
|
|
396
|
-
id: str = Field(
|
|
415
|
+
id: str = Field(
|
|
416
|
+
default="", description="Span Global ID, distinct from the OpenTelemetry span ID"
|
|
417
|
+
)
|
|
397
418
|
name: str = Field(description="Name of the span operation")
|
|
398
419
|
context: SpanContext = Field(description="Span context containing trace_id and span_id")
|
|
399
420
|
span_kind: str = Field(description="Type of work that the span encapsulates")
|
|
@@ -440,7 +461,7 @@ async def query_spans_handler(
|
|
|
440
461
|
)
|
|
441
462
|
end_time = request_body.end_time or request_body.stop_time
|
|
442
463
|
try:
|
|
443
|
-
span_queries = [SpanQuery_.from_dict(query.
|
|
464
|
+
span_queries = [SpanQuery_.from_dict(query.model_dump()) for query in queries]
|
|
444
465
|
except Exception as e:
|
|
445
466
|
raise HTTPException(
|
|
446
467
|
detail=f"Invalid query: {e}",
|
|
@@ -956,3 +977,143 @@ async def annotate_spans(
|
|
|
956
977
|
for id_ in inserted_ids
|
|
957
978
|
]
|
|
958
979
|
)
|
|
980
|
+
|
|
981
|
+
|
|
982
|
+
class CreateSpansRequestBody(RequestBody[list[Span]]):
|
|
983
|
+
data: list[Span]
|
|
984
|
+
|
|
985
|
+
|
|
986
|
+
class CreateSpansResponseBody(V1RoutesBaseModel):
|
|
987
|
+
total_received: int = Field(description="Total number of spans received")
|
|
988
|
+
total_queued: int = Field(description="Number of spans successfully queued for insertion")
|
|
989
|
+
|
|
990
|
+
|
|
991
|
+
@router.post(
|
|
992
|
+
"/projects/{project_identifier}/spans",
|
|
993
|
+
operation_id="createSpans",
|
|
994
|
+
summary="Create spans",
|
|
995
|
+
description=(
|
|
996
|
+
"Submit spans to be inserted into a project. If any spans are invalid or "
|
|
997
|
+
"duplicates, no spans will be inserted."
|
|
998
|
+
),
|
|
999
|
+
responses=add_errors_to_responses([HTTP_404_NOT_FOUND, HTTP_400_BAD_REQUEST]),
|
|
1000
|
+
status_code=HTTP_202_ACCEPTED,
|
|
1001
|
+
)
|
|
1002
|
+
async def create_spans(
|
|
1003
|
+
request: Request,
|
|
1004
|
+
request_body: CreateSpansRequestBody,
|
|
1005
|
+
project_identifier: str = Path(
|
|
1006
|
+
description=(
|
|
1007
|
+
"The project identifier: either project ID or project name. If using a project name, "
|
|
1008
|
+
"it cannot contain slash (/), question mark (?), or pound sign (#) characters."
|
|
1009
|
+
)
|
|
1010
|
+
),
|
|
1011
|
+
) -> CreateSpansResponseBody:
|
|
1012
|
+
def convert_api_span_for_insertion(api_span: Span) -> SpanForInsertion:
|
|
1013
|
+
"""
|
|
1014
|
+
Convert from API Span to phoenix.trace.schemas.Span
|
|
1015
|
+
Note: The 'id' field has a default empty string and is ignored during insertion.
|
|
1016
|
+
"""
|
|
1017
|
+
try:
|
|
1018
|
+
span_kind = SpanKind(api_span.span_kind.upper())
|
|
1019
|
+
except ValueError:
|
|
1020
|
+
span_kind = SpanKind.UNKNOWN
|
|
1021
|
+
|
|
1022
|
+
try:
|
|
1023
|
+
status_code = SpanStatusCode(api_span.status_code.upper())
|
|
1024
|
+
except ValueError:
|
|
1025
|
+
status_code = SpanStatusCode.UNSET
|
|
1026
|
+
|
|
1027
|
+
internal_events: list[InternalSpanEvent] = []
|
|
1028
|
+
for event in api_span.events:
|
|
1029
|
+
if event.timestamp:
|
|
1030
|
+
internal_events.append(
|
|
1031
|
+
InternalSpanEvent(
|
|
1032
|
+
name=event.name, timestamp=event.timestamp, attributes=event.attributes
|
|
1033
|
+
)
|
|
1034
|
+
)
|
|
1035
|
+
|
|
1036
|
+
# Add back the openinference.span.kind attribute since it's stored separately in the API
|
|
1037
|
+
attributes = dict(api_span.attributes)
|
|
1038
|
+
attributes["openinference.span.kind"] = api_span.span_kind
|
|
1039
|
+
|
|
1040
|
+
# Create span for insertion - note we ignore the 'id' field as it's server-generated
|
|
1041
|
+
return SpanForInsertion(
|
|
1042
|
+
name=api_span.name,
|
|
1043
|
+
context=InsertionSpanContext(
|
|
1044
|
+
trace_id=api_span.context.trace_id, span_id=api_span.context.span_id
|
|
1045
|
+
),
|
|
1046
|
+
span_kind=span_kind,
|
|
1047
|
+
parent_id=api_span.parent_id,
|
|
1048
|
+
start_time=api_span.start_time,
|
|
1049
|
+
end_time=api_span.end_time,
|
|
1050
|
+
status_code=status_code,
|
|
1051
|
+
status_message=api_span.status_message,
|
|
1052
|
+
attributes=attributes,
|
|
1053
|
+
events=internal_events,
|
|
1054
|
+
conversation=None, # Unused
|
|
1055
|
+
)
|
|
1056
|
+
|
|
1057
|
+
async with request.app.state.db() as session:
|
|
1058
|
+
project = await _get_project_by_identifier(session, project_identifier)
|
|
1059
|
+
|
|
1060
|
+
total_received = len(request_body.data)
|
|
1061
|
+
duplicate_spans: list[dict[str, str]] = []
|
|
1062
|
+
invalid_spans: list[dict[str, str]] = []
|
|
1063
|
+
spans_to_queue: list[tuple[SpanForInsertion, str]] = []
|
|
1064
|
+
|
|
1065
|
+
existing_span_ids: set[str] = set()
|
|
1066
|
+
span_ids = [span.context.span_id for span in request_body.data]
|
|
1067
|
+
async with request.app.state.db() as session:
|
|
1068
|
+
existing_result = await session.execute(
|
|
1069
|
+
select(models.Span.span_id).where(models.Span.span_id.in_(span_ids))
|
|
1070
|
+
)
|
|
1071
|
+
existing_span_ids = {row[0] for row in existing_result}
|
|
1072
|
+
|
|
1073
|
+
for api_span in request_body.data:
|
|
1074
|
+
# Check if it's a duplicate
|
|
1075
|
+
if api_span.context.span_id in existing_span_ids:
|
|
1076
|
+
duplicate_spans.append(
|
|
1077
|
+
{
|
|
1078
|
+
"span_id": api_span.context.span_id,
|
|
1079
|
+
"trace_id": api_span.context.trace_id,
|
|
1080
|
+
}
|
|
1081
|
+
)
|
|
1082
|
+
continue
|
|
1083
|
+
|
|
1084
|
+
try:
|
|
1085
|
+
span_for_insertion = convert_api_span_for_insertion(api_span)
|
|
1086
|
+
spans_to_queue.append((span_for_insertion, project.name))
|
|
1087
|
+
except Exception as e:
|
|
1088
|
+
invalid_spans.append(
|
|
1089
|
+
{
|
|
1090
|
+
"span_id": api_span.context.span_id,
|
|
1091
|
+
"trace_id": api_span.context.trace_id,
|
|
1092
|
+
"error": str(e),
|
|
1093
|
+
}
|
|
1094
|
+
)
|
|
1095
|
+
|
|
1096
|
+
# If there are any duplicates or invalid spans, reject the entire request
|
|
1097
|
+
if duplicate_spans or invalid_spans:
|
|
1098
|
+
error_detail = {
|
|
1099
|
+
"error": "Request contains invalid or duplicate spans",
|
|
1100
|
+
"total_received": total_received,
|
|
1101
|
+
"total_queued": 0, # No spans are queued when there are validation errors
|
|
1102
|
+
"total_duplicates": len(duplicate_spans),
|
|
1103
|
+
"total_invalid": len(invalid_spans),
|
|
1104
|
+
"duplicate_spans": duplicate_spans,
|
|
1105
|
+
"invalid_spans": invalid_spans,
|
|
1106
|
+
}
|
|
1107
|
+
raise HTTPException(
|
|
1108
|
+
status_code=HTTP_400_BAD_REQUEST,
|
|
1109
|
+
detail=json.dumps(error_detail),
|
|
1110
|
+
)
|
|
1111
|
+
|
|
1112
|
+
# All spans are valid, queue them all
|
|
1113
|
+
for span_for_insertion, project_name in spans_to_queue:
|
|
1114
|
+
await request.state.queue_span_for_bulk_insert(span_for_insertion, project_name)
|
|
1115
|
+
|
|
1116
|
+
return CreateSpansResponseBody(
|
|
1117
|
+
total_received=total_received,
|
|
1118
|
+
total_queued=len(spans_to_queue),
|
|
1119
|
+
)
|
|
@@ -326,8 +326,27 @@ class Project(Node):
|
|
|
326
326
|
after: Optional[CursorString] = UNSET,
|
|
327
327
|
sort: Optional[ProjectSessionSort] = UNSET,
|
|
328
328
|
filter_io_substring: Optional[str] = UNSET,
|
|
329
|
+
session_id: Optional[str] = UNSET,
|
|
329
330
|
) -> Connection[ProjectSession]:
|
|
330
331
|
table = models.ProjectSession
|
|
332
|
+
if session_id:
|
|
333
|
+
async with info.context.db() as session:
|
|
334
|
+
ans = await session.scalar(
|
|
335
|
+
select(table).filter_by(
|
|
336
|
+
session_id=session_id,
|
|
337
|
+
project_id=self.project_rowid,
|
|
338
|
+
)
|
|
339
|
+
)
|
|
340
|
+
if ans:
|
|
341
|
+
return connection_from_list(
|
|
342
|
+
data=[to_gql_project_session(ans)],
|
|
343
|
+
args=ConnectionArgs(),
|
|
344
|
+
)
|
|
345
|
+
elif not filter_io_substring:
|
|
346
|
+
return connection_from_list(
|
|
347
|
+
data=[],
|
|
348
|
+
args=ConnectionArgs(),
|
|
349
|
+
)
|
|
331
350
|
stmt = select(table).filter_by(project_id=self.project_rowid)
|
|
332
351
|
if time_range:
|
|
333
352
|
if time_range.start:
|
|
@@ -335,9 +354,9 @@ class Project(Node):
|
|
|
335
354
|
if time_range.end:
|
|
336
355
|
stmt = stmt.where(table.start_time < time_range.end)
|
|
337
356
|
if filter_io_substring:
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
.
|
|
357
|
+
filter_stmt = (
|
|
358
|
+
select(distinct(models.Trace.project_session_rowid).label("id"))
|
|
359
|
+
.filter_by(project_rowid=self.project_rowid)
|
|
341
360
|
.join_from(models.Trace, models.Span)
|
|
342
361
|
.where(models.Span.parent_id.is_(None))
|
|
343
362
|
.where(
|
|
@@ -352,7 +371,13 @@ class Project(Node):
|
|
|
352
371
|
),
|
|
353
372
|
)
|
|
354
373
|
)
|
|
355
|
-
)
|
|
374
|
+
)
|
|
375
|
+
if time_range:
|
|
376
|
+
if time_range.start:
|
|
377
|
+
filter_stmt = filter_stmt.where(time_range.start <= models.Trace.start_time)
|
|
378
|
+
if time_range.end:
|
|
379
|
+
filter_stmt = filter_stmt.where(models.Trace.start_time < time_range.end)
|
|
380
|
+
filter_subq = filter_stmt.subquery()
|
|
356
381
|
stmt = stmt.join(filter_subq, table.id == filter_subq.c.id)
|
|
357
382
|
if sort:
|
|
358
383
|
key: ColumnElement[Any]
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_components-
|
|
3
|
-
"file": "assets/components-
|
|
2
|
+
"_components-CKFZdR5A.js": {
|
|
3
|
+
"file": "assets/components-CKFZdR5A.js",
|
|
4
4
|
"name": "components",
|
|
5
5
|
"imports": [
|
|
6
6
|
"_vendor-ARQZvmz5.js",
|
|
7
|
-
"_pages-
|
|
7
|
+
"_pages-BEpY_9Jm.js",
|
|
8
8
|
"_vendor-arizeai-Ct6kvW4e.js",
|
|
9
9
|
"_vendor-codemirror-BxoXtD6f.js",
|
|
10
10
|
"_vendor-three-C5WAXd5r.js"
|
|
11
11
|
]
|
|
12
12
|
},
|
|
13
|
-
"_pages-
|
|
14
|
-
"file": "assets/pages-
|
|
13
|
+
"_pages-BEpY_9Jm.js": {
|
|
14
|
+
"file": "assets/pages-BEpY_9Jm.js",
|
|
15
15
|
"name": "pages",
|
|
16
16
|
"imports": [
|
|
17
17
|
"_vendor-ARQZvmz5.js",
|
|
18
18
|
"_vendor-arizeai-Ct6kvW4e.js",
|
|
19
|
-
"_components-
|
|
19
|
+
"_components-CKFZdR5A.js",
|
|
20
20
|
"_vendor-codemirror-BxoXtD6f.js",
|
|
21
21
|
"_vendor-recharts-Cl8AO7Np.js"
|
|
22
22
|
]
|
|
@@ -69,15 +69,15 @@
|
|
|
69
69
|
"name": "vendor-three"
|
|
70
70
|
},
|
|
71
71
|
"index.tsx": {
|
|
72
|
-
"file": "assets/index-
|
|
72
|
+
"file": "assets/index-D3uXREcK.js",
|
|
73
73
|
"name": "index",
|
|
74
74
|
"src": "index.tsx",
|
|
75
75
|
"isEntry": true,
|
|
76
76
|
"imports": [
|
|
77
77
|
"_vendor-ARQZvmz5.js",
|
|
78
78
|
"_vendor-arizeai-Ct6kvW4e.js",
|
|
79
|
-
"_pages-
|
|
80
|
-
"_components-
|
|
79
|
+
"_pages-BEpY_9Jm.js",
|
|
80
|
+
"_components-CKFZdR5A.js",
|
|
81
81
|
"_vendor-three-C5WAXd5r.js",
|
|
82
82
|
"_vendor-codemirror-BxoXtD6f.js",
|
|
83
83
|
"_vendor-shiki-BpqODMgR.js",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as p,j as e,u as za,a as Ne,e as vn,s as Jn,b as ea,c as nn,d as fa,f as pr,g as ze,h as hr,i as fr,k as ba,l as s,m as Xe,p as Pn,n as un,R as Oe,o as O,q as Fa,t as an,v as br,C as Sn,w as yr,x as Cr,L as Xt,y as Yt,z as Jt,A as Se,B as L,D as Vn,E as Ea,F as m,G as e1,$ as vr,H as n1,I as Z,J as a1,K as Re,M as Lr,N as kr,O as Dn,P as wr,Q,S as Ue,T as P,U as H,V as X,W as t1,X as i1,Y as Sr,Z as r1,_ as xr,a0 as l1,a1 as Ar,a2 as Mr,a3 as Tr,a4 as Ir,a5 as zr,a6 as Fr,a7 as Er,a8 as _r,a9 as Pr,aa as gn,ab as o1,ac as Ve,ad as Vr,ae as Dr,af as Te,ag as ya,ah as Ca,ai as va,aj as B,ak as Ye,al as ht,am as Kr,an as Or,ao as Rr,ap as Nr,aq as $r,ar as Br,as as Hr,at as jr,au as s1,av as Zr,aw as Ur,ax as Gr,ay as Wr,az as qr,aA as Qr,aB as Xr,aC as Le,aD as c1,aE as _e,aF as _a,aG as Yr,aH as Jr,aI as el,aJ as nl,aK as al,aL as ft,aM as tl,aN as Pa,aO as il,aP as tn,aQ as rl,aR as Va,aS as ll,aT as ol,aU as sl,aV as Kn,aW as cl,aX as dl,aY as ul,aZ as gl,a_ as ml,a$ as pl,b0 as hl,b1 as fl,b2 as bl,b3 as yl,b4 as Cl,b5 as vl,b6 as Ll,b7 as kl,b8 as bt,b9 as wl,ba as Sl,bb as xl,bc as na,bd as Al,be as Ml,bf as Tl,bg as Il,bh as zl,bi as Fl,bj as El,bk as _l,bl as Pl}from"./vendor-ARQZvmz5.js";import{a as yt,R as Vl,b as Dl,c as Kl,m as Ol,T as Rl,A as Nl,S as $l,d as Bl,e as Hl,f as jl,u as Zl}from"./pages-
|
|
1
|
+
import{r as p,j as e,u as za,a as Ne,e as vn,s as Jn,b as ea,c as nn,d as fa,f as pr,g as ze,h as hr,i as fr,k as ba,l as s,m as Xe,p as Pn,n as un,R as Oe,o as O,q as Fa,t as an,v as br,C as Sn,w as yr,x as Cr,L as Xt,y as Yt,z as Jt,A as Se,B as L,D as Vn,E as Ea,F as m,G as e1,$ as vr,H as n1,I as Z,J as a1,K as Re,M as Lr,N as kr,O as Dn,P as wr,Q,S as Ue,T as P,U as H,V as X,W as t1,X as i1,Y as Sr,Z as r1,_ as xr,a0 as l1,a1 as Ar,a2 as Mr,a3 as Tr,a4 as Ir,a5 as zr,a6 as Fr,a7 as Er,a8 as _r,a9 as Pr,aa as gn,ab as o1,ac as Ve,ad as Vr,ae as Dr,af as Te,ag as ya,ah as Ca,ai as va,aj as B,ak as Ye,al as ht,am as Kr,an as Or,ao as Rr,ap as Nr,aq as $r,ar as Br,as as Hr,at as jr,au as s1,av as Zr,aw as Ur,ax as Gr,ay as Wr,az as qr,aA as Qr,aB as Xr,aC as Le,aD as c1,aE as _e,aF as _a,aG as Yr,aH as Jr,aI as el,aJ as nl,aK as al,aL as ft,aM as tl,aN as Pa,aO as il,aP as tn,aQ as rl,aR as Va,aS as ll,aT as ol,aU as sl,aV as Kn,aW as cl,aX as dl,aY as ul,aZ as gl,a_ as ml,a$ as pl,b0 as hl,b1 as fl,b2 as bl,b3 as yl,b4 as Cl,b5 as vl,b6 as Ll,b7 as kl,b8 as bt,b9 as wl,ba as Sl,bb as xl,bc as na,bd as Al,be as Ml,bf as Tl,bg as Il,bh as zl,bi as Fl,bj as El,bk as _l,bl as Pl}from"./vendor-ARQZvmz5.js";import{a as yt,R as Vl,b as Dl,c as Kl,m as Ol,T as Rl,A as Nl,S as $l,d as Bl,e as Hl,f as jl,u as Zl}from"./pages-BEpY_9Jm.js";import{u as Ul,_ as d1,a as Ce,T as oe,E as u1,b as ve,c as g1,d as Ge,e as Gl,D as Da,f as Wl,C as m1,F as p1,I as ql,g as Ql,h as Xl,i as Yl,j as Jl,k as eo,l as no,P as ao,m as to,n as io,o as ro,p as lo,q as oo,r as so}from"./vendor-arizeai-Ct6kvW4e.js";import{L as h1,a as f1,d as on,E as Ka,k as b1,b as y1,l as La,h as co,j as uo,c as go,e as mo,f as po,s as ho,g as mn,i as pn,R as hn,p as fo,m as bo}from"./vendor-codemirror-BxoXtD6f.js";import{V as yo}from"./vendor-three-C5WAXd5r.js";const C1=function(){var n={defaultValue:null,kind:"LocalArgument",name:"clusters"},a={defaultValue:null,kind:"LocalArgument",name:"dataQualityMetricColumnName"},t={defaultValue:null,kind:"LocalArgument",name:"fetchDataQualityMetric"},i={defaultValue:null,kind:"LocalArgument",name:"fetchPerformanceMetric"},r={defaultValue:null,kind:"LocalArgument",name:"performanceMetric"},l=[{alias:null,args:null,kind:"ScalarField",name:"primaryValue",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"referenceValue",storageKey:null}],o=[{alias:null,args:[{kind:"Variable",name:"clusters",variableName:"clusters"}],concreteType:"Cluster",kind:"LinkedField",name:"clusters",plural:!0,selections:[{alias:null,args:null,kind:"ScalarField",name:"id",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"eventIds",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"driftRatio",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"primaryToCorpusRatio",storageKey:null},{condition:"fetchDataQualityMetric",kind:"Condition",passingValue:!0,selections:[{alias:null,args:[{fields:[{kind:"Variable",name:"columnName",variableName:"dataQualityMetricColumnName"},{kind:"Literal",name:"metric",value:"mean"}],kind:"ObjectValue",name:"metric"}],concreteType:"DatasetValues",kind:"LinkedField",name:"dataQualityMetric",plural:!1,selections:l,storageKey:null}]},{condition:"fetchPerformanceMetric",kind:"Condition",passingValue:!0,selections:[{alias:null,args:[{fields:[{kind:"Variable",name:"metric",variableName:"performanceMetric"}],kind:"ObjectValue",name:"metric"}],concreteType:"DatasetValues",kind:"LinkedField",name:"performanceMetric",plural:!1,selections:l,storageKey:null}]}],storageKey:null}];return{fragment:{argumentDefinitions:[n,a,t,i,r],kind:"Fragment",metadata:null,name:"pointCloudStore_clusterMetricsQuery",selections:o,type:"Query",abstractKey:null},kind:"Request",operation:{argumentDefinitions:[n,t,a,i,r],kind:"Operation",name:"pointCloudStore_clusterMetricsQuery",selections:o},params:{cacheID:"86666967012812887ac0a0149d2d2535",id:null,metadata:{},name:"pointCloudStore_clusterMetricsQuery",operationKind:"query",text:`query pointCloudStore_clusterMetricsQuery(
|
|
2
2
|
$clusters: [ClusterInput!]!
|
|
3
3
|
$fetchDataQualityMetric: Boolean!
|
|
4
4
|
$dataQualityMetricColumnName: String
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{F as e,j as o,cA as f,ew as v,ex as y,ey as h,l as r,bY as x,ez as a,r as z,o as w,eA as P}from"./vendor-ARQZvmz5.js";import{H as k,J as S}from"./vendor-arizeai-Ct6kvW4e.js";import{L,g as j,r as C,h as R,i as I,F as E,j as A,P as D,k as T,M as s,l as F,D as O,n as G,E as M,o as N,p as q,q as V,s as _,t,v as W,w as B,x as H,y as J,z as $,B as K,C as U,G as Y,H as Q,I as X,J as Z,K as oo,N as ao,O as lo,Q as ro,U as co,V as d,W as m,X as p,Y as go,Z as eo,_ as bo,$ as no,a0 as io,a1 as so,a2 as to,a3 as mo,a4 as po,a5 as uo,a6 as fo,a7 as vo,a8 as yo,a9 as ho,aa as xo,ab as zo,ac as wo,ad as Po,ae as ko,af as So,ag as Lo,ah as jo,ai as Co,aj as Ro,ak as Io,al as Eo,am as Ao,an as Do,ao as To,ap as Fo,aq as Oo,ar as Go,as as Mo,at as No,au as qo,av as Vo,aw as _o,ax as Wo,ay as Bo}from"./pages-
|
|
1
|
+
import{F as e,j as o,cA as f,ew as v,ex as y,ey as h,l as r,bY as x,ez as a,r as z,o as w,eA as P}from"./vendor-ARQZvmz5.js";import{H as k,J as S}from"./vendor-arizeai-Ct6kvW4e.js";import{L,g as j,r as C,h as R,i as I,F as E,j as A,P as D,k as T,M as s,l as F,D as O,n as G,E as M,o as N,p as q,q as V,s as _,t,v as W,w as B,x as H,y as J,z as $,B as K,C as U,G as Y,H as Q,I as X,J as Z,K as oo,N as ao,O as lo,Q as ro,U as co,V as d,W as m,X as p,Y as go,Z as eo,_ as bo,$ as no,a0 as io,a1 as so,a2 as to,a3 as mo,a4 as po,a5 as uo,a6 as fo,a7 as vo,a8 as yo,a9 as ho,aa as xo,ab as zo,ac as wo,ad as Po,ae as ko,af as So,ag as Lo,ah as jo,ai as Co,aj as Ro,ak as Io,al as Eo,am as Ao,an as Do,ao as To,ap as Fo,aq as Oo,ar as Go,as as Mo,at as No,au as qo,av as Vo,aw as _o,ax as Wo,ay as Bo}from"./pages-BEpY_9Jm.js";import{eH as Ho,cp as Jo,R as $o,eI as Ko,eJ as Uo}from"./components-CKFZdR5A.js";import"./vendor-three-C5WAXd5r.js";import"./vendor-codemirror-BxoXtD6f.js";import"./vendor-shiki-BpqODMgR.js";import"./vendor-recharts-Cl8AO7Np.js";(function(){const b=document.createElement("link").relList;if(b&&b.supports&&b.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))i(c);new MutationObserver(c=>{for(const g of c)if(g.type==="childList")for(const n of g.addedNodes)n.tagName==="LINK"&&n.rel==="modulepreload"&&i(n)}).observe(document,{childList:!0,subtree:!0});function u(c){const g={};return c.integrity&&(g.integrity=c.integrity),c.referrerPolicy&&(g.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?g.credentials="include":c.crossOrigin==="anonymous"?g.credentials="omit":g.credentials="same-origin",g}function i(c){if(c.ep)return;c.ep=!0;const g=u(c);fetch(c.href,g)}})();const Yo=e`
|
|
2
2
|
:root {
|
|
3
3
|
--ac-global-dimension-scale-factor: 1;
|
|
4
4
|
--ac-global-dimension-size-0: 0px;
|