arize-phoenix 4.17.0__py3-none-any.whl → 4.18.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-4.17.0.dist-info → arize_phoenix-4.18.0.dist-info}/METADATA +5 -5
- {arize_phoenix-4.17.0.dist-info → arize_phoenix-4.18.0.dist-info}/RECORD +24 -21
- phoenix/server/api/context.py +2 -0
- phoenix/server/api/dataloaders/__init__.py +8 -0
- phoenix/server/api/dataloaders/annotation_summaries.py +146 -0
- phoenix/server/api/mutations/span_annotations_mutations.py +1 -0
- phoenix/server/api/types/AnnotationSummary.py +55 -0
- phoenix/server/api/types/EvaluationSummary.py +1 -6
- phoenix/server/api/types/LabelFraction.py +7 -0
- phoenix/server/api/types/Project.py +24 -0
- phoenix/server/app.py +7 -0
- phoenix/server/static/.vite/manifest.json +31 -31
- phoenix/server/static/assets/{components-BNoCl9Xw.js → components-B2sHrnz0.js} +1 -1
- phoenix/server/static/assets/index-BIFmgnip.js +100 -0
- phoenix/server/static/assets/{pages-o-BYa9N_.js → pages-BTHjBGHq.js} +234 -200
- phoenix/server/static/assets/{vendor-NMeSJQMc.js → vendor-BMWfu6zp.js} +1 -1
- phoenix/server/static/assets/{vendor-arizeai-kKu-QXar.js → vendor-arizeai-CkyzG9Wl.js} +2 -2
- phoenix/server/static/assets/{vendor-codemirror-kTDOhxo_.js → vendor-codemirror-DO3VqEcD.js} +1 -1
- phoenix/server/static/assets/{vendor-recharts-ZLJ4kstR.js → vendor-recharts-BGN0SxgJ.js} +1 -1
- phoenix/session/session.py +11 -8
- phoenix/version.py +1 -1
- phoenix/server/static/assets/index-BjNuXOcr.js +0 -100
- {arize_phoenix-4.17.0.dist-info → arize_phoenix-4.18.0.dist-info}/WHEEL +0 -0
- {arize_phoenix-4.17.0.dist-info → arize_phoenix-4.18.0.dist-info}/licenses/IP_NOTICE +0 -0
- {arize_phoenix-4.17.0.dist-info → arize_phoenix-4.18.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: arize-phoenix
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.18.0
|
|
4
4
|
Summary: AI Observability and Evaluation
|
|
5
5
|
Project-URL: Documentation, https://docs.arize.com/phoenix/
|
|
6
6
|
Project-URL: Issues, https://github.com/Arize-ai/phoenix/issues
|
|
@@ -28,10 +28,10 @@ Requires-Dist: hdbscan>=0.8.33
|
|
|
28
28
|
Requires-Dist: httpx
|
|
29
29
|
Requires-Dist: jinja2
|
|
30
30
|
Requires-Dist: numpy<2
|
|
31
|
-
Requires-Dist: openinference-instrumentation
|
|
32
|
-
Requires-Dist: openinference-instrumentation-
|
|
33
|
-
Requires-Dist: openinference-instrumentation-
|
|
34
|
-
Requires-Dist: openinference-instrumentation
|
|
31
|
+
Requires-Dist: openinference-instrumentation-langchain>=0.1.26
|
|
32
|
+
Requires-Dist: openinference-instrumentation-llama-index>=2.2.1
|
|
33
|
+
Requires-Dist: openinference-instrumentation-openai>=0.1.11
|
|
34
|
+
Requires-Dist: openinference-instrumentation>=0.1.12
|
|
35
35
|
Requires-Dist: openinference-semantic-conventions>=0.1.9
|
|
36
36
|
Requires-Dist: opentelemetry-exporter-otlp
|
|
37
37
|
Requires-Dist: opentelemetry-proto>=1.12.0
|
|
@@ -5,7 +5,7 @@ phoenix/exceptions.py,sha256=n2L2KKuecrdflB9MsCdAYCiSEvGJptIsfRkXMoJle7A,169
|
|
|
5
5
|
phoenix/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
6
6
|
phoenix/services.py,sha256=aTxhcOA1pZHB6U-B3TEcp6fqDF5oT0xCUvEUNMZVTUQ,5175
|
|
7
7
|
phoenix/settings.py,sha256=cO-qgis_S27nHirTobYI9hHPfZH18R--WMmxNdsVUwc,273
|
|
8
|
-
phoenix/version.py,sha256=
|
|
8
|
+
phoenix/version.py,sha256=g7MWtE7e6MvbE-FD9TSDyMr8ejjsU5QFtDnHc8sT424,23
|
|
9
9
|
phoenix/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
10
|
phoenix/core/embedding_dimension.py,sha256=zKGbcvwOXgLf-yrJBpQyKtd-LEOPRKHnUToyAU8Owis,87
|
|
11
11
|
phoenix/core/model.py,sha256=km_a--PBHOuA337ClRw9xqhOHhrUT6Rl9pz_zV0JYkQ,4843
|
|
@@ -65,7 +65,7 @@ phoenix/pointcloud/pointcloud.py,sha256=4zAIkKs2xOUbchpj4XDAV-iPMXrfAJ15TG6rlIYG
|
|
|
65
65
|
phoenix/pointcloud/projectors.py,sha256=zO_RrtDYSv2rqVOfIP2_9Cv11Dc8EmcZR94xhFcBYPU,1057
|
|
66
66
|
phoenix/pointcloud/umap_parameters.py,sha256=3UQSjrysVOvq2V4KNpTMqNqNiK0BsTZnPBHWZ4fyJtQ,1708
|
|
67
67
|
phoenix/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
68
|
-
phoenix/server/app.py,sha256=
|
|
68
|
+
phoenix/server/app.py,sha256=FqsV0CqFwzyPDmVeTSf3uwBC6DkyZXbiikSJkhS0Og8,19387
|
|
69
69
|
phoenix/server/grpc_server.py,sha256=jllxDNkpLQxDkvej4RhTokobowbvydF-SU8gSw1MTCc,3378
|
|
70
70
|
phoenix/server/main.py,sha256=dvjv3g8ANpkvSGCUN02S2Yse643Nlwrp_bj4iXBSVTE,11082
|
|
71
71
|
phoenix/server/prometheus.py,sha256=j9DHB2fERuq_ZKmwVaqR-9wx5WcPPuU1Cm5Bhg5241Y,2996
|
|
@@ -73,12 +73,13 @@ phoenix/server/telemetry.py,sha256=T_2OKrxNViAeaANlNspEekg_Y5uZIFWvKAnpz8Aoqvk,2
|
|
|
73
73
|
phoenix/server/thread_server.py,sha256=RwXQGP_QhGD7le6WB7xEygEEuwBl5Ck_Zo8xGIYGi9M,2135
|
|
74
74
|
phoenix/server/types.py,sha256=o3uwy8NvfLO-j86v2Dl3irko6er0hvB_x4Df3S1DveM,460
|
|
75
75
|
phoenix/server/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
76
|
-
phoenix/server/api/context.py,sha256=
|
|
76
|
+
phoenix/server/api/context.py,sha256=70fJ9_O2yD-JEiCUM6WuKr6Byw9Sq00z_q0gBFW0Acg,2940
|
|
77
77
|
phoenix/server/api/interceptor.py,sha256=ykDnoC_apUd-llVli3m1CW18kNSIgjz2qZ6m5JmPDu8,1294
|
|
78
78
|
phoenix/server/api/queries.py,sha256=eq2xHaQF-x4k6AGSY6b6mU2pie9bj-AJML6P2Mr0_DM,19886
|
|
79
79
|
phoenix/server/api/schema.py,sha256=BcxdqO5CSGqpKd-AAJHMjFlzaK9oJA8GJuxmMfcdjn4,434
|
|
80
80
|
phoenix/server/api/utils.py,sha256=Kl47G-1A7QKTDrc75BU2QK6HupsG6MWuXxy351FOfKQ,858
|
|
81
|
-
phoenix/server/api/dataloaders/__init__.py,sha256=
|
|
81
|
+
phoenix/server/api/dataloaders/__init__.py,sha256=aWL1--L5fOh6ouBS8VeJRJBtJogKTtRHySPpkr_AUGk,5506
|
|
82
|
+
phoenix/server/api/dataloaders/annotation_summaries.py,sha256=HO5PWAmFr_hmN6vYbui5jbAV3s6YPfOx6I94wr0_pgw,5500
|
|
82
83
|
phoenix/server/api/dataloaders/average_experiment_run_latency.py,sha256=q091UmkXx37OBKh7L-GJ5LXHyRXfX2w4XTk1NMHtPpw,1827
|
|
83
84
|
phoenix/server/api/dataloaders/dataset_example_revisions.py,sha256=i0g8F4akEf3kQOzAvBjO27QwXNsq-kJEM8dtzduxQgY,3720
|
|
84
85
|
phoenix/server/api/dataloaders/dataset_example_spans.py,sha256=-TjdyyJv2c2JiN1OXu6MMmQ-BEKlHXucEDcuObeRVsU,1416
|
|
@@ -140,7 +141,7 @@ phoenix/server/api/mutations/dataset_mutations.py,sha256=CuKhxsYfvwVcdN_9EXhKxB6
|
|
|
140
141
|
phoenix/server/api/mutations/experiment_mutations.py,sha256=vV2lbJ7ccXZqe-LY7nXx6QxWqhKQE4UNZAFcML-KQ8I,3011
|
|
141
142
|
phoenix/server/api/mutations/export_events_mutations.py,sha256=t_wYBxaqvBJYRoHslh3Bmoxmwlzoy0u8SsBKWIKN5hE,4028
|
|
142
143
|
phoenix/server/api/mutations/project_mutations.py,sha256=d_xtYkYfZ5flpVgEkGknKB8rsEux-zZraczzqAs4e8A,2255
|
|
143
|
-
phoenix/server/api/mutations/span_annotations_mutations.py,sha256=
|
|
144
|
+
phoenix/server/api/mutations/span_annotations_mutations.py,sha256=C6sBOe0EbClj6pYSODBsmJ_mrrYtMFaMZkPO0Be-5I0,5410
|
|
144
145
|
phoenix/server/api/mutations/trace_annotations_mutations.py,sha256=GtI_kDpzLDBFjh0CkYjCgVfdBCog7aKHlIVsEM2x92k,5379
|
|
145
146
|
phoenix/server/api/openapi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
146
147
|
phoenix/server/api/openapi/main.py,sha256=KNutA_7AvV_WlGX8cOkvvDujcJKQ7AD1HT6rTpCpR8A,616
|
|
@@ -158,6 +159,7 @@ phoenix/server/api/routers/v1/spans.py,sha256=-nDcr0AjynS-0U6A2nxEQiUTLoNyfzE-3N
|
|
|
158
159
|
phoenix/server/api/routers/v1/traces.py,sha256=4k_57UICPfRcyQsdPBK-Xo_n6oZ1p41XUwXhZEQpXwE,7568
|
|
159
160
|
phoenix/server/api/routers/v1/utils.py,sha256=xvl2v-BKUkqmFVMmgmmWGFKuRBTrUdoiAeT3mCYEE68,3086
|
|
160
161
|
phoenix/server/api/types/Annotation.py,sha256=7Ym7iuVcbwHlw2yIRylz4nATAF_Cm-Z17qcjiooj1cc,751
|
|
162
|
+
phoenix/server/api/types/AnnotationSummary.py,sha256=8B2LIROqcrPOi8hvYygsblKvSEBfSrysnKOV7F36hgA,1518
|
|
161
163
|
phoenix/server/api/types/AnnotatorKind.py,sha256=rPgGdbN1Gvc109sGQ_ZH-gfJbp93V9wlarzTEJNtUwI,236
|
|
162
164
|
phoenix/server/api/types/Cluster.py,sha256=ac4YfT1OH3xLVmex7EUmB6b9IpULnhLTt554LR0jglE,5689
|
|
163
165
|
phoenix/server/api/types/CreateDatasetPayload.py,sha256=R-6zCmuD0f76RU9Giu78xwTHlASQs6Aq8yzvX1Kxc3g,140
|
|
@@ -177,7 +179,7 @@ phoenix/server/api/types/DocumentRetrievalMetrics.py,sha256=amkpC3H5IU5-9GvO0tel
|
|
|
177
179
|
phoenix/server/api/types/EmbeddingDimension.py,sha256=2OTVzAcfY-2xnJLl7122EAaqJyp0sob1v9-ryaNWknw,18961
|
|
178
180
|
phoenix/server/api/types/EmbeddingMetadata.py,sha256=fJvNNYCbkf3SJalArLy9rcBq9Uj1SNac60zjqe1PFnM,461
|
|
179
181
|
phoenix/server/api/types/Evaluation.py,sha256=oW9UfUCs6Td60kb5s6_sJNvUkxk5TQXjG0pmQ0-gT4M,3298
|
|
180
|
-
phoenix/server/api/types/EvaluationSummary.py,sha256=
|
|
182
|
+
phoenix/server/api/types/EvaluationSummary.py,sha256=N1DhPXGhBbOOQakF43OGuZ5fl4vye7Uc-HnW5M262F8,1518
|
|
181
183
|
phoenix/server/api/types/Event.py,sha256=XdYgaIxcVIW-YFViCkxj5l9OaVNepyIrCtm5Iqg2le8,3989
|
|
182
184
|
phoenix/server/api/types/EventMetadata.py,sha256=-J0tYF9eZTHwCjwxQHY7Gckr2_MNW5OoWT1mydweZNM,635
|
|
183
185
|
phoenix/server/api/types/ExampleRevisionInterface.py,sha256=gV3Gt9-3Oi5wjaVtepC6nOt3FzTzZFD1KebNnqiw56E,294
|
|
@@ -190,11 +192,12 @@ phoenix/server/api/types/ExportedFile.py,sha256=e3GTn7B5LgsTbqiwjhMCQH7VsiqXitrB
|
|
|
190
192
|
phoenix/server/api/types/Functionality.py,sha256=tzV9xdhB8zqfsjWxP66NDC7EZsplYkYO7jRbLWJIeeg,382
|
|
191
193
|
phoenix/server/api/types/Inferences.py,sha256=BOMlOSsRtUV9XQxpnjmZxdBcJ1w-t9PiFfVOSTS160E,3367
|
|
192
194
|
phoenix/server/api/types/InferencesRole.py,sha256=Kj9aiXOpGhpeg9PHd9MDU7aXVIT28EjJxr4P6xybfzc,601
|
|
195
|
+
phoenix/server/api/types/LabelFraction.py,sha256=zsDxdFALrNiGA1eNykeP8o65gbA0HOhRp54MPH_iRAM,93
|
|
193
196
|
phoenix/server/api/types/MimeType.py,sha256=Zpi6zCalkSFgsvhzvOs-O1gYA04usAi9H__QZUmFlO0,365
|
|
194
197
|
phoenix/server/api/types/Model.py,sha256=BRIzH5xSGiDrAUYvhwDpwxT6--ddS3Xr3vCvP8_vzdo,8051
|
|
195
198
|
phoenix/server/api/types/NumericRange.py,sha256=afEjgF97Go_OvmjMggbPBt-zGM8IONewAyEiKEHRds0,192
|
|
196
199
|
phoenix/server/api/types/PerformanceMetric.py,sha256=W92B7OghEOgzFvmY0LCqpgavHaQggTGshdgfD0yqHX4,350
|
|
197
|
-
phoenix/server/api/types/Project.py,sha256=
|
|
200
|
+
phoenix/server/api/types/Project.py,sha256=5Tlz06QSGth9atu2gs0l0GrdoLYrH-lWR4sI-RmLoM8,15418
|
|
198
201
|
phoenix/server/api/types/PromptResponse.py,sha256=Q8HKtpp8GpUOcxPCzZpkkokidDd6u0aZOv_SuPZZd5Q,630
|
|
199
202
|
phoenix/server/api/types/Retrieval.py,sha256=OhMK2ncjoyp5h1yjKhjlKpoTbQrMHuxmgSFw-AO1rWw,285
|
|
200
203
|
phoenix/server/api/types/ScalarDriftMetricEnum.py,sha256=IUAcRPpgL41WdoIgK6cNk2Te38SspXGyEs-S1fY23_A,232
|
|
@@ -222,15 +225,15 @@ phoenix/server/static/apple-touch-icon-76x76.png,sha256=CT_xT12I0u2i0WU8JzBZBuOQ
|
|
|
222
225
|
phoenix/server/static/apple-touch-icon.png,sha256=fOfpjqGpWYbJ0eAurKsyoZP1EAs6ZVooBJ_SGk2ZkDs,3801
|
|
223
226
|
phoenix/server/static/favicon.ico,sha256=bY0vvCKRftemZfPShwZtE93DiiQdaYaozkPGwNFr6H8,34494
|
|
224
227
|
phoenix/server/static/modernizr.js,sha256=mvK-XtkNqjOral-QvzoqsyOMECXIMu5BQwSVN_wcU9c,2564
|
|
225
|
-
phoenix/server/static/.vite/manifest.json,sha256=
|
|
226
|
-
phoenix/server/static/assets/components-
|
|
227
|
-
phoenix/server/static/assets/index-
|
|
228
|
-
phoenix/server/static/assets/pages-
|
|
228
|
+
phoenix/server/static/.vite/manifest.json,sha256=CeeRBcW2EJ5cdrH84djoZC1WUuNz0fALYFQ384p20Ws,1929
|
|
229
|
+
phoenix/server/static/assets/components-B2sHrnz0.js,sha256=oOzJsP1Fj37O6lXH-hUAnGFWczNcggn7PXzfiyyBPnk,184229
|
|
230
|
+
phoenix/server/static/assets/index-BIFmgnip.js,sha256=GkgpPIvpXXzWVE-1nCSfOovlCRA1EGdKv0pUs-6-AYA,7362
|
|
231
|
+
phoenix/server/static/assets/pages-BTHjBGHq.js,sha256=l0r6E3vq2RzZ__rtPdJ6Edoq3hKHQYXRcy1_M3eCQzc,445413
|
|
232
|
+
phoenix/server/static/assets/vendor-BMWfu6zp.js,sha256=AAVTM5SjGUI_CmAWFUFmhpp5VDhvCD-MrEoh-pXXADY,1355423
|
|
229
233
|
phoenix/server/static/assets/vendor-DxkFTwjz.css,sha256=nZrkr0u6NNElFGvpWHk9GTHeGoibCXCli1bE7mXZGZg,1816
|
|
230
|
-
phoenix/server/static/assets/vendor-
|
|
231
|
-
phoenix/server/static/assets/vendor-
|
|
232
|
-
phoenix/server/static/assets/vendor-
|
|
233
|
-
phoenix/server/static/assets/vendor-recharts-ZLJ4kstR.js,sha256=5CAqEcQGS-uVQxnAJTLH7bX9pJG9tGY5KFvi-Zzp4JQ,282859
|
|
234
|
+
phoenix/server/static/assets/vendor-arizeai-CkyzG9Wl.js,sha256=m1xvoung59IMplKeV-0XmsSPRwu1AJDRxwHbq6BN-oc,296355
|
|
235
|
+
phoenix/server/static/assets/vendor-codemirror-DO3VqEcD.js,sha256=M7t6xd6WpgKes25OOeGyxT1MU1dDrEKdmUBHgy5zslw,503031
|
|
236
|
+
phoenix/server/static/assets/vendor-recharts-BGN0SxgJ.js,sha256=L9LAYSjuf0GHh1_PQh9bF4l9euWCDVQcnQN1RgMDMBw,282859
|
|
234
237
|
phoenix/server/static/assets/vendor-three-DwGkEfCM.js,sha256=0D12ZgKzfKCTSdSTKJBFR2RZO_xxeMXrqDp0AszZqHY,620972
|
|
235
238
|
phoenix/server/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
236
239
|
phoenix/server/templates/index.html,sha256=gVpjB8pCMiubdMh2DA9mTCtV5AVTXJH_9u5PmG2t7Vk,4238
|
|
@@ -238,7 +241,7 @@ phoenix/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
238
241
|
phoenix/session/client.py,sha256=RSaEALbFu-En5oJLv7K4BmwdkrsIC5ZbjMX7Mlny8_Y,32665
|
|
239
242
|
phoenix/session/data_extractor.py,sha256=gkEM3WWZAlWGMfRgQopAQlid4cSi6GNco-sdrGir0qc,2788
|
|
240
243
|
phoenix/session/evaluation.py,sha256=aKeV8UVOyq3b7CYOwt3cWuLz0xzvMjX7vlEPILJ_fcs,5311
|
|
241
|
-
phoenix/session/session.py,sha256=
|
|
244
|
+
phoenix/session/session.py,sha256=l10fiotlO1b-SFehcm8N3aVupdFUYYLiLSBrOCJO9as,26911
|
|
242
245
|
phoenix/trace/__init__.py,sha256=ujk_uYjM8gmm-YqnyXxF-kekfwid0bcaPMTtNNcaw6U,407
|
|
243
246
|
phoenix/trace/attributes.py,sha256=B_OrzVaxZwFkrAFXZyicYoIti1UdUysURsvUS2GyW1U,12488
|
|
244
247
|
phoenix/trace/errors.py,sha256=wB1z8qdPckngdfU-TORToekvg3344oNFAA83_hC2yFY,180
|
|
@@ -276,8 +279,8 @@ phoenix/utilities/logging.py,sha256=lDXd6EGaamBNcQxL4vP1au9-i_SXe0OraUDiJOcszSw,
|
|
|
276
279
|
phoenix/utilities/project.py,sha256=8IJuMM4yUMoooPi37sictGj8Etu9rGmq6RFtc9848cQ,436
|
|
277
280
|
phoenix/utilities/re.py,sha256=PDve_OLjRTM8yQQJHC8-n3HdIONi7aNils3ZKRZ5uBM,2045
|
|
278
281
|
phoenix/utilities/span_store.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
279
|
-
arize_phoenix-4.
|
|
280
|
-
arize_phoenix-4.
|
|
281
|
-
arize_phoenix-4.
|
|
282
|
-
arize_phoenix-4.
|
|
283
|
-
arize_phoenix-4.
|
|
282
|
+
arize_phoenix-4.18.0.dist-info/METADATA,sha256=lFZ7DWyKpcAieBqYPFhQ9wmXTGgXajU_pEHvo7msrGc,11829
|
|
283
|
+
arize_phoenix-4.18.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
|
284
|
+
arize_phoenix-4.18.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
|
|
285
|
+
arize_phoenix-4.18.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
|
|
286
|
+
arize_phoenix-4.18.0.dist-info/RECORD,,
|
phoenix/server/api/context.py
CHANGED
|
@@ -8,6 +8,7 @@ from typing_extensions import TypeAlias
|
|
|
8
8
|
|
|
9
9
|
from phoenix.core.model_schema import Model
|
|
10
10
|
from phoenix.server.api.dataloaders import (
|
|
11
|
+
AnnotationSummaryDataLoader,
|
|
11
12
|
AverageExperimentRunLatencyDataLoader,
|
|
12
13
|
CacheForDataLoaders,
|
|
13
14
|
DatasetExampleRevisionsDataLoader,
|
|
@@ -44,6 +45,7 @@ class DataLoaders:
|
|
|
44
45
|
document_evaluation_summaries: DocumentEvaluationSummaryDataLoader
|
|
45
46
|
document_evaluations: DocumentEvaluationsDataLoader
|
|
46
47
|
document_retrieval_metrics: DocumentRetrievalMetricsDataLoader
|
|
48
|
+
annotation_summaries: AnnotationSummaryDataLoader
|
|
47
49
|
evaluation_summaries: EvaluationSummaryDataLoader
|
|
48
50
|
experiment_annotation_summaries: ExperimentAnnotationSummaryDataLoader
|
|
49
51
|
experiment_error_rates: ExperimentErrorRatesDataLoader
|
|
@@ -8,6 +8,7 @@ from phoenix.db.insertion.evaluation import (
|
|
|
8
8
|
)
|
|
9
9
|
from phoenix.db.insertion.span import ClearProjectSpansEvent, SpanInsertionEvent
|
|
10
10
|
|
|
11
|
+
from .annotation_summaries import AnnotationSummaryCache, AnnotationSummaryDataLoader
|
|
11
12
|
from .average_experiment_run_latency import AverageExperimentRunLatencyDataLoader
|
|
12
13
|
from .dataset_example_revisions import DatasetExampleRevisionsDataLoader
|
|
13
14
|
from .dataset_example_spans import DatasetExampleSpansDataLoader
|
|
@@ -43,6 +44,7 @@ __all__ = [
|
|
|
43
44
|
"DocumentEvaluationSummaryDataLoader",
|
|
44
45
|
"DocumentEvaluationsDataLoader",
|
|
45
46
|
"DocumentRetrievalMetricsDataLoader",
|
|
47
|
+
"AnnotationSummaryDataLoader",
|
|
46
48
|
"EvaluationSummaryDataLoader",
|
|
47
49
|
"ExperimentAnnotationSummaryDataLoader",
|
|
48
50
|
"ExperimentErrorRatesDataLoader",
|
|
@@ -68,6 +70,9 @@ class CacheForDataLoaders:
|
|
|
68
70
|
document_evaluation_summary: DocumentEvaluationSummaryCache = field(
|
|
69
71
|
default_factory=DocumentEvaluationSummaryCache,
|
|
70
72
|
)
|
|
73
|
+
annotation_summary: AnnotationSummaryCache = field(
|
|
74
|
+
default_factory=AnnotationSummaryCache,
|
|
75
|
+
)
|
|
71
76
|
evaluation_summary: EvaluationSummaryCache = field(
|
|
72
77
|
default_factory=EvaluationSummaryCache,
|
|
73
78
|
)
|
|
@@ -92,6 +97,7 @@ class CacheForDataLoaders:
|
|
|
92
97
|
|
|
93
98
|
def _clear_spans(self, project_rowid: int) -> None:
|
|
94
99
|
self._update_spans(project_rowid)
|
|
100
|
+
self.annotation_summary.invalidate_project(project_rowid)
|
|
95
101
|
self.evaluation_summary.invalidate_project(project_rowid)
|
|
96
102
|
self.document_evaluation_summary.invalidate_project(project_rowid)
|
|
97
103
|
|
|
@@ -113,9 +119,11 @@ class CacheForDataLoaders:
|
|
|
113
119
|
@invalidate.register
|
|
114
120
|
def _(self, event: SpanEvaluationInsertionEvent) -> None:
|
|
115
121
|
project_rowid, evaluation_name = event
|
|
122
|
+
self.annotation_summary.invalidate((project_rowid, evaluation_name, "span"))
|
|
116
123
|
self.evaluation_summary.invalidate((project_rowid, evaluation_name, "span"))
|
|
117
124
|
|
|
118
125
|
@invalidate.register
|
|
119
126
|
def _(self, event: TraceEvaluationInsertionEvent) -> None:
|
|
120
127
|
project_rowid, evaluation_name = event
|
|
128
|
+
self.annotation_summary.invalidate((project_rowid, evaluation_name, "trace"))
|
|
121
129
|
self.evaluation_summary.invalidate((project_rowid, evaluation_name, "trace"))
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
from collections import defaultdict
|
|
2
|
+
from datetime import datetime
|
|
3
|
+
from typing import (
|
|
4
|
+
Any,
|
|
5
|
+
DefaultDict,
|
|
6
|
+
List,
|
|
7
|
+
Literal,
|
|
8
|
+
Optional,
|
|
9
|
+
Tuple,
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
import pandas as pd
|
|
13
|
+
from aioitertools.itertools import groupby
|
|
14
|
+
from cachetools import LFUCache, TTLCache
|
|
15
|
+
from sqlalchemy import Select, func, or_, select
|
|
16
|
+
from strawberry.dataloader import AbstractCache, DataLoader
|
|
17
|
+
from typing_extensions import TypeAlias, assert_never
|
|
18
|
+
|
|
19
|
+
from phoenix.db import models
|
|
20
|
+
from phoenix.server.api.dataloaders.cache import TwoTierCache
|
|
21
|
+
from phoenix.server.api.input_types.TimeRange import TimeRange
|
|
22
|
+
from phoenix.server.api.types.AnnotationSummary import AnnotationSummary
|
|
23
|
+
from phoenix.server.types import DbSessionFactory
|
|
24
|
+
from phoenix.trace.dsl import SpanFilter
|
|
25
|
+
|
|
26
|
+
Kind: TypeAlias = Literal["span", "trace"]
|
|
27
|
+
ProjectRowId: TypeAlias = int
|
|
28
|
+
TimeInterval: TypeAlias = Tuple[Optional[datetime], Optional[datetime]]
|
|
29
|
+
FilterCondition: TypeAlias = Optional[str]
|
|
30
|
+
EvalName: TypeAlias = str
|
|
31
|
+
|
|
32
|
+
Segment: TypeAlias = Tuple[Kind, ProjectRowId, TimeInterval, FilterCondition]
|
|
33
|
+
Param: TypeAlias = EvalName
|
|
34
|
+
|
|
35
|
+
Key: TypeAlias = Tuple[Kind, ProjectRowId, Optional[TimeRange], FilterCondition, EvalName]
|
|
36
|
+
Result: TypeAlias = Optional[AnnotationSummary]
|
|
37
|
+
ResultPosition: TypeAlias = int
|
|
38
|
+
DEFAULT_VALUE: Result = None
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def _cache_key_fn(key: Key) -> Tuple[Segment, Param]:
|
|
42
|
+
kind, project_rowid, time_range, filter_condition, eval_name = key
|
|
43
|
+
interval = (
|
|
44
|
+
(time_range.start, time_range.end) if isinstance(time_range, TimeRange) else (None, None)
|
|
45
|
+
)
|
|
46
|
+
return (kind, project_rowid, interval, filter_condition), eval_name
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
_Section: TypeAlias = Tuple[ProjectRowId, EvalName, Kind]
|
|
50
|
+
_SubKey: TypeAlias = Tuple[TimeInterval, FilterCondition]
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class AnnotationSummaryCache(
|
|
54
|
+
TwoTierCache[Key, Result, _Section, _SubKey],
|
|
55
|
+
):
|
|
56
|
+
def __init__(self) -> None:
|
|
57
|
+
super().__init__(
|
|
58
|
+
# TTL=3600 (1-hour) because time intervals are always moving forward, but
|
|
59
|
+
# interval endpoints are rounded down to the hour by the UI, so anything
|
|
60
|
+
# older than an hour most likely won't be a cache-hit anyway.
|
|
61
|
+
main_cache=TTLCache(maxsize=64 * 32 * 2, ttl=3600),
|
|
62
|
+
sub_cache_factory=lambda: LFUCache(maxsize=2 * 2),
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
def invalidate_project(self, project_rowid: ProjectRowId) -> None:
|
|
66
|
+
for section in self._cache.keys():
|
|
67
|
+
if section[0] == project_rowid:
|
|
68
|
+
del self._cache[section]
|
|
69
|
+
|
|
70
|
+
def _cache_key(self, key: Key) -> Tuple[_Section, _SubKey]:
|
|
71
|
+
(kind, project_rowid, interval, filter_condition), eval_name = _cache_key_fn(key)
|
|
72
|
+
return (project_rowid, eval_name, kind), (interval, filter_condition)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
class AnnotationSummaryDataLoader(DataLoader[Key, Result]):
|
|
76
|
+
def __init__(
|
|
77
|
+
self,
|
|
78
|
+
db: DbSessionFactory,
|
|
79
|
+
cache_map: Optional[AbstractCache[Key, Result]] = None,
|
|
80
|
+
) -> None:
|
|
81
|
+
super().__init__(
|
|
82
|
+
load_fn=self._load_fn,
|
|
83
|
+
cache_key_fn=_cache_key_fn,
|
|
84
|
+
cache_map=cache_map,
|
|
85
|
+
)
|
|
86
|
+
self._db = db
|
|
87
|
+
|
|
88
|
+
async def _load_fn(self, keys: List[Key]) -> List[Result]:
|
|
89
|
+
results: List[Result] = [DEFAULT_VALUE] * len(keys)
|
|
90
|
+
arguments: DefaultDict[
|
|
91
|
+
Segment,
|
|
92
|
+
DefaultDict[Param, List[ResultPosition]],
|
|
93
|
+
] = defaultdict(lambda: defaultdict(list))
|
|
94
|
+
for position, key in enumerate(keys):
|
|
95
|
+
segment, param = _cache_key_fn(key)
|
|
96
|
+
arguments[segment][param].append(position)
|
|
97
|
+
for segment, params in arguments.items():
|
|
98
|
+
stmt = _get_stmt(segment, *params.keys())
|
|
99
|
+
async with self._db() as session:
|
|
100
|
+
data = await session.stream(stmt)
|
|
101
|
+
async for eval_name, group in groupby(data, lambda row: row.name):
|
|
102
|
+
summary = AnnotationSummary(pd.DataFrame(group))
|
|
103
|
+
for position in params[eval_name]:
|
|
104
|
+
results[position] = summary
|
|
105
|
+
return results
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
def _get_stmt(
|
|
109
|
+
segment: Segment,
|
|
110
|
+
*eval_names: Param,
|
|
111
|
+
) -> Select[Any]:
|
|
112
|
+
kind, project_rowid, (start_time, end_time), filter_condition = segment
|
|
113
|
+
stmt = select()
|
|
114
|
+
if kind == "span":
|
|
115
|
+
msa = models.SpanAnnotation
|
|
116
|
+
name_column, label_column, score_column = msa.name, msa.label, msa.score
|
|
117
|
+
time_column = models.Span.start_time
|
|
118
|
+
stmt = stmt.join(models.Span).join_from(models.Span, models.Trace)
|
|
119
|
+
if filter_condition:
|
|
120
|
+
sf = SpanFilter(filter_condition)
|
|
121
|
+
stmt = sf(stmt)
|
|
122
|
+
elif kind == "trace":
|
|
123
|
+
mta = models.TraceAnnotation
|
|
124
|
+
name_column, label_column, score_column = mta.name, mta.label, mta.score
|
|
125
|
+
time_column = models.Trace.start_time
|
|
126
|
+
stmt = stmt.join(models.Trace)
|
|
127
|
+
else:
|
|
128
|
+
assert_never(kind)
|
|
129
|
+
stmt = stmt.add_columns(
|
|
130
|
+
name_column,
|
|
131
|
+
label_column,
|
|
132
|
+
func.count().label("record_count"),
|
|
133
|
+
func.count(label_column).label("label_count"),
|
|
134
|
+
func.count(score_column).label("score_count"),
|
|
135
|
+
func.sum(score_column).label("score_sum"),
|
|
136
|
+
)
|
|
137
|
+
stmt = stmt.group_by(name_column, label_column)
|
|
138
|
+
stmt = stmt.order_by(name_column, label_column)
|
|
139
|
+
stmt = stmt.where(models.Trace.project_rowid == project_rowid)
|
|
140
|
+
stmt = stmt.where(or_(score_column.is_not(None), label_column.is_not(None)))
|
|
141
|
+
stmt = stmt.where(name_column.in_(eval_names))
|
|
142
|
+
if start_time:
|
|
143
|
+
stmt = stmt.where(start_time <= time_column)
|
|
144
|
+
if end_time:
|
|
145
|
+
stmt = stmt.where(time_column < end_time)
|
|
146
|
+
return stmt
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
from typing import List, Optional, Union, cast
|
|
2
|
+
|
|
3
|
+
import pandas as pd
|
|
4
|
+
import strawberry
|
|
5
|
+
from strawberry import Private
|
|
6
|
+
|
|
7
|
+
from phoenix.db import models
|
|
8
|
+
from phoenix.server.api.types.LabelFraction import LabelFraction
|
|
9
|
+
|
|
10
|
+
AnnotationType = Union[models.SpanAnnotation, models.TraceAnnotation]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@strawberry.type
|
|
14
|
+
class AnnotationSummary:
|
|
15
|
+
df: Private[pd.DataFrame]
|
|
16
|
+
|
|
17
|
+
def __init__(self, dataframe: pd.DataFrame) -> None:
|
|
18
|
+
self.df = dataframe
|
|
19
|
+
|
|
20
|
+
@strawberry.field
|
|
21
|
+
def count(self) -> int:
|
|
22
|
+
return cast(int, self.df.record_count.sum())
|
|
23
|
+
|
|
24
|
+
@strawberry.field
|
|
25
|
+
def labels(self) -> List[str]:
|
|
26
|
+
return self.df.label.dropna().tolist()
|
|
27
|
+
|
|
28
|
+
@strawberry.field
|
|
29
|
+
def label_fractions(self) -> List[LabelFraction]:
|
|
30
|
+
if not (n := self.df.label_count.sum()):
|
|
31
|
+
return []
|
|
32
|
+
return [
|
|
33
|
+
LabelFraction(
|
|
34
|
+
label=cast(str, row.label),
|
|
35
|
+
fraction=row.label_count / n,
|
|
36
|
+
)
|
|
37
|
+
for row in self.df.loc[
|
|
38
|
+
self.df.label.notna(),
|
|
39
|
+
["label", "label_count"],
|
|
40
|
+
].itertuples()
|
|
41
|
+
]
|
|
42
|
+
|
|
43
|
+
@strawberry.field
|
|
44
|
+
def mean_score(self) -> Optional[float]:
|
|
45
|
+
if not (n := self.df.score_count.sum()):
|
|
46
|
+
return None
|
|
47
|
+
return cast(float, self.df.score_sum.sum() / n)
|
|
48
|
+
|
|
49
|
+
@strawberry.field
|
|
50
|
+
def score_count(self) -> int:
|
|
51
|
+
return cast(int, self.df.score_count.sum())
|
|
52
|
+
|
|
53
|
+
@strawberry.field
|
|
54
|
+
def label_count(self) -> int:
|
|
55
|
+
return cast(int, self.df.label_count.sum())
|
|
@@ -5,16 +5,11 @@ import strawberry
|
|
|
5
5
|
from strawberry import Private
|
|
6
6
|
|
|
7
7
|
from phoenix.db import models
|
|
8
|
+
from phoenix.server.api.types.LabelFraction import LabelFraction
|
|
8
9
|
|
|
9
10
|
AnnotationType = Union[models.SpanAnnotation, models.TraceAnnotation]
|
|
10
11
|
|
|
11
12
|
|
|
12
|
-
@strawberry.type
|
|
13
|
-
class LabelFraction:
|
|
14
|
-
label: str
|
|
15
|
-
fraction: float
|
|
16
|
-
|
|
17
|
-
|
|
18
13
|
@strawberry.type
|
|
19
14
|
class EvaluationSummary:
|
|
20
15
|
df: Private[pd.DataFrame]
|
|
@@ -20,6 +20,7 @@ from phoenix.db import models
|
|
|
20
20
|
from phoenix.server.api.context import Context
|
|
21
21
|
from phoenix.server.api.input_types.SpanSort import SpanSort, SpanSortConfig
|
|
22
22
|
from phoenix.server.api.input_types.TimeRange import TimeRange
|
|
23
|
+
from phoenix.server.api.types.AnnotationSummary import AnnotationSummary
|
|
23
24
|
from phoenix.server.api.types.DocumentEvaluationSummary import DocumentEvaluationSummary
|
|
24
25
|
from phoenix.server.api.types.EvaluationSummary import EvaluationSummary
|
|
25
26
|
from phoenix.server.api.types.pagination import (
|
|
@@ -356,6 +357,29 @@ class Project(Node):
|
|
|
356
357
|
("span", self.id_attr, time_range, filter_condition, evaluation_name),
|
|
357
358
|
)
|
|
358
359
|
|
|
360
|
+
@strawberry.field
|
|
361
|
+
async def trace_annotation_summary(
|
|
362
|
+
self,
|
|
363
|
+
info: Info[Context, None],
|
|
364
|
+
evaluation_name: str,
|
|
365
|
+
time_range: Optional[TimeRange] = UNSET,
|
|
366
|
+
) -> Optional[AnnotationSummary]:
|
|
367
|
+
return await info.context.data_loaders.annotation_summaries.load(
|
|
368
|
+
("trace", self.id_attr, time_range, None, evaluation_name),
|
|
369
|
+
)
|
|
370
|
+
|
|
371
|
+
@strawberry.field
|
|
372
|
+
async def span_annotation_summary(
|
|
373
|
+
self,
|
|
374
|
+
info: Info[Context, None],
|
|
375
|
+
evaluation_name: str,
|
|
376
|
+
time_range: Optional[TimeRange] = UNSET,
|
|
377
|
+
filter_condition: Optional[str] = UNSET,
|
|
378
|
+
) -> Optional[AnnotationSummary]:
|
|
379
|
+
return await info.context.data_loaders.annotation_summaries.load(
|
|
380
|
+
("span", self.id_attr, time_range, filter_condition, evaluation_name),
|
|
381
|
+
)
|
|
382
|
+
|
|
359
383
|
@strawberry.field
|
|
360
384
|
async def document_evaluation_summary(
|
|
361
385
|
self,
|
phoenix/server/app.py
CHANGED
|
@@ -58,6 +58,7 @@ from phoenix.exceptions import PhoenixMigrationError
|
|
|
58
58
|
from phoenix.pointcloud.umap_parameters import UMAPParameters
|
|
59
59
|
from phoenix.server.api.context import Context, DataLoaders
|
|
60
60
|
from phoenix.server.api.dataloaders import (
|
|
61
|
+
AnnotationSummaryDataLoader,
|
|
61
62
|
AverageExperimentRunLatencyDataLoader,
|
|
62
63
|
CacheForDataLoaders,
|
|
63
64
|
DatasetExampleRevisionsDataLoader,
|
|
@@ -286,6 +287,12 @@ def create_graphql_router(
|
|
|
286
287
|
),
|
|
287
288
|
document_evaluations=DocumentEvaluationsDataLoader(db),
|
|
288
289
|
document_retrieval_metrics=DocumentRetrievalMetricsDataLoader(db),
|
|
290
|
+
annotation_summaries=AnnotationSummaryDataLoader(
|
|
291
|
+
db,
|
|
292
|
+
cache_map=cache_for_dataloaders.annotation_summary
|
|
293
|
+
if cache_for_dataloaders
|
|
294
|
+
else None,
|
|
295
|
+
),
|
|
289
296
|
evaluation_summaries=EvaluationSummaryDataLoader(
|
|
290
297
|
db,
|
|
291
298
|
cache_map=cache_for_dataloaders.evaluation_summary
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_components-
|
|
3
|
-
"file": "assets/components-
|
|
2
|
+
"_components-B2sHrnz0.js": {
|
|
3
|
+
"file": "assets/components-B2sHrnz0.js",
|
|
4
4
|
"name": "components",
|
|
5
5
|
"imports": [
|
|
6
|
-
"_vendor-
|
|
7
|
-
"_vendor-arizeai-
|
|
8
|
-
"_pages-
|
|
6
|
+
"_vendor-BMWfu6zp.js",
|
|
7
|
+
"_vendor-arizeai-CkyzG9Wl.js",
|
|
8
|
+
"_pages-BTHjBGHq.js",
|
|
9
9
|
"_vendor-three-DwGkEfCM.js",
|
|
10
|
-
"_vendor-codemirror-
|
|
10
|
+
"_vendor-codemirror-DO3VqEcD.js"
|
|
11
11
|
]
|
|
12
12
|
},
|
|
13
|
-
"_pages-
|
|
14
|
-
"file": "assets/pages-
|
|
13
|
+
"_pages-BTHjBGHq.js": {
|
|
14
|
+
"file": "assets/pages-BTHjBGHq.js",
|
|
15
15
|
"name": "pages",
|
|
16
16
|
"imports": [
|
|
17
|
-
"_vendor-
|
|
18
|
-
"_components-
|
|
19
|
-
"_vendor-arizeai-
|
|
20
|
-
"_vendor-recharts-
|
|
21
|
-
"_vendor-codemirror-
|
|
17
|
+
"_vendor-BMWfu6zp.js",
|
|
18
|
+
"_components-B2sHrnz0.js",
|
|
19
|
+
"_vendor-arizeai-CkyzG9Wl.js",
|
|
20
|
+
"_vendor-recharts-BGN0SxgJ.js",
|
|
21
|
+
"_vendor-codemirror-DO3VqEcD.js"
|
|
22
22
|
]
|
|
23
23
|
},
|
|
24
24
|
"_vendor-!~{003}~.js": {
|
|
25
25
|
"file": "assets/vendor-DxkFTwjz.css",
|
|
26
26
|
"src": "_vendor-!~{003}~.js"
|
|
27
27
|
},
|
|
28
|
-
"_vendor-
|
|
29
|
-
"file": "assets/vendor-
|
|
28
|
+
"_vendor-BMWfu6zp.js": {
|
|
29
|
+
"file": "assets/vendor-BMWfu6zp.js",
|
|
30
30
|
"name": "vendor",
|
|
31
31
|
"imports": [
|
|
32
32
|
"_vendor-three-DwGkEfCM.js"
|
|
@@ -35,25 +35,25 @@
|
|
|
35
35
|
"assets/vendor-DxkFTwjz.css"
|
|
36
36
|
]
|
|
37
37
|
},
|
|
38
|
-
"_vendor-arizeai-
|
|
39
|
-
"file": "assets/vendor-arizeai-
|
|
38
|
+
"_vendor-arizeai-CkyzG9Wl.js": {
|
|
39
|
+
"file": "assets/vendor-arizeai-CkyzG9Wl.js",
|
|
40
40
|
"name": "vendor-arizeai",
|
|
41
41
|
"imports": [
|
|
42
|
-
"_vendor-
|
|
42
|
+
"_vendor-BMWfu6zp.js"
|
|
43
43
|
]
|
|
44
44
|
},
|
|
45
|
-
"_vendor-codemirror-
|
|
46
|
-
"file": "assets/vendor-codemirror-
|
|
45
|
+
"_vendor-codemirror-DO3VqEcD.js": {
|
|
46
|
+
"file": "assets/vendor-codemirror-DO3VqEcD.js",
|
|
47
47
|
"name": "vendor-codemirror",
|
|
48
48
|
"imports": [
|
|
49
|
-
"_vendor-
|
|
49
|
+
"_vendor-BMWfu6zp.js"
|
|
50
50
|
]
|
|
51
51
|
},
|
|
52
|
-
"_vendor-recharts-
|
|
53
|
-
"file": "assets/vendor-recharts-
|
|
52
|
+
"_vendor-recharts-BGN0SxgJ.js": {
|
|
53
|
+
"file": "assets/vendor-recharts-BGN0SxgJ.js",
|
|
54
54
|
"name": "vendor-recharts",
|
|
55
55
|
"imports": [
|
|
56
|
-
"_vendor-
|
|
56
|
+
"_vendor-BMWfu6zp.js"
|
|
57
57
|
]
|
|
58
58
|
},
|
|
59
59
|
"_vendor-three-DwGkEfCM.js": {
|
|
@@ -61,18 +61,18 @@
|
|
|
61
61
|
"name": "vendor-three"
|
|
62
62
|
},
|
|
63
63
|
"index.tsx": {
|
|
64
|
-
"file": "assets/index-
|
|
64
|
+
"file": "assets/index-BIFmgnip.js",
|
|
65
65
|
"name": "index",
|
|
66
66
|
"src": "index.tsx",
|
|
67
67
|
"isEntry": true,
|
|
68
68
|
"imports": [
|
|
69
|
-
"_vendor-
|
|
70
|
-
"_vendor-arizeai-
|
|
71
|
-
"
|
|
72
|
-
"
|
|
69
|
+
"_vendor-BMWfu6zp.js",
|
|
70
|
+
"_vendor-arizeai-CkyzG9Wl.js",
|
|
71
|
+
"_components-B2sHrnz0.js",
|
|
72
|
+
"_pages-BTHjBGHq.js",
|
|
73
73
|
"_vendor-three-DwGkEfCM.js",
|
|
74
|
-
"_vendor-
|
|
75
|
-
"_vendor-
|
|
74
|
+
"_vendor-codemirror-DO3VqEcD.js",
|
|
75
|
+
"_vendor-recharts-BGN0SxgJ.js"
|
|
76
76
|
]
|
|
77
77
|
}
|
|
78
78
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as Ue,p as Mt,d as je,r as p,j as n,R as q,n as Fn,a as xe,C as Ie,b as B,s as Tt,e as It,f as re,g as Se,h as Oe,i as Me,k as he,l as Dt,m as Et,o as ne,q as Ft,t as Vt,u as _t,v as s,w as m,x as Ee,$ as _,L as Vn,y as Pt,z as Nt,A as Rt,B as Ot,D as sn,F as Fe,E as oe,G as Kt,H as At,I as _n,S as zt,J as $t,Q as cn,K as Gt,M as Bt,N as Qt,P as Ke,O as Pn,T as Ht,U as Zt,V as Ut,W as jt,X as qt,Y as Wt,Z as Jt,_ as Xt,a0 as Yt,a1 as qe,a2 as $,a3 as Nn,a4 as ea,a5 as na,a6 as ta,a7 as aa,a8 as ra}from"./vendor-
|
|
1
|
+
import{c as Ue,p as Mt,d as je,r as p,j as n,R as q,n as Fn,a as xe,C as Ie,b as B,s as Tt,e as It,f as re,g as Se,h as Oe,i as Me,k as he,l as Dt,m as Et,o as ne,q as Ft,t as Vt,u as _t,v as s,w as m,x as Ee,$ as _,L as Vn,y as Pt,z as Nt,A as Rt,B as Ot,D as sn,F as Fe,E as oe,G as Kt,H as At,I as _n,S as zt,J as $t,Q as cn,K as Gt,M as Bt,N as Qt,P as Ke,O as Pn,T as Ht,U as Zt,V as Ut,W as jt,X as qt,Y as Wt,Z as Jt,_ as Xt,a0 as Yt,a1 as qe,a2 as $,a3 as Nn,a4 as ea,a5 as na,a6 as ta,a7 as aa,a8 as ra}from"./vendor-BMWfu6zp.js";import{u as ia,_ as Z,a as Ve,b as U,c as N,T as A,F as Rn,d as Q,I,e as T,f as j,A as la,g as On,h as C,i as E,j as ae,k as oa,l as sa,P as ca,R as G,m as _e,n as da,o as ua,L as We,p as W,q as J,r as Pe,s as ma,t as Kn,E as pa,v as ga,w as ha,x as fa,y as La,z as ya,B as va}from"./vendor-arizeai-CkyzG9Wl.js";import{u as ba}from"./pages-BTHjBGHq.js";import{V as Ca}from"./vendor-three-DwGkEfCM.js";import{j as An,E as zn,l as $n,a as Gn,R as Je,n as Xe,p as ka}from"./vendor-codemirror-DO3VqEcD.js";const xa=e=>{const t=a=>({...e,markdownDisplayMode:"text",setMarkdownDisplayMode:r=>{a({markdownDisplayMode:r})},traceStreamingEnabled:!0,setTraceStreamingEnabled:r=>{a({traceStreamingEnabled:r})},showSpanAside:!0,setShowSpanAside:r=>{a({showSpanAside:r})}});return Ue()(Mt(je(t),{name:"arize-phoenix-preferences"}))},Bn=p.createContext(null);function V1({children:e,...t}){const a=p.useRef();return a.current||(a.current=xa(t)),n(Bn.Provider,{value:a.current,children:e})}function dn(e,t){const a=q.useContext(Bn);if(!a)throw new Error("Missing PreferencesContext.Provider in the tree");return Fn(a,e,t)}var K=(e=>(e.primary="primary",e.reference="reference",e.corpus="corpus",e))(K||{});function F(e){throw new Error("Unreachable")}function Ye(e){return typeof e=="number"||e===null}function Sa(e){return typeof e=="string"||e===null}function _1(e){return Array.isArray(e)?e.every(t=>typeof t=="string"):!1}function wa(e){return typeof e=="object"&&e!==null}const en=p.createContext(null);function Ne(){const e=q.useContext(en);if(e===null)throw new Error("useInferences must be used within a InferencesProvider");return e}function P1(e){return n(en.Provider,{value:{primaryInferences:e.primaryInferences,referenceInferences:e.referenceInferences,corpusInferences:e.corpusInferences,getInferencesNameByRole:t=>{var a,r;switch(t){case K.primary:return e.primaryInferences.name;case K.reference:return((a=e.referenceInferences)==null?void 0:a.name)??"reference";case K.corpus:return((r=e.corpusInferences)==null?void 0:r.name)??"corpus";default:F()}}},children:e.children})}const Qn=function(){var e={defaultValue:null,kind:"LocalArgument",name:"clusters"},t={defaultValue:null,kind:"LocalArgument",name:"dataQualityMetricColumnName"},a={defaultValue:null,kind:"LocalArgument",name:"fetchDataQualityMetric"},r={defaultValue:null,kind:"LocalArgument",name:"fetchPerformanceMetric"},i={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:[e,t,a,r,i],kind:"Fragment",metadata:null,name:"pointCloudStore_clusterMetricsQuery",selections:o,type:"Query",abstractKey:null},kind:"Request",operation:{argumentDefinitions:[e,a,t,r,i],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
|