arize-phoenix 12.0.0__py3-none-any.whl → 12.3.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-12.0.0.dist-info → arize_phoenix-12.3.0.dist-info}/METADATA +1 -1
- {arize_phoenix-12.0.0.dist-info → arize_phoenix-12.3.0.dist-info}/RECORD +43 -38
- phoenix/db/insertion/document_annotation.py +1 -1
- phoenix/db/insertion/session_annotation.py +1 -1
- phoenix/db/insertion/span_annotation.py +1 -1
- phoenix/db/insertion/trace_annotation.py +1 -1
- phoenix/db/insertion/types.py +0 -4
- phoenix/db/models.py +22 -1
- phoenix/server/api/auth_messages.py +46 -0
- phoenix/server/api/context.py +2 -0
- phoenix/server/api/dataloaders/__init__.py +2 -0
- phoenix/server/api/dataloaders/dataset_labels.py +36 -0
- phoenix/server/api/helpers/playground_clients.py +1 -0
- phoenix/server/api/mutations/__init__.py +2 -0
- phoenix/server/api/mutations/dataset_label_mutations.py +291 -0
- phoenix/server/api/mutations/dataset_split_mutations.py +38 -2
- phoenix/server/api/queries.py +21 -0
- phoenix/server/api/routers/auth.py +5 -5
- phoenix/server/api/routers/oauth2.py +53 -51
- phoenix/server/api/types/Dataset.py +8 -0
- phoenix/server/api/types/DatasetExample.py +7 -0
- phoenix/server/api/types/DatasetLabel.py +23 -0
- phoenix/server/api/types/Prompt.py +18 -1
- phoenix/server/app.py +12 -12
- phoenix/server/cost_tracking/model_cost_manifest.json +54 -54
- phoenix/server/oauth2.py +2 -4
- phoenix/server/static/.vite/manifest.json +39 -39
- phoenix/server/static/assets/{components-Dl9SUw1U.js → components-Bs8eJEpU.js} +699 -378
- phoenix/server/static/assets/{index-CqQS0dTo.js → index-C6WEu5UP.js} +3 -3
- phoenix/server/static/assets/{pages-DKSjVA_E.js → pages-D-n2pkoG.js} +1149 -1142
- phoenix/server/static/assets/vendor-D2eEI-6h.js +914 -0
- phoenix/server/static/assets/{vendor-arizeai-D-lWOwIS.js → vendor-arizeai-kfOei7nf.js} +15 -24
- phoenix/server/static/assets/{vendor-codemirror-BRBpy3_z.js → vendor-codemirror-1bq_t1Ec.js} +3 -3
- phoenix/server/static/assets/{vendor-recharts--KdSwB3m.js → vendor-recharts-DQ4xfrf4.js} +1 -1
- phoenix/server/static/assets/{vendor-shiki-CvRzZnIo.js → vendor-shiki-GGmcIQxA.js} +1 -1
- phoenix/server/templates/index.html +1 -0
- phoenix/server/utils.py +74 -0
- phoenix/session/session.py +25 -5
- phoenix/version.py +1 -1
- phoenix/server/static/assets/vendor-CtbHQYl8.js +0 -903
- {arize_phoenix-12.0.0.dist-info → arize_phoenix-12.3.0.dist-info}/WHEEL +0 -0
- {arize_phoenix-12.0.0.dist-info → arize_phoenix-12.3.0.dist-info}/entry_points.txt +0 -0
- {arize_phoenix-12.0.0.dist-info → arize_phoenix-12.3.0.dist-info}/licenses/IP_NOTICE +0 -0
- {arize_phoenix-12.0.0.dist-info → arize_phoenix-12.3.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -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=2kHfT3BNOVd4dAO1bq-syEQbHSG8oX2-7NhOwK2QREk,896
|
|
9
|
-
phoenix/version.py,sha256=
|
|
9
|
+
phoenix/version.py,sha256=joovLOjrezzyo7EzpCd_GmtqwFzRWnqjgTP-wu-ic5w,23
|
|
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
|
|
@@ -22,19 +22,19 @@ phoenix/db/enums.py,sha256=w3O5YuJEEzVTwVDZb8b2UUFhU8yK_GosF081VVrrno0,188
|
|
|
22
22
|
phoenix/db/facilitator.py,sha256=4MW9ZQOHEJAeG8KUeiWbp-WBWrtIe5FWPohvGO8zqiE,20255
|
|
23
23
|
phoenix/db/helpers.py,sha256=Inc3g_F7QtiTe-AW11j5EohUJVvDsHohyzIgObimjVI,21514
|
|
24
24
|
phoenix/db/migrate.py,sha256=oUrXH8yEbcpL4eh09aSCuUiSrhFli0eT5D_j4ZmYChY,2797
|
|
25
|
-
phoenix/db/models.py,sha256=
|
|
25
|
+
phoenix/db/models.py,sha256=ojmInqTNCm0GTv8sNXzUJBL7eBpcy-5NzqPeaZvlnpw,71269
|
|
26
26
|
phoenix/db/pg_config.py,sha256=h6mB7qF7t4Zk6VGvAiyefHGVu74o-yJynaWzeE39k9Y,6001
|
|
27
27
|
phoenix/db/insertion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
28
|
phoenix/db/insertion/constants.py,sha256=8wifm7X-1XvroZ__R2Gc96NsgLhTDn0zXl4lehlXtcA,70
|
|
29
29
|
phoenix/db/insertion/dataset.py,sha256=rUKX2CHSjl8ZrRmiVraSithTNwgynFWjEXvx3QUHiY4,7441
|
|
30
|
-
phoenix/db/insertion/document_annotation.py,sha256=
|
|
30
|
+
phoenix/db/insertion/document_annotation.py,sha256=jr-3IIFEUGrSqQW1xvdIi-LeMkOf0cDNkFQ9p3lSJBo,6544
|
|
31
31
|
phoenix/db/insertion/evaluation.py,sha256=XIlDQMx9FFu_hO1TEao8_ScgKETw61AoeGezsmngXrY,6876
|
|
32
32
|
phoenix/db/insertion/helpers.py,sha256=QDQFYjmAm1nZgDUCqtkJLP-f2ten0tRBWwvPS74mIuM,4136
|
|
33
|
-
phoenix/db/insertion/session_annotation.py,sha256=
|
|
33
|
+
phoenix/db/insertion/session_annotation.py,sha256=6933lu7Vuq-cqnjSU-VB3Nuw3rlngOOYoUbngj1RXcI,6118
|
|
34
34
|
phoenix/db/insertion/span.py,sha256=UB4UR8QlkJdVzbJ7_-S6FXIHYjyKZSOEVzCOvwGw7cY,8414
|
|
35
|
-
phoenix/db/insertion/span_annotation.py,sha256
|
|
36
|
-
phoenix/db/insertion/trace_annotation.py,sha256=
|
|
37
|
-
phoenix/db/insertion/types.py,sha256=
|
|
35
|
+
phoenix/db/insertion/span_annotation.py,sha256=-rxUryjxd2eQRAMVQgY7h_owpVY5VtTUDFagD6winlc,5728
|
|
36
|
+
phoenix/db/insertion/trace_annotation.py,sha256=WZGNgtOuz1lbeJlckz_c7hz04ysq5FeeMqxLzlabJ9w,5768
|
|
37
|
+
phoenix/db/insertion/types.py,sha256=FkMa00l6Ra0aDsPiC_H1WjFykVQZ2sTFU0iyKXvpnUk,9530
|
|
38
38
|
phoenix/db/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
39
|
phoenix/db/migrations/env.py,sha256=tFO3ceuCx9Es5_2w_BXclaQMmNQKNX21b1UEV5mYdeo,3387
|
|
40
40
|
phoenix/db/migrations/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
|
|
@@ -102,7 +102,7 @@ phoenix/pointcloud/pointcloud.py,sha256=SN_1wXZcwKrtSnHGZLDZGx71orqE1WyVF7E-D58d
|
|
|
102
102
|
phoenix/pointcloud/projectors.py,sha256=TQgwc9cJDjJkin1WZyZzgl3HsYrLLiyWD7Czy4jNW3U,1088
|
|
103
103
|
phoenix/pointcloud/umap_parameters.py,sha256=db_WEPoamuWtopZx7tQfAXPnoE0MS8FkAV0_ThjEx_Q,1735
|
|
104
104
|
phoenix/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
105
|
-
phoenix/server/app.py,sha256
|
|
105
|
+
phoenix/server/app.py,sha256=Nkm7xwzed5H_ArLWiqn4Id5ERxB-k-1sJSsvvtWw4Pk,50868
|
|
106
106
|
phoenix/server/authorization.py,sha256=OxROn7ibpKtCTrcgDkzWuNxVaQcSQ8MAx7zbjZiliK0,3201
|
|
107
107
|
phoenix/server/bearer_auth.py,sha256=f4v4W94KyTdGGCPsK1tXOe0vouPuvanAEa03XSdCvPE,6650
|
|
108
108
|
phoenix/server/dml_event.py,sha256=HgUsIkzyXxCGasjnrqubegWbNaAcAgjrtWrKc3aRwxA,3245
|
|
@@ -110,7 +110,7 @@ phoenix/server/dml_event_handler.py,sha256=71_iPcHiJ4E-8Z7sGL2j0vx_RpkmcMVEUFIBs
|
|
|
110
110
|
phoenix/server/grpc_server.py,sha256=THDdkMKXQEC3gZjFG2nUgXHFbUnWsRHgFM9oh5WtAX0,4758
|
|
111
111
|
phoenix/server/jwt_store.py,sha256=B6uVildN_dQDTG_-aHHvuVSI7wIVK1yvED-_y6se2GU,16905
|
|
112
112
|
phoenix/server/main.py,sha256=UBwxrQIEE7ci-SbE6GAlRYmbMHooI6JYG6sG-UpBFFs,18905
|
|
113
|
-
phoenix/server/oauth2.py,sha256=
|
|
113
|
+
phoenix/server/oauth2.py,sha256=l6jugh-lHq0h7h7TBzvk6oTrHKXe1aX9-j7UAat5Eac,3224
|
|
114
114
|
phoenix/server/prometheus.py,sha256=ovh6Hrw2mLUC6KddGydT0_lv-yK0upV9mL-T9UjqlcE,9373
|
|
115
115
|
phoenix/server/rate_limiters.py,sha256=cFc73D2NaxqNZZDbwfIDw4So-fRVOJPBtqxOZ8Qky_s,7155
|
|
116
116
|
phoenix/server/retention.py,sha256=MQe1FWuc_NxhqgIq5q2hfFhWT8ddAmpppgI74xYEQ6c,3064
|
|
@@ -118,17 +118,19 @@ phoenix/server/session_filters.py,sha256=zEJHnF2sDCxjWti2eOz1Yx4r4-zS1rAzq0oUxzl
|
|
|
118
118
|
phoenix/server/telemetry.py,sha256=4EluDDrhdDPxAjaW6lVSbi73xkB5XeUCZWOmZGdk0hg,2755
|
|
119
119
|
phoenix/server/thread_server.py,sha256=W3U8aASh-vA01tvEnHfE9GpsOowINAATYt7ezjKSWvI,2088
|
|
120
120
|
phoenix/server/types.py,sha256=j8erl9iRNaR8t0DCQG84-uDVbHy9Qnm7T2EuTtDNNsU,8013
|
|
121
|
+
phoenix/server/utils.py,sha256=zTgY07W9GOpAFvIIPVBfXAGQb6kwGla2lhj1VGTCeIU,3057
|
|
121
122
|
phoenix/server/api/README.md,sha256=Pyq1PLPgTzXAswrfIhGXrjI3Skq8it2jTVnanT6Ba4Q,1162
|
|
122
123
|
phoenix/server/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
123
124
|
phoenix/server/api/auth.py,sha256=AyYhnZIbY9ALVjg2K6aC2UXSa3Pva5GVDBXyaZ3nD3o,2749
|
|
124
|
-
phoenix/server/api/
|
|
125
|
+
phoenix/server/api/auth_messages.py,sha256=15oqogBNS2BgJLLDecfXz62G9LdiOAEyzPv6jX9BxYE,1912
|
|
126
|
+
phoenix/server/api/context.py,sha256=rdjGb0Ce-XBFVF5lj-lA8VoyKmrrPpLdU_BKT0qhFyQ,10450
|
|
125
127
|
phoenix/server/api/exceptions.py,sha256=9gB4nBRNX6k4_fsQZ12yxw6Tw53h_915l06DYK-qkPQ,1442
|
|
126
128
|
phoenix/server/api/interceptor.py,sha256=ykDnoC_apUd-llVli3m1CW18kNSIgjz2qZ6m5JmPDu8,1294
|
|
127
|
-
phoenix/server/api/queries.py,sha256=
|
|
129
|
+
phoenix/server/api/queries.py,sha256=eZ12poXJ08Pla-DIW8v5dS9gWKdIbS-WO0Df-iGbLOg,67341
|
|
128
130
|
phoenix/server/api/schema.py,sha256=fcs36xQwFF_Qe41_5cWR8wYpDvOrnbcyTeo5WNMbDsA,1702
|
|
129
131
|
phoenix/server/api/subscriptions.py,sha256=5J5_B6FUZav4UBzWETdcGNjClZa7-T1d7vxxeQCg63s,26167
|
|
130
132
|
phoenix/server/api/utils.py,sha256=quCBRcusc6PUq9tJq7M8PgwFZp7nXgVAxtbw8feribY,833
|
|
131
|
-
phoenix/server/api/dataloaders/__init__.py,sha256=
|
|
133
|
+
phoenix/server/api/dataloaders/__init__.py,sha256=yDuF2Ci9ab8a-m3b4q-eVLXo9X3CaFX5SGgpZ35BGHk,8129
|
|
132
134
|
phoenix/server/api/dataloaders/annotation_configs_by_project.py,sha256=_Nfiug9o01JimU3Z0LpZJ0uaMCjchXomyt_dYAxPFRY,1178
|
|
133
135
|
phoenix/server/api/dataloaders/annotation_summaries.py,sha256=0b23-bucBKyL25RWb2QzCNJjQzrq403qMmHKUVD5W4M,14377
|
|
134
136
|
phoenix/server/api/dataloaders/average_experiment_repeated_run_group_latency.py,sha256=BSNyrwuNadQ16-2g0nGixrB5LyDqlTLeM2bKikyIagY,1860
|
|
@@ -137,6 +139,7 @@ phoenix/server/api/dataloaders/dataset_example_revisions.py,sha256=MqRBkT3AE6b6A
|
|
|
137
139
|
phoenix/server/api/dataloaders/dataset_example_spans.py,sha256=z_MFquqAcJ9wat7BBp7MVeJ9BYuu2EZEdaog52iWDno,1390
|
|
138
140
|
phoenix/server/api/dataloaders/dataset_example_splits.py,sha256=u1XVZPvoB6qevuYN0kbKUnCFJsuvwBGsCZV8jfPAmwY,1524
|
|
139
141
|
phoenix/server/api/dataloaders/dataset_examples_and_versions_by_experiment_run.py,sha256=uyq5-WkY_67pzRxX4eCpECjzykKNM6pCC3rjpboXbb8,1771
|
|
142
|
+
phoenix/server/api/dataloaders/dataset_labels.py,sha256=kCpKksIS1yXhkmkasGcVioNAtQ4rcI0o7IesNKXk-lw,1391
|
|
140
143
|
phoenix/server/api/dataloaders/document_evaluation_summaries.py,sha256=9fdROnzp-mymggHwNvpRkCk93LUFxxLy55-j3HP_2HY,5565
|
|
141
144
|
phoenix/server/api/dataloaders/document_evaluations.py,sha256=1bpBDydd-9YvhgkNoE5w-FGrjtnjUztcnjZTdMAazws,1072
|
|
142
145
|
phoenix/server/api/dataloaders/document_retrieval_metrics.py,sha256=37EcAW7oYQuWYHMDHb0wcqbWj9lhSskvzDO7NJbT5Js,4136
|
|
@@ -196,7 +199,7 @@ phoenix/server/api/helpers/__init__.py,sha256=m2-xaSPqUiSs91k62JaRDjFNfl-1byxBfY
|
|
|
196
199
|
phoenix/server/api/helpers/annotations.py,sha256=9gMXKpMTfWEChoSCnvdWYuyB0hlSnNOp-qUdar9Vono,262
|
|
197
200
|
phoenix/server/api/helpers/dataset_helpers.py,sha256=3bdGBoUzqrtg-sr5p2wpQLOU6dhg_3TKFHNeJj8p0TU,9155
|
|
198
201
|
phoenix/server/api/helpers/experiment_run_filters.py,sha256=DOnVwrmn39eAkk2mwuZP8kIcAnR5jrOgllEwWSjsw94,29893
|
|
199
|
-
phoenix/server/api/helpers/playground_clients.py,sha256=
|
|
202
|
+
phoenix/server/api/helpers/playground_clients.py,sha256=PWoW3hOPMrCMxSZfPBBIrF3-aFcq_XBp-D8YrCsmYvU,74914
|
|
200
203
|
phoenix/server/api/helpers/playground_registry.py,sha256=n0v4-KnvZJxeaEwOla5qBbnOQjSWznKmMhZnh9ziJt0,2584
|
|
201
204
|
phoenix/server/api/helpers/playground_spans.py,sha256=EDZ0NbkfOXAwGJvLqP2ARE5v6OTtKp9R-KU4AsvX_9U,17176
|
|
202
205
|
phoenix/server/api/helpers/playground_users.py,sha256=s02cLyDrg_LsE_sWkzTixNZVWAl6LquL5hJltPuUE_Y,880
|
|
@@ -252,12 +255,13 @@ phoenix/server/api/input_types/TraceAnnotationSort.py,sha256=BzwiUnMh2VsgQYnhDlb
|
|
|
252
255
|
phoenix/server/api/input_types/UpdateAnnotationInput.py,sha256=ZhWmu6eQ2jJ9_e99mN_eIe1yB2VG8k3quy6cTyBqDTo,1227
|
|
253
256
|
phoenix/server/api/input_types/UserRoleInput.py,sha256=xxhFe0ITZOgRVEJbVem_W6F1Ip_H6xDENdQqMMx-kKE,129
|
|
254
257
|
phoenix/server/api/input_types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
255
|
-
phoenix/server/api/mutations/__init__.py,sha256=
|
|
258
|
+
phoenix/server/api/mutations/__init__.py,sha256=83V5Ia8ijsajSLo_gzAuHXo4hgDlUGLIUrerxzKKVn8,2385
|
|
256
259
|
phoenix/server/api/mutations/annotation_config_mutations.py,sha256=i7NsQhYICcQ-I-tnFjGtVAYc8WVmMBacmRaqHWJ25t4,15433
|
|
257
260
|
phoenix/server/api/mutations/api_key_mutations.py,sha256=nfnRjALCaQMi_jIbEPW4G3Dn3tPnmZVU11tpBbBijGA,6242
|
|
258
261
|
phoenix/server/api/mutations/chat_mutations.py,sha256=HoO1V_ZvJ_TRIPCftmwyVrD3AaIsznWczOTZB9euO2Q,25306
|
|
262
|
+
phoenix/server/api/mutations/dataset_label_mutations.py,sha256=nVw2IaycdscAX2CJ1Jk4icRNvu61hWvb1UeN0sgC9Tk,11582
|
|
259
263
|
phoenix/server/api/mutations/dataset_mutations.py,sha256=D7LULYXnQeb7kep_b5SmSEGYxZXVt5U9gvOvwd0aI2E,28033
|
|
260
|
-
phoenix/server/api/mutations/dataset_split_mutations.py,sha256=
|
|
264
|
+
phoenix/server/api/mutations/dataset_split_mutations.py,sha256=RgFy2i02az-ckGkQ89VljTVnGXsUmr5Hvv7j7QRebQI,17324
|
|
261
265
|
phoenix/server/api/mutations/experiment_mutations.py,sha256=p3CoLAa8nFPa3D759Y2A7De_PVJNGOL98mA3HoZBrRQ,3188
|
|
262
266
|
phoenix/server/api/mutations/export_events_mutations.py,sha256=xoDnVWC7eA_8wNQP0-oyiHojyUZ0EhVVSrsAnztetC0,3993
|
|
263
267
|
phoenix/server/api/mutations/model_mutations.py,sha256=eh-QIKww3EDrDewS3NTWTqnE2bwLJJ5WgRFvSPRksZg,7199
|
|
@@ -275,9 +279,9 @@ phoenix/server/api/openapi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
|
|
|
275
279
|
phoenix/server/api/openapi/main.py,sha256=yKdzJYI4cxy_1mFcK4_7YObIcuRviBIfwNjB23RG14k,461
|
|
276
280
|
phoenix/server/api/openapi/schema.py,sha256=WGmHWSIyJhtc5EIh_M3vlXU-EgHkFuTlyVofgS0kj1I,529
|
|
277
281
|
phoenix/server/api/routers/__init__.py,sha256=YIzHsIFOOXuCRbDkMUHx-McrANFJK5UfUn6a4BNIzmo,277
|
|
278
|
-
phoenix/server/api/routers/auth.py,sha256=
|
|
282
|
+
phoenix/server/api/routers/auth.py,sha256=hPkMmLgy9oV-V8WSlwemIbb3jiwXzzLZDW10GAfkY-o,11928
|
|
279
283
|
phoenix/server/api/routers/embeddings.py,sha256=BpZGJee0pdL0W5Rp1L0b30dEtZTgJeVqXky8LgZ0ZXw,898
|
|
280
|
-
phoenix/server/api/routers/oauth2.py,sha256=
|
|
284
|
+
phoenix/server/api/routers/oauth2.py,sha256=AwfWqTQyHpXdJ3BUTkIvsgUiALAlFbERPs1pyJOM3Lo,25313
|
|
281
285
|
phoenix/server/api/routers/utils.py,sha256=M41BoH-fl37izhRuN2aX7lWm7jOC20A_3uClv9TVUUY,583
|
|
282
286
|
phoenix/server/api/routers/v1/__init__.py,sha256=Ga6SjcX6X6Aw5VTvbiPOIXfzQS8lbVERY0BHdx5Dlks,2881
|
|
283
287
|
phoenix/server/api/routers/v1/annotation_configs.py,sha256=xp5lJmKYlRsINCUrRD9-lTAElw2v4hdFndS5BWrxICA,16048
|
|
@@ -310,10 +314,11 @@ phoenix/server/api/types/CostBreakdown.py,sha256=yw9dlb0blGIB_dWNP8yEvDHJztHjpiV
|
|
|
310
314
|
phoenix/server/api/types/CreateDatasetPayload.py,sha256=R-6zCmuD0f76RU9Giu78xwTHlASQs6Aq8yzvX1Kxc3g,140
|
|
311
315
|
phoenix/server/api/types/CronExpression.py,sha256=R7oxuSSX_eTUHQWaoaSueQqWDmkkHr5dBKRN6q-6ROk,331
|
|
312
316
|
phoenix/server/api/types/DataQualityMetric.py,sha256=Aieg3bHeBFaAf4mqeRcH1zT04sXAtQD8ATSHJt7FaBQ,1538
|
|
313
|
-
phoenix/server/api/types/Dataset.py,sha256=
|
|
314
|
-
phoenix/server/api/types/DatasetExample.py,sha256
|
|
317
|
+
phoenix/server/api/types/Dataset.py,sha256=zDmvMl3J2pIX4VwjX-PAek5jC1_jk7ME-p0wHXW3Des,12991
|
|
318
|
+
phoenix/server/api/types/DatasetExample.py,sha256=9xEdDVj8rNK3LOs98Ekm67sz56yfpjj9Vn9CXIndW74,5650
|
|
315
319
|
phoenix/server/api/types/DatasetExampleRevision.py,sha256=c-jWR6dTguEZTm54IMlFr0Ic84I3nefyDnZb7nF5hnI,874
|
|
316
320
|
phoenix/server/api/types/DatasetExperimentAnnotationSummary.py,sha256=EVXz6zfbdYsU5SZ6FUrAA_VQqQCnBE_mbKgmAmFoDLI,195
|
|
321
|
+
phoenix/server/api/types/DatasetLabel.py,sha256=nIiggJQEBygvLWIWUL-mUKoG_Et9iLHvbvU7-WNnWPU,510
|
|
317
322
|
phoenix/server/api/types/DatasetSplit.py,sha256=FMdst-6WV4kGBzGr_GefX5vCYuKo-kFJWFJU5MNPIpk,862
|
|
318
323
|
phoenix/server/api/types/DatasetValues.py,sha256=7VbCOLlzOXpZN80-zYF2UGuafRcPsZF-8WQNc0YsKFc,1119
|
|
319
324
|
phoenix/server/api/types/DatasetVersion.py,sha256=NnDriqQUE20N_Jhyu3-IxHWJQE9wmdHEJIQAKyTVJpo,302
|
|
@@ -356,7 +361,7 @@ phoenix/server/api/types/Project.py,sha256=D6S4hgcSXD1V2brV1x-NImWfoTcU4u9BceIBX
|
|
|
356
361
|
phoenix/server/api/types/ProjectSession.py,sha256=YvRqj9qXXY4FvYN9Nhie9qdHcNCEPz7SoBdflrbLGRk,9795
|
|
357
362
|
phoenix/server/api/types/ProjectSessionAnnotation.py,sha256=yerdFlW_dhCxDeoyE-75n6I_k4uUWn0m3S4XSdplS6E,2102
|
|
358
363
|
phoenix/server/api/types/ProjectTraceRetentionPolicy.py,sha256=tYy2kgalPDyuaYZr0VUHjH0YpXaiF_QOzg5yfaV_c7c,3782
|
|
359
|
-
phoenix/server/api/types/Prompt.py,sha256=
|
|
364
|
+
phoenix/server/api/types/Prompt.py,sha256=UlZNllvXtH5J-zLS_OpvKusbhcN_4CKTIv-XN5rU0is,6266
|
|
360
365
|
phoenix/server/api/types/PromptLabel.py,sha256=kREZ219VB1xJkvOI8W6aeXBJkQx5bOccNa7g7fbRTt0,570
|
|
361
366
|
phoenix/server/api/types/PromptResponse.py,sha256=Q8HKtpp8GpUOcxPCzZpkkokidDd6u0aZOv_SuPZZd5Q,630
|
|
362
367
|
phoenix/server/api/types/PromptVersion.py,sha256=hLPwOwj1h0gH4fqpLS-xwcC2TQYLCmvaCiEkyXvTS1g,5494
|
|
@@ -394,7 +399,7 @@ phoenix/server/cost_tracking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
|
|
|
394
399
|
phoenix/server/cost_tracking/cost_details_calculator.py,sha256=Tt0YcuLhgPuXKWJemWVmYQfG0xQUvH4VziIj6KcDnoA,8945
|
|
395
400
|
phoenix/server/cost_tracking/cost_model_lookup.py,sha256=jhtVdnQBzrTUHeOGPWgOebk-Io5hpJ1vAgWOu8ojeJ4,6801
|
|
396
401
|
phoenix/server/cost_tracking/helpers.py,sha256=Pk6ECjnYreTxrldtRwxnwFcxIPVsvDq_yAwDA_spkOc,2122
|
|
397
|
-
phoenix/server/cost_tracking/model_cost_manifest.json,sha256=
|
|
402
|
+
phoenix/server/cost_tracking/model_cost_manifest.json,sha256=qPDorKVjL9O9OtBTcHUW38yq6WfGSw2lYjnDTAlbb6s,68581
|
|
398
403
|
phoenix/server/cost_tracking/regex_specificity.py,sha256=9kqWuQ68C-hlwW25hr7BhFlRt5y2Nnpy0Ax3n9UN6Xk,11622
|
|
399
404
|
phoenix/server/cost_tracking/token_cost_calculator.py,sha256=2JEZnvusx2-xbhp8krp9EarjWuyGH2KO4e-ZwJX-K0s,1598
|
|
400
405
|
phoenix/server/daemons/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -423,24 +428,24 @@ phoenix/server/static/apple-touch-icon-76x76.png,sha256=CT_xT12I0u2i0WU8JzBZBuOQ
|
|
|
423
428
|
phoenix/server/static/apple-touch-icon.png,sha256=fOfpjqGpWYbJ0eAurKsyoZP1EAs6ZVooBJ_SGk2ZkDs,3801
|
|
424
429
|
phoenix/server/static/favicon.ico,sha256=bY0vvCKRftemZfPShwZtE93DiiQdaYaozkPGwNFr6H8,34494
|
|
425
430
|
phoenix/server/static/modernizr.js,sha256=mvK-XtkNqjOral-QvzoqsyOMECXIMu5BQwSVN_wcU9c,2564
|
|
426
|
-
phoenix/server/static/.vite/manifest.json,sha256=
|
|
427
|
-
phoenix/server/static/assets/components-
|
|
428
|
-
phoenix/server/static/assets/index-
|
|
429
|
-
phoenix/server/static/assets/pages-
|
|
431
|
+
phoenix/server/static/.vite/manifest.json,sha256=Pu8-OxoLf8RlAl-i0K8pAuKfVy6h7ZuOBJR9psD5frE,2328
|
|
432
|
+
phoenix/server/static/assets/components-Bs8eJEpU.js,sha256=ml92PuSdVdsbHS8q6c4sHSWJ9nBSjo1l1qvjzM6EVF4,723590
|
|
433
|
+
phoenix/server/static/assets/index-C6WEu5UP.js,sha256=mY6KSmhD7Okipz8iEqbzZpyFQG_fVUIpNfKiT8ND8OM,63680
|
|
434
|
+
phoenix/server/static/assets/pages-D-n2pkoG.js,sha256=rtkn8DSkEKuvyFlbSF6dUn_uGCVyUBZZh--yByZSEmI,1341008
|
|
430
435
|
phoenix/server/static/assets/vendor-BGzfc4EU.css,sha256=Nx5Lmx-bqYR7nsO_O4kEBcrJ8cwknWjZ6seHN3_s4UQ,3171
|
|
431
|
-
phoenix/server/static/assets/vendor-
|
|
432
|
-
phoenix/server/static/assets/vendor-arizeai-
|
|
433
|
-
phoenix/server/static/assets/vendor-codemirror-
|
|
434
|
-
phoenix/server/static/assets/vendor-recharts
|
|
435
|
-
phoenix/server/static/assets/vendor-shiki-
|
|
436
|
+
phoenix/server/static/assets/vendor-D2eEI-6h.js,sha256=DcZ_ov-x3PP13qfDh2X0hhQTuuSnxoMnYVBW98YBo0Q,2709850
|
|
437
|
+
phoenix/server/static/assets/vendor-arizeai-kfOei7nf.js,sha256=AlUQvzFvgUY2d5qzujvi4N7VXbhmpcnrKAYk9Ilpzt4,107788
|
|
438
|
+
phoenix/server/static/assets/vendor-codemirror-1bq_t1Ec.js,sha256=cjHHniUz2eOaXgg3iPcyd3d8hRz_2z7tW_UTPiMyGiA,413211
|
|
439
|
+
phoenix/server/static/assets/vendor-recharts-DQ4xfrf4.js,sha256=tTNG6AAxOGuPbEnjQkr3EzR7COVhDnN37QJFV6BNQg8,231652
|
|
440
|
+
phoenix/server/static/assets/vendor-shiki-GGmcIQxA.js,sha256=U357g2RSPGwucCoww2yscGQcLyWIcP3EQxlkMgR9CJg,305160
|
|
436
441
|
phoenix/server/static/assets/vendor-three-BLWp5bic.js,sha256=vfSCVXS20jA0Ceo_O0mDxYBcROinWMdPE6RR4JXmtec,620972
|
|
437
442
|
phoenix/server/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
438
|
-
phoenix/server/templates/index.html,sha256=
|
|
443
|
+
phoenix/server/templates/index.html,sha256=_iKIyXEDDr5cTTnrUCjCd617U6Alc1k-IXtdKSt8g14,7215
|
|
439
444
|
phoenix/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
440
445
|
phoenix/session/client.py,sha256=bFw3RzSdCCQBDNDbgxgaao4kCsP9_YWXG1VQfJvNveA,38532
|
|
441
446
|
phoenix/session/data_extractor.py,sha256=y_21QYW5emZ-SFYN9GtpUwDBMPCWtbRk3ZGxfR3k8K0,3178
|
|
442
447
|
phoenix/session/evaluation.py,sha256=l0IMuAmqIqgr_Ye15VCr4Z-_e4g9OCT1XYwsdT7DuGQ,5528
|
|
443
|
-
phoenix/session/session.py,sha256=
|
|
448
|
+
phoenix/session/session.py,sha256=SUQcBBA5H_pM1DXoKT6zfK_Fhlc9XCja-WwSfBUXnSI,29199
|
|
444
449
|
phoenix/trace/__init__.py,sha256=ujk_uYjM8gmm-YqnyXxF-kekfwid0bcaPMTtNNcaw6U,407
|
|
445
450
|
phoenix/trace/attributes.py,sha256=hyEKYZWPCP4NRmW7VmiC2voa3TH7FYKUBR9DYiVfXlw,12627
|
|
446
451
|
phoenix/trace/errors.py,sha256=wB1z8qdPckngdfU-TORToekvg3344oNFAA83_hC2yFY,180
|
|
@@ -472,9 +477,9 @@ phoenix/utilities/project.py,sha256=auVpARXkDb-JgeX5f2aStyFIkeKvGwN9l7qrFeJMVxI,
|
|
|
472
477
|
phoenix/utilities/re.py,sha256=6YyUWIkv0zc2SigsxfOWIHzdpjKA_TZo2iqKq7zJKvw,2081
|
|
473
478
|
phoenix/utilities/span_store.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
474
479
|
phoenix/utilities/template_formatters.py,sha256=gh9PJD6WEGw7TEYXfSst1UR4pWWwmjxMLrDVQ_CkpkQ,2779
|
|
475
|
-
arize_phoenix-12.
|
|
476
|
-
arize_phoenix-12.
|
|
477
|
-
arize_phoenix-12.
|
|
478
|
-
arize_phoenix-12.
|
|
479
|
-
arize_phoenix-12.
|
|
480
|
-
arize_phoenix-12.
|
|
480
|
+
arize_phoenix-12.3.0.dist-info/METADATA,sha256=NBdFfBR6OscGNJ7RHEM0IhHe2mnvNAie9rm_UlWvHmA,34045
|
|
481
|
+
arize_phoenix-12.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
482
|
+
arize_phoenix-12.3.0.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
|
|
483
|
+
arize_phoenix-12.3.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
|
|
484
|
+
arize_phoenix-12.3.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
|
|
485
|
+
arize_phoenix-12.3.0.dist-info/RECORD,,
|
|
@@ -181,7 +181,7 @@ def _key(p: Received[Precursors.DocumentAnnotation]) -> _Key:
|
|
|
181
181
|
|
|
182
182
|
|
|
183
183
|
def _unique_by(p: Received[Insertables.DocumentAnnotation]) -> _UniqueBy:
|
|
184
|
-
return p.item.obj.name, p.item.span_rowid, p.item.document_position, p.item.identifier
|
|
184
|
+
return p.item.obj.name, p.item.span_rowid, p.item.document_position, p.item.obj.identifier
|
|
185
185
|
|
|
186
186
|
|
|
187
187
|
def _time(p: Received[Any]) -> datetime:
|
|
@@ -169,7 +169,7 @@ def _key(p: Received[Precursors.SessionAnnotation]) -> _Key:
|
|
|
169
169
|
|
|
170
170
|
|
|
171
171
|
def _unique_by(p: Received[Insertables.SessionAnnotation]) -> _UniqueBy:
|
|
172
|
-
return p.item.obj.name, p.item.project_session_rowid, p.item.identifier
|
|
172
|
+
return p.item.obj.name, p.item.project_session_rowid, p.item.obj.identifier
|
|
173
173
|
|
|
174
174
|
|
|
175
175
|
def _time(p: Received[Any]) -> datetime:
|
|
@@ -167,7 +167,7 @@ def _key(p: Received[Precursors.SpanAnnotation]) -> _Key:
|
|
|
167
167
|
|
|
168
168
|
|
|
169
169
|
def _unique_by(p: Received[Insertables.SpanAnnotation]) -> _UniqueBy:
|
|
170
|
-
return p.item.obj.name, p.item.span_rowid, p.item.identifier
|
|
170
|
+
return p.item.obj.name, p.item.span_rowid, p.item.obj.identifier
|
|
171
171
|
|
|
172
172
|
|
|
173
173
|
def _time(p: Received[Any]) -> datetime:
|
|
@@ -166,7 +166,7 @@ def _key(p: Received[Precursors.TraceAnnotation]) -> _Key:
|
|
|
166
166
|
|
|
167
167
|
|
|
168
168
|
def _unique_by(p: Received[Insertables.TraceAnnotation]) -> _UniqueBy:
|
|
169
|
-
return p.item.obj.name, p.item.trace_rowid, p.item.identifier
|
|
169
|
+
return p.item.obj.name, p.item.trace_rowid, p.item.obj.identifier
|
|
170
170
|
|
|
171
171
|
|
|
172
172
|
def _time(p: Received[Any]) -> datetime:
|
phoenix/db/insertion/types.py
CHANGED
|
@@ -248,7 +248,6 @@ class Insertables(ABC):
|
|
|
248
248
|
class SpanAnnotation(Precursors.SpanAnnotation):
|
|
249
249
|
updated_at: datetime
|
|
250
250
|
span_rowid: int
|
|
251
|
-
identifier: str = ""
|
|
252
251
|
|
|
253
252
|
@property
|
|
254
253
|
def row(self) -> models.SpanAnnotation:
|
|
@@ -261,7 +260,6 @@ class Insertables(ABC):
|
|
|
261
260
|
class TraceAnnotation(Precursors.TraceAnnotation):
|
|
262
261
|
updated_at: datetime
|
|
263
262
|
trace_rowid: int
|
|
264
|
-
identifier: str = ""
|
|
265
263
|
|
|
266
264
|
@property
|
|
267
265
|
def row(self) -> models.TraceAnnotation:
|
|
@@ -274,7 +272,6 @@ class Insertables(ABC):
|
|
|
274
272
|
class DocumentAnnotation(Precursors.DocumentAnnotation):
|
|
275
273
|
updated_at: datetime
|
|
276
274
|
span_rowid: int
|
|
277
|
-
identifier: str = ""
|
|
278
275
|
|
|
279
276
|
@property
|
|
280
277
|
def row(self) -> models.DocumentAnnotation:
|
|
@@ -287,7 +284,6 @@ class Insertables(ABC):
|
|
|
287
284
|
class SessionAnnotation(Precursors.SessionAnnotation):
|
|
288
285
|
updated_at: datetime
|
|
289
286
|
project_session_rowid: int
|
|
290
|
-
identifier: str = ""
|
|
291
287
|
|
|
292
288
|
@property
|
|
293
289
|
def row(self) -> models.ProjectSessionAnnotation:
|
phoenix/db/models.py
CHANGED
|
@@ -443,6 +443,27 @@ class _RegexStr(TypeDecorator[re.Pattern[str]]):
|
|
|
443
443
|
return re.compile(value)
|
|
444
444
|
|
|
445
445
|
|
|
446
|
+
_HEX_COLOR_PATTERN = re.compile(r"^#([0-9a-f]{6})$")
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
class _HexColor(TypeDecorator[str]):
|
|
450
|
+
# See https://docs.sqlalchemy.org/en/20/core/custom_types.html
|
|
451
|
+
cache_ok = True
|
|
452
|
+
impl = String
|
|
453
|
+
|
|
454
|
+
def process_bind_param(self, value: Optional[str], _: Dialect) -> Optional[str]:
|
|
455
|
+
if value is None:
|
|
456
|
+
return None
|
|
457
|
+
if not _HEX_COLOR_PATTERN.match(value):
|
|
458
|
+
raise ValueError(f"Expected a hex color, got {value}")
|
|
459
|
+
return value
|
|
460
|
+
|
|
461
|
+
def process_result_value(self, value: Optional[str], _: Dialect) -> Optional[str]:
|
|
462
|
+
if value is None:
|
|
463
|
+
return None
|
|
464
|
+
return value
|
|
465
|
+
|
|
466
|
+
|
|
446
467
|
class ExperimentRunOutput(TypedDict, total=False):
|
|
447
468
|
task_output: Any
|
|
448
469
|
|
|
@@ -1125,7 +1146,7 @@ class DatasetLabel(HasId):
|
|
|
1125
1146
|
__tablename__ = "dataset_labels"
|
|
1126
1147
|
name: Mapped[str] = mapped_column(unique=True)
|
|
1127
1148
|
description: Mapped[Optional[str]]
|
|
1128
|
-
color: Mapped[str] = mapped_column(
|
|
1149
|
+
color: Mapped[str] = mapped_column(_HexColor, nullable=False)
|
|
1129
1150
|
datasets_dataset_labels: Mapped[list["DatasetsDatasetLabel"]] = relationship(
|
|
1130
1151
|
"DatasetsDatasetLabel", back_populates="dataset_label"
|
|
1131
1152
|
)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# ruff: noqa: E501
|
|
2
|
+
"""
|
|
3
|
+
Authentication error and success message codes.
|
|
4
|
+
|
|
5
|
+
These codes are used in authentication flows to safely communicate status
|
|
6
|
+
to users via query parameters. Using codes instead of raw messages prevents
|
|
7
|
+
social engineering and phishing attacks.
|
|
8
|
+
|
|
9
|
+
The messages are passed to the frontend via window.Config to ensure a single
|
|
10
|
+
source of truth between backend and frontend.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from types import MappingProxyType
|
|
14
|
+
from typing import Literal, Mapping, get_args
|
|
15
|
+
|
|
16
|
+
# Error code type - used for type hints in redirect functions
|
|
17
|
+
AuthErrorCode = Literal[
|
|
18
|
+
"unknown_idp",
|
|
19
|
+
"auth_failed",
|
|
20
|
+
"invalid_state",
|
|
21
|
+
"unsafe_return_url",
|
|
22
|
+
"oauth_error",
|
|
23
|
+
"no_oidc_support",
|
|
24
|
+
"missing_email_scope",
|
|
25
|
+
"email_in_use",
|
|
26
|
+
"sign_in_not_allowed",
|
|
27
|
+
]
|
|
28
|
+
|
|
29
|
+
# Error messages - passed to frontend via window.Config.authErrorMessages
|
|
30
|
+
# Backend generates these codes when redirecting users after OAuth errors
|
|
31
|
+
AUTH_ERROR_MESSAGES: Mapping[AuthErrorCode, str] = MappingProxyType(
|
|
32
|
+
{
|
|
33
|
+
"unknown_idp": "Unknown identity provider.",
|
|
34
|
+
"auth_failed": "Authentication failed. Please contact your administrator.",
|
|
35
|
+
"invalid_state": "Invalid authentication state. Please try again.",
|
|
36
|
+
"unsafe_return_url": "Invalid return URL. Please try again.",
|
|
37
|
+
"oauth_error": "Authentication failed. Please try again.",
|
|
38
|
+
"no_oidc_support": "Your identity provider does not appear to support OpenID Connect. Please contact your administrator.",
|
|
39
|
+
"missing_email_scope": "Please ensure your identity provider is configured to use the 'email' scope.",
|
|
40
|
+
"email_in_use": "An account with this email already exists.",
|
|
41
|
+
"sign_in_not_allowed": "Sign in is not allowed. Please contact your administrator.",
|
|
42
|
+
}
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
# Runtime assertion to ensure AUTH_ERROR_MESSAGES keys match AuthErrorCode Literal values
|
|
46
|
+
assert set(AUTH_ERROR_MESSAGES.keys()) == set(get_args(AuthErrorCode))
|
phoenix/server/api/context.py
CHANGED
|
@@ -76,6 +76,7 @@ from phoenix.server.api.dataloaders import (
|
|
|
76
76
|
UserRolesDataLoader,
|
|
77
77
|
UsersDataLoader,
|
|
78
78
|
)
|
|
79
|
+
from phoenix.server.api.dataloaders.dataset_labels import DatasetLabelsDataLoader
|
|
79
80
|
from phoenix.server.bearer_auth import PhoenixUser
|
|
80
81
|
from phoenix.server.daemons.span_cost_calculator import SpanCostCalculator
|
|
81
82
|
from phoenix.server.dml_event import DmlEvent
|
|
@@ -99,6 +100,7 @@ class DataLoaders:
|
|
|
99
100
|
average_experiment_run_latency: AverageExperimentRunLatencyDataLoader
|
|
100
101
|
dataset_example_revisions: DatasetExampleRevisionsDataLoader
|
|
101
102
|
dataset_example_spans: DatasetExampleSpansDataLoader
|
|
103
|
+
dataset_labels: DatasetLabelsDataLoader
|
|
102
104
|
dataset_examples_and_versions_by_experiment_run: (
|
|
103
105
|
DatasetExamplesAndVersionsByExperimentRunDataLoader
|
|
104
106
|
)
|
|
@@ -16,6 +16,7 @@ from .dataset_example_splits import DatasetExampleSplitsDataLoader
|
|
|
16
16
|
from .dataset_examples_and_versions_by_experiment_run import (
|
|
17
17
|
DatasetExamplesAndVersionsByExperimentRunDataLoader,
|
|
18
18
|
)
|
|
19
|
+
from .dataset_labels import DatasetLabelsDataLoader
|
|
19
20
|
from .document_evaluation_summaries import (
|
|
20
21
|
DocumentEvaluationSummaryCache,
|
|
21
22
|
DocumentEvaluationSummaryDataLoader,
|
|
@@ -87,6 +88,7 @@ __all__ = [
|
|
|
87
88
|
"DatasetExampleSpansDataLoader",
|
|
88
89
|
"DatasetExamplesAndVersionsByExperimentRunDataLoader",
|
|
89
90
|
"DatasetExampleSplitsDataLoader",
|
|
91
|
+
"DatasetLabelsDataLoader",
|
|
90
92
|
"DocumentEvaluationSummaryDataLoader",
|
|
91
93
|
"DocumentEvaluationsDataLoader",
|
|
92
94
|
"DocumentRetrievalMetricsDataLoader",
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
from sqlalchemy import select
|
|
2
|
+
from strawberry.dataloader import DataLoader
|
|
3
|
+
from typing_extensions import TypeAlias
|
|
4
|
+
|
|
5
|
+
from phoenix.db import models
|
|
6
|
+
from phoenix.server.types import DbSessionFactory
|
|
7
|
+
|
|
8
|
+
DatasetID: TypeAlias = int
|
|
9
|
+
Key: TypeAlias = DatasetID
|
|
10
|
+
Result: TypeAlias = list[models.DatasetLabel]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class DatasetLabelsDataLoader(DataLoader[Key, Result]):
|
|
14
|
+
def __init__(self, db: DbSessionFactory) -> None:
|
|
15
|
+
super().__init__(load_fn=self._load_fn)
|
|
16
|
+
self._db = db
|
|
17
|
+
|
|
18
|
+
async def _load_fn(self, keys: list[Key]) -> list[Result]:
|
|
19
|
+
dataset_ids = keys
|
|
20
|
+
async with self._db() as session:
|
|
21
|
+
labels: dict[Key, Result] = {}
|
|
22
|
+
for dataset_id, label in await session.execute(
|
|
23
|
+
select(models.DatasetsDatasetLabel.dataset_id, models.DatasetLabel)
|
|
24
|
+
.select_from(models.DatasetLabel)
|
|
25
|
+
.join(
|
|
26
|
+
models.DatasetsDatasetLabel,
|
|
27
|
+
models.DatasetLabel.id == models.DatasetsDatasetLabel.dataset_label_id,
|
|
28
|
+
)
|
|
29
|
+
.where(models.DatasetsDatasetLabel.dataset_id.in_(dataset_ids))
|
|
30
|
+
):
|
|
31
|
+
if dataset_id not in labels:
|
|
32
|
+
labels[dataset_id] = []
|
|
33
|
+
labels[dataset_id].append(label)
|
|
34
|
+
return [
|
|
35
|
+
sorted(labels.get(dataset_id, []), key=lambda label: label.name) for dataset_id in keys
|
|
36
|
+
]
|
|
@@ -1677,6 +1677,7 @@ class AnthropicStreamingClient(PlaygroundStreamingClient):
|
|
|
1677
1677
|
@register_llm_client(
|
|
1678
1678
|
provider_key=GenerativeProviderKey.ANTHROPIC,
|
|
1679
1679
|
model_names=[
|
|
1680
|
+
"claude-sonnet-4-5",
|
|
1680
1681
|
"claude-sonnet-4-0",
|
|
1681
1682
|
"claude-sonnet-4-20250514",
|
|
1682
1683
|
"claude-opus-4-1",
|
|
@@ -5,6 +5,7 @@ from phoenix.server.api.mutations.api_key_mutations import ApiKeyMutationMixin
|
|
|
5
5
|
from phoenix.server.api.mutations.chat_mutations import (
|
|
6
6
|
ChatCompletionMutationMixin,
|
|
7
7
|
)
|
|
8
|
+
from phoenix.server.api.mutations.dataset_label_mutations import DatasetLabelMutationMixin
|
|
8
9
|
from phoenix.server.api.mutations.dataset_mutations import DatasetMutationMixin
|
|
9
10
|
from phoenix.server.api.mutations.dataset_split_mutations import DatasetSplitMutationMixin
|
|
10
11
|
from phoenix.server.api.mutations.experiment_mutations import ExperimentMutationMixin
|
|
@@ -31,6 +32,7 @@ class Mutation(
|
|
|
31
32
|
AnnotationConfigMutationMixin,
|
|
32
33
|
ApiKeyMutationMixin,
|
|
33
34
|
ChatCompletionMutationMixin,
|
|
35
|
+
DatasetLabelMutationMixin,
|
|
34
36
|
DatasetMutationMixin,
|
|
35
37
|
DatasetSplitMutationMixin,
|
|
36
38
|
ExperimentMutationMixin,
|