arize-phoenix 5.7.0__py3-none-any.whl → 5.9.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 (32) hide show
  1. {arize_phoenix-5.7.0.dist-info → arize_phoenix-5.9.0.dist-info}/METADATA +3 -5
  2. {arize_phoenix-5.7.0.dist-info → arize_phoenix-5.9.0.dist-info}/RECORD +31 -31
  3. {arize_phoenix-5.7.0.dist-info → arize_phoenix-5.9.0.dist-info}/WHEEL +1 -1
  4. phoenix/config.py +19 -3
  5. phoenix/db/helpers.py +55 -1
  6. phoenix/server/api/helpers/playground_clients.py +283 -44
  7. phoenix/server/api/helpers/playground_spans.py +173 -76
  8. phoenix/server/api/input_types/InvocationParameters.py +7 -8
  9. phoenix/server/api/mutations/chat_mutations.py +244 -76
  10. phoenix/server/api/queries.py +5 -1
  11. phoenix/server/api/routers/v1/spans.py +25 -1
  12. phoenix/server/api/subscriptions.py +210 -158
  13. phoenix/server/api/types/ChatCompletionSubscriptionPayload.py +5 -3
  14. phoenix/server/api/types/ExperimentRun.py +38 -1
  15. phoenix/server/api/types/GenerativeProvider.py +2 -1
  16. phoenix/server/app.py +21 -2
  17. phoenix/server/grpc_server.py +3 -1
  18. phoenix/server/static/.vite/manifest.json +32 -32
  19. phoenix/server/static/assets/{components-Csu8UKOs.js → components-DU-8CYbi.js} +370 -329
  20. phoenix/server/static/assets/{index-Bk5C9EA7.js → index-D9E16vvV.js} +2 -2
  21. phoenix/server/static/assets/pages-t09OI1rC.js +3966 -0
  22. phoenix/server/static/assets/{vendor-CtqfhlbC.js → vendor-D04tenE6.js} +181 -181
  23. phoenix/server/static/assets/{vendor-arizeai-C_3SBz56.js → vendor-arizeai-D3NxMQw0.js} +2 -2
  24. phoenix/server/static/assets/{vendor-codemirror-wfdk9cjp.js → vendor-codemirror-XTiZSlqq.js} +5 -5
  25. phoenix/server/static/assets/{vendor-recharts-BiVnSv90.js → vendor-recharts-p0L0neVs.js} +1 -1
  26. phoenix/session/client.py +27 -7
  27. phoenix/utilities/json.py +31 -1
  28. phoenix/version.py +1 -1
  29. phoenix/server/static/assets/pages-UeWaKXNs.js +0 -3737
  30. {arize_phoenix-5.7.0.dist-info → arize_phoenix-5.9.0.dist-info}/entry_points.txt +0 -0
  31. {arize_phoenix-5.7.0.dist-info → arize_phoenix-5.9.0.dist-info}/licenses/IP_NOTICE +0 -0
  32. {arize_phoenix-5.7.0.dist-info → arize_phoenix-5.9.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,14 +1,12 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arize-phoenix
3
- Version: 5.7.0
3
+ Version: 5.9.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
7
7
  Project-URL: Source, https://github.com/Arize-ai/phoenix
8
8
  Author-email: Arize AI <phoenix-devs@arize.com>
9
9
  License: Elastic-2.0
10
- License-File: IP_NOTICE
11
- License-File: LICENSE
12
10
  Keywords: Explainability,Monitoring,Observability
13
11
  Classifier: Programming Language :: Python
14
12
  Classifier: Programming Language :: Python :: 3.9
@@ -131,7 +129,7 @@ Description-Content-Type: text/markdown
131
129
  <a href="https://docs.arize.com/phoenix/">
132
130
  <img src="https://img.shields.io/static/v1?message=Docs&logo=data:image/png;base64,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&labelColor=grey&color=blue&logoColor=white&label=%20"/>
133
131
  </a>
134
- <a target="_blank" href="https://join.slack.com/t/arize-ai/shared_invite/zt-1px8dcmlf-fmThhDFD_V_48oU7ALan4Q">
132
+ <a target="_blank" href="https://join.slack.com/t/arize-ai/shared_invite/zt-22vj03k4k-MlrNEwv5WeswapTs0kNCBw">
135
133
  <img src="https://img.shields.io/static/v1?message=Community&logo=slack&labelColor=grey&color=blue&logoColor=white&label=%20"/>
136
134
  </a>
137
135
  <a target="_blank" href="https://twitter.com/ArizePhoenix">
@@ -237,7 +235,7 @@ For details about tracing integrations and example applications, see the [OpenIn
237
235
 
238
236
  Join our community to connect with thousands of AI builders.
239
237
 
240
- - 🌍 Join our [Slack community](https://join.slack.com/t/arize-ai/shared_invite/zt-1px8dcmlf-fmThhDFD_V_48oU7ALan4Q).
238
+ - 🌍 Join our [Slack community](https://join.slack.com/t/arize-ai/shared_invite/zt-22vj03k4k-MlrNEwv5WeswapTs0kNCBw).
241
239
  - 📚 Read our [documentation](https://docs.arize.com/phoenix).
242
240
  - 💡 Ask questions and provide feedback in the _#phoenix-support_ channel.
243
241
  - 🌟 Leave a star on our [GitHub](https://github.com/Arize-ai/phoenix).
@@ -1,12 +1,12 @@
1
1
  phoenix/__init__.py,sha256=X3eUEwd2rG8KKWWYVNNDJoqo08ihfjgHhlP29dcdNJE,5481
2
2
  phoenix/auth.py,sha256=JpkwJbis2INlIXWcQ-M_Nk5Ln9LBgHMdWNnaAQp0D2w,10940
3
- phoenix/config.py,sha256=y-JvQJRtxO2BSrXdy4d6CSkpzV9dmfT6hKSUiWpBRws,24282
3
+ phoenix/config.py,sha256=wmHEfX2npXWSRtTR9-bz8gJUbfacjcs6w7DDSkvosro,24902
4
4
  phoenix/datetime_utils.py,sha256=iJzNG6YJ6V7_u8B2iA7P2Z26FyxYbOPtx0dhJ7kNDHA,3398
5
5
  phoenix/exceptions.py,sha256=n2L2KKuecrdflB9MsCdAYCiSEvGJptIsfRkXMoJle7A,169
6
6
  phoenix/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
7
7
  phoenix/services.py,sha256=kpW1WL0kiB8XJsO6XycvZVJ-lBkNoenhQ7atCvBoSe8,5365
8
8
  phoenix/settings.py,sha256=ht-0oN-sMV6SPXrk7Tu1EZlngpAYkGNLYPhO8DyrdQI,661
9
- phoenix/version.py,sha256=QmHMXVnw5DVPfWzvN7FS1tOhDAesdxpM_aVOh9CMuSk,22
9
+ phoenix/version.py,sha256=K8QUWqtzm0RvyvMi0shZurlcbRE1MiHY43oJIJLcGF0,22
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
@@ -19,7 +19,7 @@ phoenix/db/bulk_inserter.py,sha256=faNjuwLqqsw4ky8sa4D0h9u5TvEDTOjrccUW89L008E,1
19
19
  phoenix/db/engines.py,sha256=BYFiHFGABtNuCo7OB8fLc46gMxur4rePK_sJxrMrMjA,6508
20
20
  phoenix/db/enums.py,sha256=tt7iovXLhVTLZ3_LbHNGgcI44SnNjXfkKtLAZG57T54,428
21
21
  phoenix/db/facilitator.py,sha256=Aulr9-sUvRn20Z7mjpWhW6TFE1amRzL8qSEjscvL-xw,4123
22
- phoenix/db/helpers.py,sha256=jT9sADJ39EMC5mKKT-urEOwhIzPFCCWLjH95ti9yraY,3497
22
+ phoenix/db/helpers.py,sha256=daKbpY2QhTPo9a_T1xNHKI4WzWHkMmmrGIws7Hw-RZ4,4884
23
23
  phoenix/db/migrate.py,sha256=lf6FFGzdyNjwtQ4TFi3mmHNGnnazMtG30PPB2qRF1Xc,2648
24
24
  phoenix/db/models.py,sha256=wx2XQgf6qhUO2ZQ4oUENoAguf440qaR0Ea_q1XB1bBU,26484
25
25
  phoenix/db/insertion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -73,11 +73,11 @@ phoenix/pointcloud/pointcloud.py,sha256=SN_1wXZcwKrtSnHGZLDZGx71orqE1WyVF7E-D58d
73
73
  phoenix/pointcloud/projectors.py,sha256=TQgwc9cJDjJkin1WZyZzgl3HsYrLLiyWD7Czy4jNW3U,1088
74
74
  phoenix/pointcloud/umap_parameters.py,sha256=db_WEPoamuWtopZx7tQfAXPnoE0MS8FkAV0_ThjEx_Q,1735
75
75
  phoenix/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
- phoenix/server/app.py,sha256=feZL0fpIS6QuJQmoDl3yDhsDrl4-bsnhJfR3XuHxguQ,37247
76
+ phoenix/server/app.py,sha256=O-oawPGpm02KT6_09E66qdEpZqJT1pMUt9LODeI5m5U,37934
77
77
  phoenix/server/bearer_auth.py,sha256=0UudvkAS_dxna5JEJJhGUYwB6Ny-e22ssX5Mm79QwCk,5907
78
78
  phoenix/server/dml_event.py,sha256=MjJmVEKytq75chBOSyvYDusUnEbg1pHpIjR3pZkUaJA,2838
79
79
  phoenix/server/dml_event_handler.py,sha256=EZLXmCvx4pJrCkz29gxwKwmvmUkTtPCHw6klR-XM8qE,8258
80
- phoenix/server/grpc_server.py,sha256=42KsTfHQiTnf1G9KKjn04I7KOjZXeamc4sMClwumMOk,3754
80
+ phoenix/server/grpc_server.py,sha256=SknR-iLIUqU9swiAyLhbCUREA1obOM6w49xgdK1AQDs,3839
81
81
  phoenix/server/jwt_store.py,sha256=asxzY4_ZBM2FWAMstHvhvnKUP_0AA3v3xPTL2IOgNqY,16831
82
82
  phoenix/server/main.py,sha256=cJaJArrLof5ziFkpB_31TGTaiUK_YCh7_ROZRtrdZ-Q,16310
83
83
  phoenix/server/oauth2.py,sha256=EV4wcCwG0N7cJRcfGNURdP5rZgRVCeRDvXyle19A27Y,2064
@@ -92,9 +92,9 @@ phoenix/server/api/auth.py,sha256=OhWmv_Hl-K-yhJeUWXKRYYiUOIPo-rYSQXdm4fjeTJ8,90
92
92
  phoenix/server/api/context.py,sha256=g5tAYInMifMOdnGTlyfHdB7rDNlC9F2E5bU6IA_3Y0c,5337
93
93
  phoenix/server/api/exceptions.py,sha256=TA0JuY2YRnj35qGuMSQ8d0ToHum9gWm9W--3fSKHrX0,1171
94
94
  phoenix/server/api/interceptor.py,sha256=ykDnoC_apUd-llVli3m1CW18kNSIgjz2qZ6m5JmPDu8,1294
95
- phoenix/server/api/queries.py,sha256=nOgrAygpl49y1a5V0O_y4SRNJ8dwgv_C7birrgkgRm4,27150
95
+ phoenix/server/api/queries.py,sha256=4KJz8TUz3VUTup9MDjr_GoKX0SttWSvHBq2ncWZGxf8,27343
96
96
  phoenix/server/api/schema.py,sha256=tHyw2jTbue_-gu0fe9Sw7LUYtzJUCwp9SvccDgOkNPw,1696
97
- phoenix/server/api/subscriptions.py,sha256=o8uepfk9ofh4jsWQ5wbbiOJHcSkZozizNgF_9UtD6Pc,17323
97
+ phoenix/server/api/subscriptions.py,sha256=Xu1k-UL893Ao1FsGk7OGfxuuyO6A3FzbSK8a2TTSDe4,19692
98
98
  phoenix/server/api/utils.py,sha256=quCBRcusc6PUq9tJq7M8PgwFZp7nXgVAxtbw8feribY,833
99
99
  phoenix/server/api/dataloaders/__init__.py,sha256=jNYvfXjnZzgA2HWTG7AZdqWGla3ZysBUDUei8Zkz6N8,3290
100
100
  phoenix/server/api/dataloaders/annotation_summaries.py,sha256=2sHmIDX7n8tuPeBTs9bMKtlMKWn_Ph9awTZqmwn2Owc,5505
@@ -125,9 +125,9 @@ phoenix/server/api/dataloaders/cache/__init__.py,sha256=SYoOM9n8FJaMdQarma5d1blu
125
125
  phoenix/server/api/dataloaders/cache/two_tier_cache.py,sha256=cmo8FUT3E91R139IEzh4yCga-6nTamc5KPXAfMrzNDM,2315
126
126
  phoenix/server/api/helpers/__init__.py,sha256=m2-xaSPqUiSs91k62JaRDjFNfl-1byxBfY-m_Vxw16U,272
127
127
  phoenix/server/api/helpers/dataset_helpers.py,sha256=14mldZp9to3rr9BdvvoFqEwZHHV_k2e7jPm8q9z2OdQ,6896
128
- phoenix/server/api/helpers/playground_clients.py,sha256=OGwoZfUX5RjdRoWD-_4Nr9wQocQcdOChDNn7riW5AX0,24641
128
+ phoenix/server/api/helpers/playground_clients.py,sha256=Bt3rj0zZ2nmxb-b2vBNNzKA2N9GEUH_LyP3j166EFOI,34486
129
129
  phoenix/server/api/helpers/playground_registry.py,sha256=CPLMziFB2wmr-dfbx7VbzO2f8YIG_k5RftzvGXYGQ1w,2570
130
- phoenix/server/api/helpers/playground_spans.py,sha256=MAB52fbVLffBnz0QxJw8J8Y_heuzbK_blfg6CUrnDxs,11761
130
+ phoenix/server/api/helpers/playground_spans.py,sha256=j7WlFTolCgrpkazwVuXqvTj8JSJ-nf-Gf_VZKCbzAvU,14775
131
131
  phoenix/server/api/input_types/AddExamplesToDatasetInput.py,sha256=mIQz0S_z8YdrktKIY6RCvtNJ2yZF9pYvTGgasUsI-54,430
132
132
  phoenix/server/api/input_types/AddSpansToDatasetInput.py,sha256=-StSstyMAVrba3tG1U30b-srkKCtu_svflQuSM19iJA,362
133
133
  phoenix/server/api/input_types/ChatCompletionInput.py,sha256=g_5ARuwylt-uCVAsGyZPEVtidEQiOhbKakvDQsZumzw,1451
@@ -150,7 +150,7 @@ phoenix/server/api/input_types/DimensionFilter.py,sha256=eBYcn7ECSJQlEePvbStqkHB
150
150
  phoenix/server/api/input_types/DimensionInput.py,sha256=Vfx5FmiMKey4-EHDQsQRPzSAMRJMN5oVMLDUl4NKAa8,164
151
151
  phoenix/server/api/input_types/GenerativeModelInput.py,sha256=h_9dNkz-LBgOLKQ5_ijch4UNGiDb4x5CCC96WyverSg,551
152
152
  phoenix/server/api/input_types/Granularity.py,sha256=PiOFWmSMs_w7ZZMNfEWPzIY6S6guI83Vy4NXXSEewGo,2310
153
- phoenix/server/api/input_types/InvocationParameters.py,sha256=OA4xC2t33alV1Y57zeIgQImUEI_EHTl4vRLYRtjyNTM,5186
153
+ phoenix/server/api/input_types/InvocationParameters.py,sha256=Lg6-SKsx72Lb-jzjJLSfPfmyt8bPz_8JtLpv5-TDcZQ,5154
154
154
  phoenix/server/api/input_types/PatchAnnotationInput.py,sha256=NWhkcbcGNPwfOYsN3wm5YFNNrSc5T-8Y5my74RK99HE,520
155
155
  phoenix/server/api/input_types/PatchDatasetExamplesInput.py,sha256=_uMqkAInhLDvzUSASl6HgLNulTsekMcYzyd5J6LF90I,884
156
156
  phoenix/server/api/input_types/PatchDatasetInput.py,sha256=OURtTVY8Z_oFEDtKwT1LCMaOK5D4QYo5TVQ6mDrex-g,328
@@ -164,7 +164,7 @@ phoenix/server/api/input_types/UserRoleInput.py,sha256=xxhFe0ITZOgRVEJbVem_W6F1I
164
164
  phoenix/server/api/input_types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
165
  phoenix/server/api/mutations/__init__.py,sha256=1wClieLNA3_Tin4Ah67rkrQvwSSZAdPU0EPsRiUxyAA,1103
166
166
  phoenix/server/api/mutations/api_key_mutations.py,sha256=OmPipsmlQIb6DKvAgO58mZUwkYJihlJB2N4lTyeUlAA,6164
167
- phoenix/server/api/mutations/chat_mutations.py,sha256=eaZcuiweiXb59ZstpkFO7SmTvVwV4H1IpRLvc-zTvko,13898
167
+ phoenix/server/api/mutations/chat_mutations.py,sha256=aQ9dBgUmeQOT2fn8dJp6luWc4EiJJeg1QsX8yNNr_ZM,21074
168
168
  phoenix/server/api/mutations/dataset_mutations.py,sha256=siwsSmozKRIK8ZhPrfWl-GxKCL4lAmRPms862tG2KXY,27064
169
169
  phoenix/server/api/mutations/experiment_mutations.py,sha256=p3CoLAa8nFPa3D759Y2A7De_PVJNGOL98mA3HoZBrRQ,3188
170
170
  phoenix/server/api/mutations/export_events_mutations.py,sha256=xoDnVWC7eA_8wNQP0-oyiHojyUZ0EhVVSrsAnztetC0,3993
@@ -187,7 +187,7 @@ phoenix/server/api/routers/v1/experiment_evaluations.py,sha256=1XuKqE5F6CC6R4kF4
187
187
  phoenix/server/api/routers/v1/experiment_runs.py,sha256=xKXhol1-G4zAFECAQK9lAjKtSJsvB0Bp6bAXJYqJ7eI,6387
188
188
  phoenix/server/api/routers/v1/experiments.py,sha256=sBxOIE4k4eIt-sQ6lPo2HUv9Tf1aURXtTJTq8J-Rfto,11808
189
189
  phoenix/server/api/routers/v1/pydantic_compat.py,sha256=FeK8oe2brqu-djsoqRxiKL4tw5cHmi89OHVfCFxYsAo,2890
190
- phoenix/server/api/routers/v1/spans.py,sha256=0i82OysmDVjCAU590urzWzpfl_hH12srAHAnVKyYWxM,8796
190
+ phoenix/server/api/routers/v1/spans.py,sha256=NnvcUIx_7nb4tnieP-tfgy2Ua7WzHGSTEOvoLJ-3C9Y,9634
191
191
  phoenix/server/api/routers/v1/traces.py,sha256=wK9WU60YBsZCGFi8h6QzXMyIQ1_e5WdkCGz4Ky2Gb-g,7787
192
192
  phoenix/server/api/routers/v1/utils.py,sha256=mSs1luneS00f4o60pJeR8JcjP1NdF3Igh7fjAbOYF_U,3074
193
193
  phoenix/server/api/types/Annotation.py,sha256=7Ym7iuVcbwHlw2yIRylz4nATAF_Cm-Z17qcjiooj1cc,751
@@ -196,7 +196,7 @@ phoenix/server/api/types/AnnotatorKind.py,sha256=rPgGdbN1Gvc109sGQ_ZH-gfJbp93V9w
196
196
  phoenix/server/api/types/ApiKey.py,sha256=76HIkWxyJqL3UjdMesX9l5y6XaD9QphwabXGQVY-MaQ,793
197
197
  phoenix/server/api/types/AuthMethod.py,sha256=M25usT6FCNKi-QFMdtMqRjJVGfq1ACnVoSjHXGxfrUk,126
198
198
  phoenix/server/api/types/ChatCompletionMessageRole.py,sha256=kmQOilOlVntlmqbaHkqXZuimfljfYaHc3kbo53uK8_0,227
199
- phoenix/server/api/types/ChatCompletionSubscriptionPayload.py,sha256=IhpidX4CvWGi4nOLB2BHhueObTp0-wVLHTfxZEm1HQA,919
199
+ phoenix/server/api/types/ChatCompletionSubscriptionPayload.py,sha256=G0YsirJzDMFDqEK7I_FCkPmIugAof-8D9fNfFlHdhjY,1031
200
200
  phoenix/server/api/types/Cluster.py,sha256=duX0pSC7P3YT1IztduuJtPsRj1x6oOOLfmWf2Y-FdEk,5699
201
201
  phoenix/server/api/types/CreateDatasetPayload.py,sha256=R-6zCmuD0f76RU9Giu78xwTHlASQs6Aq8yzvX1Kxc3g,140
202
202
  phoenix/server/api/types/DataQualityMetric.py,sha256=zRKsNvHBu-NdcsunuLhqFpZhi6ks-HMqA1PJD27jTak,590
@@ -222,12 +222,12 @@ phoenix/server/api/types/ExampleRevisionInterface.py,sha256=gV3Gt9-3Oi5wjaVtepC6
222
222
  phoenix/server/api/types/Experiment.py,sha256=hqqIwgeWoylOeBAMmQyzefn_p_COwxW0VqEGOqdcTpE,5470
223
223
  phoenix/server/api/types/ExperimentAnnotationSummary.py,sha256=Uk3JtxIrsMoZT5tqc4nJdUOM3XegVzjUyoV3pkjNotE,256
224
224
  phoenix/server/api/types/ExperimentComparison.py,sha256=cFQZy5rj_klzTV-3jnxIlkrCHXkW8gYnp5uSR1UWCzg,416
225
- phoenix/server/api/types/ExperimentRun.py,sha256=LkR7fBRZ3nH57ZoHJwePTGtJYcTMM-EH5r1TVPiMyxg,2687
225
+ phoenix/server/api/types/ExperimentRun.py,sha256=18VDl9ciENRp-yn1_gyCDnTI4TYchG985GuM6hssN7g,4253
226
226
  phoenix/server/api/types/ExperimentRunAnnotation.py,sha256=iBxDaD9DgiF-Qymp5QyxWfJRGYXM1_CeWA_qzsZBqkI,1812
227
227
  phoenix/server/api/types/ExportedFile.py,sha256=e3GTn7B5LgsTbqiwjhMCQH7VsiqXitrBO4aCMS1lHsg,163
228
228
  phoenix/server/api/types/Functionality.py,sha256=tzV9xdhB8zqfsjWxP66NDC7EZsplYkYO7jRbLWJIeeg,382
229
229
  phoenix/server/api/types/GenerativeModel.py,sha256=P7eBUMXbeqaLwSSGBKdZy3a5gOLd9I0fuP8o1st6H08,193
230
- phoenix/server/api/types/GenerativeProvider.py,sha256=67dwF-YRgp4_UnIJFnPV02a9yb4oiThiU71L63zi3qw,1101
230
+ phoenix/server/api/types/GenerativeProvider.py,sha256=4Vm82blTCvj9tCreLhghiYOz4dsJPkYbFmfDRaLae9s,1169
231
231
  phoenix/server/api/types/Inferences.py,sha256=wv88PjcK-KwnzmTdukiAX9EV2KX4GqsKXVAUm1JtnDA,3383
232
232
  phoenix/server/api/types/InferencesRole.py,sha256=mLfeHpyhGUVX1-tWzT9IwC_cD18BZrD3RA4YsHYuSpA,595
233
233
  phoenix/server/api/types/LabelFraction.py,sha256=zsDxdFALrNiGA1eNykeP8o65gbA0HOhRp54MPH_iRAM,93
@@ -273,20 +273,20 @@ phoenix/server/static/apple-touch-icon-76x76.png,sha256=CT_xT12I0u2i0WU8JzBZBuOQ
273
273
  phoenix/server/static/apple-touch-icon.png,sha256=fOfpjqGpWYbJ0eAurKsyoZP1EAs6ZVooBJ_SGk2ZkDs,3801
274
274
  phoenix/server/static/favicon.ico,sha256=bY0vvCKRftemZfPShwZtE93DiiQdaYaozkPGwNFr6H8,34494
275
275
  phoenix/server/static/modernizr.js,sha256=mvK-XtkNqjOral-QvzoqsyOMECXIMu5BQwSVN_wcU9c,2564
276
- phoenix/server/static/.vite/manifest.json,sha256=000E_s3Pb1oWXLmvnSBlT88eingszlTB7naM3fEDGEk,1929
277
- phoenix/server/static/assets/components-Csu8UKOs.js,sha256=3ZcTDRJ_RFaer1h-ug94RxeVF6myZpiJo539qA06tGU,299815
278
- phoenix/server/static/assets/index-Bk5C9EA7.js,sha256=e_ymlns5so5gtYryz2HYqDLOmY8Rg8b7ndidAQYjcVQ,7162
279
- phoenix/server/static/assets/pages-UeWaKXNs.js,sha256=A7TKkXM6VXn7OSHyxCf4wdVeeUjVLap8e8n1d7cBdIg,584866
280
- phoenix/server/static/assets/vendor-CtqfhlbC.js,sha256=7uaV_LYzq1C7AchpBdEOl9HpMP1oIpQPYgr8Xj-QtqU,10898284
276
+ phoenix/server/static/.vite/manifest.json,sha256=drYYdxzc7lPintYMBx6grsZPJu_LTS14wcO1YPV9czI,1929
277
+ phoenix/server/static/assets/components-DU-8CYbi.js,sha256=hpQ6qHZWCBf7gIjoHKojfNv55LJNFHFQANNmGliWgwY,305277
278
+ phoenix/server/static/assets/index-D9E16vvV.js,sha256=2Gwt3D0BxvrcHaJI15yslYvTBtMFh5xQ1luBJaH_qK8,7285
279
+ phoenix/server/static/assets/pages-t09OI1rC.js,sha256=CxCleMuzU5JpTjToelyWdbk0eCSMpxgaqFi7U9TradI,625540
280
+ phoenix/server/static/assets/vendor-D04tenE6.js,sha256=1liYDMoq4OLBHuIMGkGVIxYkWQVmcM8FS1671XVr7gs,10898295
281
281
  phoenix/server/static/assets/vendor-DxkFTwjz.css,sha256=nZrkr0u6NNElFGvpWHk9GTHeGoibCXCli1bE7mXZGZg,1816
282
- phoenix/server/static/assets/vendor-arizeai-C_3SBz56.js,sha256=SF3TtCW_a0L_ISOpA_bqE_1P13tr3gc2LwJ8rvaMtwI,307006
283
- phoenix/server/static/assets/vendor-codemirror-wfdk9cjp.js,sha256=GxQzArx-3Haec8ink-YNyVRPg8-jcQ07AGxGvlloW0Y,392705
284
- phoenix/server/static/assets/vendor-recharts-BiVnSv90.js,sha256=pHVVRhBwXcbgYKImvRLOaLjSgk9woIAId_HvAIMC5D4,282859
282
+ phoenix/server/static/assets/vendor-arizeai-D3NxMQw0.js,sha256=vjsrjVC9vpWkP-kgNOp_gl7gCWb2zerFfwdsxs-MVC8,307005
283
+ phoenix/server/static/assets/vendor-codemirror-XTiZSlqq.js,sha256=MAk9T3tMbEr5K06haVZk4gP29zwSgBmbCjaPqBcML5s,392711
284
+ phoenix/server/static/assets/vendor-recharts-p0L0neVs.js,sha256=20Rz5qJ4pS4Rr7S14U7NFPEuVt15OA43-IW_nDX83kk,282859
285
285
  phoenix/server/static/assets/vendor-three-DwGkEfCM.js,sha256=0D12ZgKzfKCTSdSTKJBFR2RZO_xxeMXrqDp0AszZqHY,620972
286
286
  phoenix/server/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
287
287
  phoenix/server/templates/index.html,sha256=ram6sfy2obf_F053ay35V30v-mnRWZ86rK-PstXLy1c,4457
288
288
  phoenix/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
289
- phoenix/session/client.py,sha256=0OpOTUnJ8IBzCK-coIxxusNJiuIInNeSDpxrTHiNhKc,33976
289
+ phoenix/session/client.py,sha256=rsncDzCz8jb7P5e4z3EeZzpSpgluJFXcp00v7RqDYHI,35012
290
290
  phoenix/session/data_extractor.py,sha256=Y0RzYFaNy9fQj8PEIeQ76TBZ90_E1FW7bXu3K5x0EZY,2782
291
291
  phoenix/session/evaluation.py,sha256=Q3fOMNELvqkk-b6a6PKc8pDJdsNQ0ZbTpseUSA2NKqs,5300
292
292
  phoenix/session/session.py,sha256=1HMKmN4Sn6W3szajitR5EQ130ia1HxIhTUB_tew6P00,27474
@@ -316,15 +316,15 @@ phoenix/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
316
316
  phoenix/utilities/client.py,sha256=kr95EgpTJtCbb7CLoxC-KiyB2Wco03DZGIlcEmozHFs,5605
317
317
  phoenix/utilities/deprecation.py,sha256=LL1LWfVqnYulceMQw2CggoIv8Uogrj7fAD_85devnoo,1067
318
318
  phoenix/utilities/error_handling.py,sha256=5_ggfwmd0xZPoI3qi1fwm0x1F0i7g5j-gr0ny1TFzPU,1967
319
- phoenix/utilities/json.py,sha256=SulN5hVUQUUebYhifuNvsYw1Eq8dVzRcP7Di6nr3uNM,2388
319
+ phoenix/utilities/json.py,sha256=F5UbCaplDxrcSiuMMPIwPqcxEmYcbc24Jqomqky8YbA,3565
320
320
  phoenix/utilities/logging.py,sha256=NKvX43jWITgSTtHGCi6l5xp8jTjtQ8FQ_irEi9ybOxg,502
321
321
  phoenix/utilities/project.py,sha256=auVpARXkDb-JgeX5f2aStyFIkeKvGwN9l7qrFeJMVxI,445
322
322
  phoenix/utilities/re.py,sha256=x8Xbk-Wa6qDMAtUd_7JtZvKtrYEuMY-bchB0n163_5c,2006
323
323
  phoenix/utilities/span_store.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
324
324
  phoenix/utilities/template_formatters.py,sha256=JuOyvukMPLDHa1uVNw0kCFBUnIxy02dwAWNZimdIZU4,2423
325
- arize_phoenix-5.7.0.dist-info/METADATA,sha256=_G0Cy0Pqe-U67j83tXVj-RLIbf2czZb8qA1riNKYUeM,22659
326
- arize_phoenix-5.7.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
327
- arize_phoenix-5.7.0.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
328
- arize_phoenix-5.7.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
329
- arize_phoenix-5.7.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
330
- arize_phoenix-5.7.0.dist-info/RECORD,,
325
+ arize_phoenix-5.9.0.dist-info/METADATA,sha256=6nzmQsogHQ_iojZREFcMzcmV0lbegRpIS5l6U6yCfUY,22613
326
+ arize_phoenix-5.9.0.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
327
+ arize_phoenix-5.9.0.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
328
+ arize_phoenix-5.9.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
329
+ arize_phoenix-5.9.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
330
+ arize_phoenix-5.9.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.25.0
2
+ Generator: hatchling 1.26.3
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
phoenix/config.py CHANGED
@@ -146,9 +146,10 @@ ENV_PHOENIX_SMTP_VALIDATE_CERTS = "PHOENIX_SMTP_VALIDATE_CERTS"
146
146
  Whether to validate SMTP server certificates. Defaults to true.
147
147
  """
148
148
 
149
- # FastAPI and GQL extension settings
149
+ # API extension settings
150
150
  ENV_PHOENIX_FASTAPI_MIDDLEWARE_PATHS = "PHOENIX_FASTAPI_MIDDLEWARE_PATHS"
151
151
  ENV_PHOENIX_GQL_EXTENSION_PATHS = "PHOENIX_GQL_EXTENSION_PATHS"
152
+ ENV_PHOENIX_GRPC_INTERCEPTOR_PATHS = "PHOENIX_GRPC_INTERCEPTOR_PATHS"
152
153
 
153
154
 
154
155
  def server_instrumentation_is_enabled() -> bool:
@@ -656,7 +657,7 @@ def get_env_db_logging_level() -> int:
656
657
 
657
658
 
658
659
  def get_env_fastapi_middleware_paths() -> list[tuple[str, str]]:
659
- env_value = os.getenv("PHOENIX_FASTAPI_MIDDLEWARE_PATHS", "")
660
+ env_value = os.getenv(ENV_PHOENIX_FASTAPI_MIDDLEWARE_PATHS, "")
660
661
  paths = []
661
662
  for entry in env_value.split(","):
662
663
  entry = entry.strip()
@@ -671,7 +672,7 @@ def get_env_fastapi_middleware_paths() -> list[tuple[str, str]]:
671
672
 
672
673
 
673
674
  def get_env_gql_extension_paths() -> list[tuple[str, str]]:
674
- env_value = os.getenv("PHOENIX_GQL_EXTENSION_PATHS", "")
675
+ env_value = os.getenv(ENV_PHOENIX_GQL_EXTENSION_PATHS, "")
675
676
  paths = []
676
677
  for entry in env_value.split(","):
677
678
  entry = entry.strip()
@@ -685,6 +686,21 @@ def get_env_gql_extension_paths() -> list[tuple[str, str]]:
685
686
  return paths
686
687
 
687
688
 
689
+ def get_env_grpc_interceptor_paths() -> list[tuple[str, str]]:
690
+ env_value = os.getenv(ENV_PHOENIX_GRPC_INTERCEPTOR_PATHS, "")
691
+ paths = []
692
+ for entry in env_value.split(","):
693
+ entry = entry.strip()
694
+ if entry:
695
+ if ":" not in entry:
696
+ raise ValueError(
697
+ f"Invalid interceptor entry '{entry}'. Expected format 'file_path:ClassName'."
698
+ )
699
+ file_path, object_name = entry.split(":", 1)
700
+ paths.append((file_path.strip(), object_name.strip()))
701
+ return paths
702
+
703
+
688
704
  def _get_logging_level(env_var: str, default_level: int) -> int:
689
705
  logging_level = os.getenv(env_var)
690
706
  if not logging_level:
phoenix/db/helpers.py CHANGED
@@ -7,7 +7,16 @@ from openinference.semconv.trace import (
7
7
  RerankerAttributes,
8
8
  SpanAttributes,
9
9
  )
10
- from sqlalchemy import Integer, Select, SQLColumnExpression, case, distinct, func, select
10
+ from sqlalchemy import (
11
+ Integer,
12
+ Select,
13
+ SQLColumnExpression,
14
+ and_,
15
+ case,
16
+ distinct,
17
+ func,
18
+ select,
19
+ )
11
20
  from typing_extensions import assert_never
12
21
 
13
22
  from phoenix.db import models
@@ -103,3 +112,48 @@ def dedup(
103
112
  ans.append(item)
104
113
  seen.add(k)
105
114
  return ans
115
+
116
+
117
+ def get_dataset_example_revisions(
118
+ dataset_version_id: int,
119
+ ) -> Select[tuple[models.DatasetExampleRevision]]:
120
+ version = (
121
+ select(
122
+ models.DatasetVersion.id,
123
+ models.DatasetVersion.dataset_id,
124
+ )
125
+ .filter_by(id=dataset_version_id)
126
+ .subquery()
127
+ )
128
+ table = models.DatasetExampleRevision
129
+ revision = (
130
+ select(
131
+ table.dataset_example_id,
132
+ func.max(table.dataset_version_id).label("dataset_version_id"),
133
+ )
134
+ .join_from(
135
+ table,
136
+ models.DatasetExample,
137
+ table.dataset_example_id == models.DatasetExample.id,
138
+ )
139
+ .join_from(
140
+ models.DatasetExample,
141
+ version,
142
+ models.DatasetExample.dataset_id == version.c.dataset_id,
143
+ )
144
+ .where(models.DatasetExample.dataset_id == version.c.dataset_id)
145
+ .where(table.dataset_version_id <= version.c.id)
146
+ .group_by(table.dataset_example_id)
147
+ .subquery()
148
+ )
149
+ return (
150
+ select(table)
151
+ .where(table.revision_kind != "DELETE")
152
+ .join(
153
+ revision,
154
+ onclause=and_(
155
+ revision.c.dataset_example_id == table.dataset_example_id,
156
+ revision.c.dataset_version_id == table.dataset_version_id,
157
+ ),
158
+ )
159
+ )