arize-phoenix 12.0.0__py3-none-any.whl → 12.2.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.

Files changed (39) hide show
  1. {arize_phoenix-12.0.0.dist-info → arize_phoenix-12.2.0.dist-info}/METADATA +1 -1
  2. {arize_phoenix-12.0.0.dist-info → arize_phoenix-12.2.0.dist-info}/RECORD +39 -35
  3. phoenix/db/insertion/document_annotation.py +1 -1
  4. phoenix/db/insertion/session_annotation.py +1 -1
  5. phoenix/db/insertion/span_annotation.py +1 -1
  6. phoenix/db/insertion/trace_annotation.py +1 -1
  7. phoenix/db/insertion/types.py +0 -4
  8. phoenix/db/models.py +22 -1
  9. phoenix/server/api/context.py +2 -0
  10. phoenix/server/api/dataloaders/__init__.py +2 -0
  11. phoenix/server/api/dataloaders/dataset_labels.py +36 -0
  12. phoenix/server/api/helpers/playground_clients.py +1 -0
  13. phoenix/server/api/mutations/__init__.py +2 -0
  14. phoenix/server/api/mutations/dataset_label_mutations.py +291 -0
  15. phoenix/server/api/mutations/dataset_split_mutations.py +38 -2
  16. phoenix/server/api/queries.py +21 -0
  17. phoenix/server/api/routers/auth.py +5 -5
  18. phoenix/server/api/routers/oauth2.py +5 -23
  19. phoenix/server/api/types/Dataset.py +8 -0
  20. phoenix/server/api/types/DatasetExample.py +7 -0
  21. phoenix/server/api/types/DatasetLabel.py +23 -0
  22. phoenix/server/api/types/Prompt.py +18 -1
  23. phoenix/server/app.py +7 -12
  24. phoenix/server/static/.vite/manifest.json +39 -39
  25. phoenix/server/static/assets/{components-Dl9SUw1U.js → components-BG6v0EM8.js} +665 -389
  26. phoenix/server/static/assets/{index-CqQS0dTo.js → index-CSVcULw1.js} +13 -13
  27. phoenix/server/static/assets/{pages-DKSjVA_E.js → pages-DgaM7kpM.js} +1135 -1182
  28. phoenix/server/static/assets/{vendor-CtbHQYl8.js → vendor-BqTEkGQU.js} +183 -183
  29. phoenix/server/static/assets/{vendor-arizeai-D-lWOwIS.js → vendor-arizeai-DlOj0PQQ.js} +15 -24
  30. phoenix/server/static/assets/{vendor-codemirror-BRBpy3_z.js → vendor-codemirror-B2PHH5yZ.js} +3 -3
  31. phoenix/server/static/assets/{vendor-recharts--KdSwB3m.js → vendor-recharts-CKsi4IjN.js} +1 -1
  32. phoenix/server/static/assets/{vendor-shiki-CvRzZnIo.js → vendor-shiki-DN26BkKE.js} +1 -1
  33. phoenix/server/utils.py +74 -0
  34. phoenix/session/session.py +25 -5
  35. phoenix/version.py +1 -1
  36. {arize_phoenix-12.0.0.dist-info → arize_phoenix-12.2.0.dist-info}/WHEEL +0 -0
  37. {arize_phoenix-12.0.0.dist-info → arize_phoenix-12.2.0.dist-info}/entry_points.txt +0 -0
  38. {arize_phoenix-12.0.0.dist-info → arize_phoenix-12.2.0.dist-info}/licenses/IP_NOTICE +0 -0
  39. {arize_phoenix-12.0.0.dist-info → arize_phoenix-12.2.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arize-phoenix
3
- Version: 12.0.0
3
+ Version: 12.2.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
@@ -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=Gy8VK6zBfgQMYkQowFCRx7XbG69zqutC1k6zgQIZ1tU,23
9
+ phoenix/version.py,sha256=p9gY3XMRcwNNqpNvGH72AMcUYju-jWhtfef9jZuN95Q,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=lw9xLgxx9YJPhg9n1KMxQm9Ws7f4uNN9gXN9RCKozWo,70636
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=Lo6pPEUNNBYFjN_PPKqX9aZdchyIOgX3wPZe7vPVwHA,6540
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=ffnW2CnGJKOKvFQQKUo4ZuBSDjQiDha-u6A6Gmw58Tg,6114
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=WA9538nPNIgRucRkd2S1zCC2TUMlJPvgMm1cCnH50Y4,5724
36
- phoenix/db/insertion/trace_annotation.py,sha256=UKmAsSRd1mAwdGWu-i2aEGC3Yu16tqfbpzqMGtJnkVU,5764
37
- phoenix/db/insertion/types.py,sha256=0BKgpFfSHeiOjl5ulffV3bkbMcZygo2yzFKiTX4FONU,9646
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=-Q7wHUj1ga88A2O34uO-Q1Tjar5ZRggzM2hBby4wMiY,50555
105
+ phoenix/server/app.py,sha256=bN92VbiRRaay3cwBn6U60CCQFkz5JycBD6mrV8qjPp8,50490
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
@@ -118,17 +118,18 @@ 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/context.py,sha256=-H8pBYmd-gNEhagqgFLWxp4lN8TNKTNJrPLXgxQQMWs,10324
125
+ phoenix/server/api/context.py,sha256=rdjGb0Ce-XBFVF5lj-lA8VoyKmrrPpLdU_BKT0qhFyQ,10450
125
126
  phoenix/server/api/exceptions.py,sha256=9gB4nBRNX6k4_fsQZ12yxw6Tw53h_915l06DYK-qkPQ,1442
126
127
  phoenix/server/api/interceptor.py,sha256=ykDnoC_apUd-llVli3m1CW18kNSIgjz2qZ6m5JmPDu8,1294
127
- phoenix/server/api/queries.py,sha256=fFslR34BlAWNQwx0uDbzSQPsRfH1ribSX--qKeaJ0Rk,66444
128
+ phoenix/server/api/queries.py,sha256=eZ12poXJ08Pla-DIW8v5dS9gWKdIbS-WO0Df-iGbLOg,67341
128
129
  phoenix/server/api/schema.py,sha256=fcs36xQwFF_Qe41_5cWR8wYpDvOrnbcyTeo5WNMbDsA,1702
129
130
  phoenix/server/api/subscriptions.py,sha256=5J5_B6FUZav4UBzWETdcGNjClZa7-T1d7vxxeQCg63s,26167
130
131
  phoenix/server/api/utils.py,sha256=quCBRcusc6PUq9tJq7M8PgwFZp7nXgVAxtbw8feribY,833
131
- phoenix/server/api/dataloaders/__init__.py,sha256=nTdtgdhspQa-emKUKhaBrY1v9O5gefKDMWG6nHwAI7g,8046
132
+ phoenix/server/api/dataloaders/__init__.py,sha256=yDuF2Ci9ab8a-m3b4q-eVLXo9X3CaFX5SGgpZ35BGHk,8129
132
133
  phoenix/server/api/dataloaders/annotation_configs_by_project.py,sha256=_Nfiug9o01JimU3Z0LpZJ0uaMCjchXomyt_dYAxPFRY,1178
133
134
  phoenix/server/api/dataloaders/annotation_summaries.py,sha256=0b23-bucBKyL25RWb2QzCNJjQzrq403qMmHKUVD5W4M,14377
134
135
  phoenix/server/api/dataloaders/average_experiment_repeated_run_group_latency.py,sha256=BSNyrwuNadQ16-2g0nGixrB5LyDqlTLeM2bKikyIagY,1860
@@ -137,6 +138,7 @@ phoenix/server/api/dataloaders/dataset_example_revisions.py,sha256=MqRBkT3AE6b6A
137
138
  phoenix/server/api/dataloaders/dataset_example_spans.py,sha256=z_MFquqAcJ9wat7BBp7MVeJ9BYuu2EZEdaog52iWDno,1390
138
139
  phoenix/server/api/dataloaders/dataset_example_splits.py,sha256=u1XVZPvoB6qevuYN0kbKUnCFJsuvwBGsCZV8jfPAmwY,1524
139
140
  phoenix/server/api/dataloaders/dataset_examples_and_versions_by_experiment_run.py,sha256=uyq5-WkY_67pzRxX4eCpECjzykKNM6pCC3rjpboXbb8,1771
141
+ phoenix/server/api/dataloaders/dataset_labels.py,sha256=kCpKksIS1yXhkmkasGcVioNAtQ4rcI0o7IesNKXk-lw,1391
140
142
  phoenix/server/api/dataloaders/document_evaluation_summaries.py,sha256=9fdROnzp-mymggHwNvpRkCk93LUFxxLy55-j3HP_2HY,5565
141
143
  phoenix/server/api/dataloaders/document_evaluations.py,sha256=1bpBDydd-9YvhgkNoE5w-FGrjtnjUztcnjZTdMAazws,1072
142
144
  phoenix/server/api/dataloaders/document_retrieval_metrics.py,sha256=37EcAW7oYQuWYHMDHb0wcqbWj9lhSskvzDO7NJbT5Js,4136
@@ -196,7 +198,7 @@ phoenix/server/api/helpers/__init__.py,sha256=m2-xaSPqUiSs91k62JaRDjFNfl-1byxBfY
196
198
  phoenix/server/api/helpers/annotations.py,sha256=9gMXKpMTfWEChoSCnvdWYuyB0hlSnNOp-qUdar9Vono,262
197
199
  phoenix/server/api/helpers/dataset_helpers.py,sha256=3bdGBoUzqrtg-sr5p2wpQLOU6dhg_3TKFHNeJj8p0TU,9155
198
200
  phoenix/server/api/helpers/experiment_run_filters.py,sha256=DOnVwrmn39eAkk2mwuZP8kIcAnR5jrOgllEwWSjsw94,29893
199
- phoenix/server/api/helpers/playground_clients.py,sha256=IDjeU02X1gFrHmhV0j6BRNLOhOjRgSmRidF_acaaeg4,74885
201
+ phoenix/server/api/helpers/playground_clients.py,sha256=PWoW3hOPMrCMxSZfPBBIrF3-aFcq_XBp-D8YrCsmYvU,74914
200
202
  phoenix/server/api/helpers/playground_registry.py,sha256=n0v4-KnvZJxeaEwOla5qBbnOQjSWznKmMhZnh9ziJt0,2584
201
203
  phoenix/server/api/helpers/playground_spans.py,sha256=EDZ0NbkfOXAwGJvLqP2ARE5v6OTtKp9R-KU4AsvX_9U,17176
202
204
  phoenix/server/api/helpers/playground_users.py,sha256=s02cLyDrg_LsE_sWkzTixNZVWAl6LquL5hJltPuUE_Y,880
@@ -252,12 +254,13 @@ phoenix/server/api/input_types/TraceAnnotationSort.py,sha256=BzwiUnMh2VsgQYnhDlb
252
254
  phoenix/server/api/input_types/UpdateAnnotationInput.py,sha256=ZhWmu6eQ2jJ9_e99mN_eIe1yB2VG8k3quy6cTyBqDTo,1227
253
255
  phoenix/server/api/input_types/UserRoleInput.py,sha256=xxhFe0ITZOgRVEJbVem_W6F1Ip_H6xDENdQqMMx-kKE,129
254
256
  phoenix/server/api/input_types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
255
- phoenix/server/api/mutations/__init__.py,sha256=3KI0vxDfMnh5fGgGNlaLMbXJmlj4ZZC0ejOmodlrvQM,2263
257
+ phoenix/server/api/mutations/__init__.py,sha256=83V5Ia8ijsajSLo_gzAuHXo4hgDlUGLIUrerxzKKVn8,2385
256
258
  phoenix/server/api/mutations/annotation_config_mutations.py,sha256=i7NsQhYICcQ-I-tnFjGtVAYc8WVmMBacmRaqHWJ25t4,15433
257
259
  phoenix/server/api/mutations/api_key_mutations.py,sha256=nfnRjALCaQMi_jIbEPW4G3Dn3tPnmZVU11tpBbBijGA,6242
258
260
  phoenix/server/api/mutations/chat_mutations.py,sha256=HoO1V_ZvJ_TRIPCftmwyVrD3AaIsznWczOTZB9euO2Q,25306
261
+ phoenix/server/api/mutations/dataset_label_mutations.py,sha256=nVw2IaycdscAX2CJ1Jk4icRNvu61hWvb1UeN0sgC9Tk,11582
259
262
  phoenix/server/api/mutations/dataset_mutations.py,sha256=D7LULYXnQeb7kep_b5SmSEGYxZXVt5U9gvOvwd0aI2E,28033
260
- phoenix/server/api/mutations/dataset_split_mutations.py,sha256=ICyLXUG172f6wY9PB-S-Tdqk1HJ3yLpSE2_b9CdbQqI,15995
263
+ phoenix/server/api/mutations/dataset_split_mutations.py,sha256=RgFy2i02az-ckGkQ89VljTVnGXsUmr5Hvv7j7QRebQI,17324
261
264
  phoenix/server/api/mutations/experiment_mutations.py,sha256=p3CoLAa8nFPa3D759Y2A7De_PVJNGOL98mA3HoZBrRQ,3188
262
265
  phoenix/server/api/mutations/export_events_mutations.py,sha256=xoDnVWC7eA_8wNQP0-oyiHojyUZ0EhVVSrsAnztetC0,3993
263
266
  phoenix/server/api/mutations/model_mutations.py,sha256=eh-QIKww3EDrDewS3NTWTqnE2bwLJJ5WgRFvSPRksZg,7199
@@ -275,9 +278,9 @@ phoenix/server/api/openapi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
275
278
  phoenix/server/api/openapi/main.py,sha256=yKdzJYI4cxy_1mFcK4_7YObIcuRviBIfwNjB23RG14k,461
276
279
  phoenix/server/api/openapi/schema.py,sha256=WGmHWSIyJhtc5EIh_M3vlXU-EgHkFuTlyVofgS0kj1I,529
277
280
  phoenix/server/api/routers/__init__.py,sha256=YIzHsIFOOXuCRbDkMUHx-McrANFJK5UfUn6a4BNIzmo,277
278
- phoenix/server/api/routers/auth.py,sha256=PKGwWdw7O015KmjMY1mIxlvXeU7OrmqIPF5TWTOGmp4,11871
281
+ phoenix/server/api/routers/auth.py,sha256=hPkMmLgy9oV-V8WSlwemIbb3jiwXzzLZDW10GAfkY-o,11928
279
282
  phoenix/server/api/routers/embeddings.py,sha256=BpZGJee0pdL0W5Rp1L0b30dEtZTgJeVqXky8LgZ0ZXw,898
280
- phoenix/server/api/routers/oauth2.py,sha256=rPcKFvfijzBYLjfwbCNzCn0ihn4wGWh4xh6BRqg9Ay4,24524
283
+ phoenix/server/api/routers/oauth2.py,sha256=HFBYyPlUZXsik36uyzcIOFfVZHNda8X5BuB36TU7Tyw,23989
281
284
  phoenix/server/api/routers/utils.py,sha256=M41BoH-fl37izhRuN2aX7lWm7jOC20A_3uClv9TVUUY,583
282
285
  phoenix/server/api/routers/v1/__init__.py,sha256=Ga6SjcX6X6Aw5VTvbiPOIXfzQS8lbVERY0BHdx5Dlks,2881
283
286
  phoenix/server/api/routers/v1/annotation_configs.py,sha256=xp5lJmKYlRsINCUrRD9-lTAElw2v4hdFndS5BWrxICA,16048
@@ -310,10 +313,11 @@ phoenix/server/api/types/CostBreakdown.py,sha256=yw9dlb0blGIB_dWNP8yEvDHJztHjpiV
310
313
  phoenix/server/api/types/CreateDatasetPayload.py,sha256=R-6zCmuD0f76RU9Giu78xwTHlASQs6Aq8yzvX1Kxc3g,140
311
314
  phoenix/server/api/types/CronExpression.py,sha256=R7oxuSSX_eTUHQWaoaSueQqWDmkkHr5dBKRN6q-6ROk,331
312
315
  phoenix/server/api/types/DataQualityMetric.py,sha256=Aieg3bHeBFaAf4mqeRcH1zT04sXAtQD8ATSHJt7FaBQ,1538
313
- phoenix/server/api/types/Dataset.py,sha256=OvCgbqqNF-bj0iaQldIeEfZiMjyXGFsozIIBsbJJwq4,12648
314
- phoenix/server/api/types/DatasetExample.py,sha256=-nADawYls4-kEuIESbblSWlGuGkfRzoCqIjORA3p38M,5470
316
+ phoenix/server/api/types/Dataset.py,sha256=zDmvMl3J2pIX4VwjX-PAek5jC1_jk7ME-p0wHXW3Des,12991
317
+ phoenix/server/api/types/DatasetExample.py,sha256=9xEdDVj8rNK3LOs98Ekm67sz56yfpjj9Vn9CXIndW74,5650
315
318
  phoenix/server/api/types/DatasetExampleRevision.py,sha256=c-jWR6dTguEZTm54IMlFr0Ic84I3nefyDnZb7nF5hnI,874
316
319
  phoenix/server/api/types/DatasetExperimentAnnotationSummary.py,sha256=EVXz6zfbdYsU5SZ6FUrAA_VQqQCnBE_mbKgmAmFoDLI,195
320
+ phoenix/server/api/types/DatasetLabel.py,sha256=nIiggJQEBygvLWIWUL-mUKoG_Et9iLHvbvU7-WNnWPU,510
317
321
  phoenix/server/api/types/DatasetSplit.py,sha256=FMdst-6WV4kGBzGr_GefX5vCYuKo-kFJWFJU5MNPIpk,862
318
322
  phoenix/server/api/types/DatasetValues.py,sha256=7VbCOLlzOXpZN80-zYF2UGuafRcPsZF-8WQNc0YsKFc,1119
319
323
  phoenix/server/api/types/DatasetVersion.py,sha256=NnDriqQUE20N_Jhyu3-IxHWJQE9wmdHEJIQAKyTVJpo,302
@@ -356,7 +360,7 @@ phoenix/server/api/types/Project.py,sha256=D6S4hgcSXD1V2brV1x-NImWfoTcU4u9BceIBX
356
360
  phoenix/server/api/types/ProjectSession.py,sha256=YvRqj9qXXY4FvYN9Nhie9qdHcNCEPz7SoBdflrbLGRk,9795
357
361
  phoenix/server/api/types/ProjectSessionAnnotation.py,sha256=yerdFlW_dhCxDeoyE-75n6I_k4uUWn0m3S4XSdplS6E,2102
358
362
  phoenix/server/api/types/ProjectTraceRetentionPolicy.py,sha256=tYy2kgalPDyuaYZr0VUHjH0YpXaiF_QOzg5yfaV_c7c,3782
359
- phoenix/server/api/types/Prompt.py,sha256=ad52KVQ1yJrAWXd3HdOKKHzyaUJqrp2mtFEe1QGEE4E,5455
363
+ phoenix/server/api/types/Prompt.py,sha256=UlZNllvXtH5J-zLS_OpvKusbhcN_4CKTIv-XN5rU0is,6266
360
364
  phoenix/server/api/types/PromptLabel.py,sha256=kREZ219VB1xJkvOI8W6aeXBJkQx5bOccNa7g7fbRTt0,570
361
365
  phoenix/server/api/types/PromptResponse.py,sha256=Q8HKtpp8GpUOcxPCzZpkkokidDd6u0aZOv_SuPZZd5Q,630
362
366
  phoenix/server/api/types/PromptVersion.py,sha256=hLPwOwj1h0gH4fqpLS-xwcC2TQYLCmvaCiEkyXvTS1g,5494
@@ -423,16 +427,16 @@ phoenix/server/static/apple-touch-icon-76x76.png,sha256=CT_xT12I0u2i0WU8JzBZBuOQ
423
427
  phoenix/server/static/apple-touch-icon.png,sha256=fOfpjqGpWYbJ0eAurKsyoZP1EAs6ZVooBJ_SGk2ZkDs,3801
424
428
  phoenix/server/static/favicon.ico,sha256=bY0vvCKRftemZfPShwZtE93DiiQdaYaozkPGwNFr6H8,34494
425
429
  phoenix/server/static/modernizr.js,sha256=mvK-XtkNqjOral-QvzoqsyOMECXIMu5BQwSVN_wcU9c,2564
426
- phoenix/server/static/.vite/manifest.json,sha256=zwloCUkfRTnXio9xvzKKcqbotRPg029ZsJ8LUfFV56Y,2328
427
- phoenix/server/static/assets/components-Dl9SUw1U.js,sha256=DInXlFJoNa4bZM_hA5Uin8_FFDHxzi3Bn5sDwYdSHcs,695895
428
- phoenix/server/static/assets/index-CqQS0dTo.js,sha256=VbcHauWl1AENzfq641yRgJj7aw-Ta7wR6H2Bwq_H-IE,63435
429
- phoenix/server/static/assets/pages-DKSjVA_E.js,sha256=YaKoAKUduxdas-Layv4-Mq_o4Bfm2oQeqKUOce29vaI,1326719
430
+ phoenix/server/static/.vite/manifest.json,sha256=rzd1dpIB-2jzG1MUY69jIZxY7fHIDnSVfIl3SHJrmTw,2328
431
+ phoenix/server/static/assets/components-BG6v0EM8.js,sha256=OlwDlPZR35cYxPcpZu7nTvuX-XJ5bMAKb91GBT7rbF8,717341
432
+ phoenix/server/static/assets/index-CSVcULw1.js,sha256=MxKVdXMdZV8wxvcl47H-BUzsRCuihATaJefd_uxKa88,63600
433
+ phoenix/server/static/assets/pages-DgaM7kpM.js,sha256=b0KVlxRkpFTZ9S7DCZiE06Qruc7Ua2CTKLxhfiyHGDM,1331042
430
434
  phoenix/server/static/assets/vendor-BGzfc4EU.css,sha256=Nx5Lmx-bqYR7nsO_O4kEBcrJ8cwknWjZ6seHN3_s4UQ,3171
431
- phoenix/server/static/assets/vendor-CtbHQYl8.js,sha256=MJ4w4myY71ohebq8jvWn54Q6GkrBexGLeRBb8_D_cJw,2591438
432
- phoenix/server/static/assets/vendor-arizeai-D-lWOwIS.js,sha256=1PoeAX4Edv-L3XN_x-sizwTvIbayp3iXJrEBWodMBq0,112652
433
- phoenix/server/static/assets/vendor-codemirror-BRBpy3_z.js,sha256=n9pXl3SPrB3ogNzES9taTQI6DrdPmC6fe5Yq1E9uXcI,413213
434
- phoenix/server/static/assets/vendor-recharts--KdSwB3m.js,sha256=pVfgxJG_bnXurl_gBfIbOBK3P-48XtIHe7K6wUF-VyQ,231654
435
- phoenix/server/static/assets/vendor-shiki-CvRzZnIo.js,sha256=UWSJ0Bu6nSdmqtIcb5ZgjDqb8zbSU0pfp6m0jtZHbiM,305160
435
+ phoenix/server/static/assets/vendor-BqTEkGQU.js,sha256=_reetQ4kYw-0cLbQgK-Ce_bu8P-udNgkFAxAMWAOuIQ,2602283
436
+ phoenix/server/static/assets/vendor-arizeai-DlOj0PQQ.js,sha256=fvk6Zfq3daaYLB4RiZRJHpJm5GIyzqNV4JXt74ZWeCg,107800
437
+ phoenix/server/static/assets/vendor-codemirror-B2PHH5yZ.js,sha256=QjUU6KX46yAL8tjl7SsEsj1jTY6M33GwtK8S4eaE4uk,413211
438
+ phoenix/server/static/assets/vendor-recharts-CKsi4IjN.js,sha256=d07g7qsq4yG80ekO_0m5RQ20ZMVEfnJvXV8boHnGHZc,231652
439
+ phoenix/server/static/assets/vendor-shiki-DN26BkKE.js,sha256=gCX22-6kpVbLa_zs_Mapak8jPzvBcXMQ5WpCiIv2T5s,305160
436
440
  phoenix/server/static/assets/vendor-three-BLWp5bic.js,sha256=vfSCVXS20jA0Ceo_O0mDxYBcROinWMdPE6RR4JXmtec,620972
437
441
  phoenix/server/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
438
442
  phoenix/server/templates/index.html,sha256=QAYh0TG5mg-GvDQUR09aD9ebl9Sfq0fYAcfIa5G7J6E,7148
@@ -440,7 +444,7 @@ phoenix/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
440
444
  phoenix/session/client.py,sha256=bFw3RzSdCCQBDNDbgxgaao4kCsP9_YWXG1VQfJvNveA,38532
441
445
  phoenix/session/data_extractor.py,sha256=y_21QYW5emZ-SFYN9GtpUwDBMPCWtbRk3ZGxfR3k8K0,3178
442
446
  phoenix/session/evaluation.py,sha256=l0IMuAmqIqgr_Ye15VCr4Z-_e4g9OCT1XYwsdT7DuGQ,5528
443
- phoenix/session/session.py,sha256=iIC-Khgs3oQr9McsltInB6oD9hf7cZSqsBvGrrrXDls,28318
447
+ phoenix/session/session.py,sha256=SUQcBBA5H_pM1DXoKT6zfK_Fhlc9XCja-WwSfBUXnSI,29199
444
448
  phoenix/trace/__init__.py,sha256=ujk_uYjM8gmm-YqnyXxF-kekfwid0bcaPMTtNNcaw6U,407
445
449
  phoenix/trace/attributes.py,sha256=hyEKYZWPCP4NRmW7VmiC2voa3TH7FYKUBR9DYiVfXlw,12627
446
450
  phoenix/trace/errors.py,sha256=wB1z8qdPckngdfU-TORToekvg3344oNFAA83_hC2yFY,180
@@ -472,9 +476,9 @@ phoenix/utilities/project.py,sha256=auVpARXkDb-JgeX5f2aStyFIkeKvGwN9l7qrFeJMVxI,
472
476
  phoenix/utilities/re.py,sha256=6YyUWIkv0zc2SigsxfOWIHzdpjKA_TZo2iqKq7zJKvw,2081
473
477
  phoenix/utilities/span_store.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
474
478
  phoenix/utilities/template_formatters.py,sha256=gh9PJD6WEGw7TEYXfSst1UR4pWWwmjxMLrDVQ_CkpkQ,2779
475
- arize_phoenix-12.0.0.dist-info/METADATA,sha256=9riA1qKAB1k5kTBUYJmADDY6OZrCLAFw6qpTO_8CqUM,34045
476
- arize_phoenix-12.0.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
477
- arize_phoenix-12.0.0.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
478
- arize_phoenix-12.0.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
479
- arize_phoenix-12.0.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
480
- arize_phoenix-12.0.0.dist-info/RECORD,,
479
+ arize_phoenix-12.2.0.dist-info/METADATA,sha256=WjI2-I68gw_gsPc4SQ945twJ3uGSp0t66IFzKXRJOsQ,34045
480
+ arize_phoenix-12.2.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
481
+ arize_phoenix-12.2.0.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
482
+ arize_phoenix-12.2.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
483
+ arize_phoenix-12.2.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
484
+ arize_phoenix-12.2.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:
@@ -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(String, nullable=False)
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
  )
@@ -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,