arize-phoenix 5.5.2__py3-none-any.whl → 5.7.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 (186) hide show
  1. {arize_phoenix-5.5.2.dist-info → arize_phoenix-5.7.0.dist-info}/METADATA +4 -7
  2. arize_phoenix-5.7.0.dist-info/RECORD +330 -0
  3. phoenix/config.py +50 -8
  4. phoenix/core/model.py +3 -3
  5. phoenix/core/model_schema.py +41 -50
  6. phoenix/core/model_schema_adapter.py +17 -16
  7. phoenix/datetime_utils.py +2 -2
  8. phoenix/db/bulk_inserter.py +10 -20
  9. phoenix/db/engines.py +2 -1
  10. phoenix/db/enums.py +2 -2
  11. phoenix/db/helpers.py +8 -7
  12. phoenix/db/insertion/dataset.py +9 -19
  13. phoenix/db/insertion/document_annotation.py +14 -13
  14. phoenix/db/insertion/helpers.py +6 -16
  15. phoenix/db/insertion/span_annotation.py +14 -13
  16. phoenix/db/insertion/trace_annotation.py +14 -13
  17. phoenix/db/insertion/types.py +19 -30
  18. phoenix/db/migrations/versions/3be8647b87d8_add_token_columns_to_spans_table.py +8 -8
  19. phoenix/db/models.py +28 -28
  20. phoenix/experiments/evaluators/base.py +2 -1
  21. phoenix/experiments/evaluators/code_evaluators.py +4 -5
  22. phoenix/experiments/evaluators/llm_evaluators.py +157 -4
  23. phoenix/experiments/evaluators/utils.py +3 -2
  24. phoenix/experiments/functions.py +10 -21
  25. phoenix/experiments/tracing.py +2 -1
  26. phoenix/experiments/types.py +20 -29
  27. phoenix/experiments/utils.py +2 -1
  28. phoenix/inferences/errors.py +6 -5
  29. phoenix/inferences/fixtures.py +6 -5
  30. phoenix/inferences/inferences.py +37 -37
  31. phoenix/inferences/schema.py +11 -10
  32. phoenix/inferences/validation.py +13 -14
  33. phoenix/logging/_formatter.py +3 -3
  34. phoenix/metrics/__init__.py +5 -4
  35. phoenix/metrics/binning.py +2 -1
  36. phoenix/metrics/metrics.py +2 -1
  37. phoenix/metrics/mixins.py +7 -6
  38. phoenix/metrics/retrieval_metrics.py +2 -1
  39. phoenix/metrics/timeseries.py +5 -4
  40. phoenix/metrics/wrappers.py +2 -2
  41. phoenix/pointcloud/clustering.py +3 -4
  42. phoenix/pointcloud/pointcloud.py +7 -5
  43. phoenix/pointcloud/umap_parameters.py +2 -1
  44. phoenix/server/api/dataloaders/annotation_summaries.py +12 -19
  45. phoenix/server/api/dataloaders/average_experiment_run_latency.py +2 -2
  46. phoenix/server/api/dataloaders/cache/two_tier_cache.py +3 -2
  47. phoenix/server/api/dataloaders/dataset_example_revisions.py +3 -8
  48. phoenix/server/api/dataloaders/dataset_example_spans.py +2 -5
  49. phoenix/server/api/dataloaders/document_evaluation_summaries.py +12 -18
  50. phoenix/server/api/dataloaders/document_evaluations.py +3 -7
  51. phoenix/server/api/dataloaders/document_retrieval_metrics.py +6 -13
  52. phoenix/server/api/dataloaders/experiment_annotation_summaries.py +4 -8
  53. phoenix/server/api/dataloaders/experiment_error_rates.py +2 -5
  54. phoenix/server/api/dataloaders/experiment_run_annotations.py +3 -7
  55. phoenix/server/api/dataloaders/experiment_run_counts.py +1 -5
  56. phoenix/server/api/dataloaders/experiment_sequence_number.py +2 -5
  57. phoenix/server/api/dataloaders/latency_ms_quantile.py +21 -30
  58. phoenix/server/api/dataloaders/min_start_or_max_end_times.py +7 -13
  59. phoenix/server/api/dataloaders/project_by_name.py +3 -3
  60. phoenix/server/api/dataloaders/record_counts.py +11 -18
  61. phoenix/server/api/dataloaders/span_annotations.py +3 -7
  62. phoenix/server/api/dataloaders/span_dataset_examples.py +3 -8
  63. phoenix/server/api/dataloaders/span_descendants.py +3 -7
  64. phoenix/server/api/dataloaders/span_projects.py +2 -2
  65. phoenix/server/api/dataloaders/token_counts.py +12 -19
  66. phoenix/server/api/dataloaders/trace_row_ids.py +3 -7
  67. phoenix/server/api/dataloaders/user_roles.py +3 -3
  68. phoenix/server/api/dataloaders/users.py +3 -3
  69. phoenix/server/api/helpers/__init__.py +4 -3
  70. phoenix/server/api/helpers/dataset_helpers.py +10 -9
  71. phoenix/server/api/helpers/playground_clients.py +671 -0
  72. phoenix/server/api/helpers/playground_registry.py +70 -0
  73. phoenix/server/api/helpers/playground_spans.py +325 -0
  74. phoenix/server/api/input_types/AddExamplesToDatasetInput.py +2 -2
  75. phoenix/server/api/input_types/AddSpansToDatasetInput.py +2 -2
  76. phoenix/server/api/input_types/ChatCompletionInput.py +38 -0
  77. phoenix/server/api/input_types/ChatCompletionMessageInput.py +13 -1
  78. phoenix/server/api/input_types/ClusterInput.py +2 -2
  79. phoenix/server/api/input_types/DeleteAnnotationsInput.py +1 -3
  80. phoenix/server/api/input_types/DeleteDatasetExamplesInput.py +2 -2
  81. phoenix/server/api/input_types/DeleteExperimentsInput.py +1 -3
  82. phoenix/server/api/input_types/DimensionFilter.py +4 -4
  83. phoenix/server/api/input_types/GenerativeModelInput.py +17 -0
  84. phoenix/server/api/input_types/Granularity.py +1 -1
  85. phoenix/server/api/input_types/InvocationParameters.py +156 -13
  86. phoenix/server/api/input_types/PatchDatasetExamplesInput.py +2 -2
  87. phoenix/server/api/input_types/TemplateOptions.py +10 -0
  88. phoenix/server/api/mutations/__init__.py +4 -0
  89. phoenix/server/api/mutations/chat_mutations.py +374 -0
  90. phoenix/server/api/mutations/dataset_mutations.py +4 -4
  91. phoenix/server/api/mutations/experiment_mutations.py +1 -2
  92. phoenix/server/api/mutations/export_events_mutations.py +7 -7
  93. phoenix/server/api/mutations/span_annotations_mutations.py +4 -4
  94. phoenix/server/api/mutations/trace_annotations_mutations.py +4 -4
  95. phoenix/server/api/mutations/user_mutations.py +4 -4
  96. phoenix/server/api/openapi/schema.py +2 -2
  97. phoenix/server/api/queries.py +61 -72
  98. phoenix/server/api/routers/oauth2.py +4 -4
  99. phoenix/server/api/routers/v1/datasets.py +22 -36
  100. phoenix/server/api/routers/v1/evaluations.py +6 -5
  101. phoenix/server/api/routers/v1/experiment_evaluations.py +2 -2
  102. phoenix/server/api/routers/v1/experiment_runs.py +2 -2
  103. phoenix/server/api/routers/v1/experiments.py +4 -4
  104. phoenix/server/api/routers/v1/spans.py +13 -12
  105. phoenix/server/api/routers/v1/traces.py +5 -5
  106. phoenix/server/api/routers/v1/utils.py +5 -5
  107. phoenix/server/api/schema.py +42 -10
  108. phoenix/server/api/subscriptions.py +347 -494
  109. phoenix/server/api/types/AnnotationSummary.py +3 -3
  110. phoenix/server/api/types/ChatCompletionSubscriptionPayload.py +44 -0
  111. phoenix/server/api/types/Cluster.py +8 -7
  112. phoenix/server/api/types/Dataset.py +5 -4
  113. phoenix/server/api/types/Dimension.py +3 -3
  114. phoenix/server/api/types/DocumentEvaluationSummary.py +8 -7
  115. phoenix/server/api/types/EmbeddingDimension.py +6 -5
  116. phoenix/server/api/types/EvaluationSummary.py +3 -3
  117. phoenix/server/api/types/Event.py +7 -7
  118. phoenix/server/api/types/Experiment.py +3 -3
  119. phoenix/server/api/types/ExperimentComparison.py +2 -4
  120. phoenix/server/api/types/GenerativeProvider.py +27 -3
  121. phoenix/server/api/types/Inferences.py +9 -8
  122. phoenix/server/api/types/InferencesRole.py +2 -2
  123. phoenix/server/api/types/Model.py +2 -2
  124. phoenix/server/api/types/Project.py +11 -18
  125. phoenix/server/api/types/Segments.py +3 -3
  126. phoenix/server/api/types/Span.py +45 -7
  127. phoenix/server/api/types/TemplateLanguage.py +9 -0
  128. phoenix/server/api/types/TimeSeries.py +8 -7
  129. phoenix/server/api/types/Trace.py +2 -2
  130. phoenix/server/api/types/UMAPPoints.py +6 -6
  131. phoenix/server/api/types/User.py +3 -3
  132. phoenix/server/api/types/node.py +1 -3
  133. phoenix/server/api/types/pagination.py +4 -4
  134. phoenix/server/api/utils.py +2 -4
  135. phoenix/server/app.py +76 -37
  136. phoenix/server/bearer_auth.py +4 -10
  137. phoenix/server/dml_event.py +3 -3
  138. phoenix/server/dml_event_handler.py +10 -24
  139. phoenix/server/grpc_server.py +3 -2
  140. phoenix/server/jwt_store.py +22 -21
  141. phoenix/server/main.py +17 -4
  142. phoenix/server/oauth2.py +3 -2
  143. phoenix/server/rate_limiters.py +5 -8
  144. phoenix/server/static/.vite/manifest.json +31 -31
  145. phoenix/server/static/assets/components-Csu8UKOs.js +1612 -0
  146. phoenix/server/static/assets/{index-DCzakdJq.js → index-Bk5C9EA7.js} +2 -2
  147. phoenix/server/static/assets/{pages-CAL1FDMt.js → pages-UeWaKXNs.js} +337 -442
  148. phoenix/server/static/assets/{vendor-6IcPAw_j.js → vendor-CtqfhlbC.js} +6 -6
  149. phoenix/server/static/assets/{vendor-arizeai-DRZuoyuF.js → vendor-arizeai-C_3SBz56.js} +2 -2
  150. phoenix/server/static/assets/{vendor-codemirror-DVE2_WBr.js → vendor-codemirror-wfdk9cjp.js} +1 -1
  151. phoenix/server/static/assets/{vendor-recharts-DwrexFA4.js → vendor-recharts-BiVnSv90.js} +1 -1
  152. phoenix/server/templates/index.html +1 -0
  153. phoenix/server/thread_server.py +1 -1
  154. phoenix/server/types.py +17 -29
  155. phoenix/services.py +8 -3
  156. phoenix/session/client.py +12 -24
  157. phoenix/session/data_extractor.py +3 -3
  158. phoenix/session/evaluation.py +1 -2
  159. phoenix/session/session.py +26 -21
  160. phoenix/trace/attributes.py +16 -28
  161. phoenix/trace/dsl/filter.py +17 -21
  162. phoenix/trace/dsl/helpers.py +3 -3
  163. phoenix/trace/dsl/query.py +13 -22
  164. phoenix/trace/fixtures.py +11 -17
  165. phoenix/trace/otel.py +5 -15
  166. phoenix/trace/projects.py +3 -2
  167. phoenix/trace/schemas.py +2 -2
  168. phoenix/trace/span_evaluations.py +9 -8
  169. phoenix/trace/span_json_decoder.py +3 -3
  170. phoenix/trace/span_json_encoder.py +2 -2
  171. phoenix/trace/trace_dataset.py +6 -5
  172. phoenix/trace/utils.py +6 -6
  173. phoenix/utilities/deprecation.py +3 -2
  174. phoenix/utilities/error_handling.py +3 -2
  175. phoenix/utilities/json.py +2 -1
  176. phoenix/utilities/logging.py +2 -2
  177. phoenix/utilities/project.py +1 -1
  178. phoenix/utilities/re.py +3 -4
  179. phoenix/utilities/template_formatters.py +16 -5
  180. phoenix/version.py +1 -1
  181. arize_phoenix-5.5.2.dist-info/RECORD +0 -321
  182. phoenix/server/static/assets/components-hX0LgYz3.js +0 -1428
  183. {arize_phoenix-5.5.2.dist-info → arize_phoenix-5.7.0.dist-info}/WHEEL +0 -0
  184. {arize_phoenix-5.5.2.dist-info → arize_phoenix-5.7.0.dist-info}/entry_points.txt +0 -0
  185. {arize_phoenix-5.5.2.dist-info → arize_phoenix-5.7.0.dist-info}/licenses/IP_NOTICE +0 -0
  186. {arize_phoenix-5.5.2.dist-info → arize_phoenix-5.7.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arize-phoenix
3
- Version: 5.5.2
3
+ Version: 5.7.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
@@ -23,16 +23,14 @@ Requires-Dist: arize-phoenix-evals>=0.13.1
23
23
  Requires-Dist: arize-phoenix-otel>=0.5.1
24
24
  Requires-Dist: authlib
25
25
  Requires-Dist: cachetools
26
- Requires-Dist: fast-hdbscan>=0.2.0
27
26
  Requires-Dist: fastapi
28
27
  Requires-Dist: grpc-interceptor
29
28
  Requires-Dist: grpcio
30
29
  Requires-Dist: httpx
31
30
  Requires-Dist: jinja2
32
- Requires-Dist: numba>=0.60.0
33
31
  Requires-Dist: numpy!=2.0.0
34
32
  Requires-Dist: openinference-instrumentation>=0.1.12
35
- Requires-Dist: openinference-semantic-conventions>=0.1.9
33
+ Requires-Dist: openinference-semantic-conventions>=0.1.12
36
34
  Requires-Dist: opentelemetry-exporter-otlp
37
35
  Requires-Dist: opentelemetry-proto>=1.12.0
38
36
  Requires-Dist: opentelemetry-sdk
@@ -51,7 +49,6 @@ Requires-Dist: starlette
51
49
  Requires-Dist: strawberry-graphql==0.243.1
52
50
  Requires-Dist: tqdm
53
51
  Requires-Dist: typing-extensions>=4.6
54
- Requires-Dist: umap-learn
55
52
  Requires-Dist: uvicorn
56
53
  Requires-Dist: websockets
57
54
  Requires-Dist: wrapt
@@ -86,7 +83,7 @@ Requires-Dist: jupyter; extra == 'dev'
86
83
  Requires-Dist: langchain>=0.0.334; extra == 'dev'
87
84
  Requires-Dist: litellm>=1.0.3; extra == 'dev'
88
85
  Requires-Dist: llama-index>=0.10.3; extra == 'dev'
89
- Requires-Dist: mypy==1.11.2; extra == 'dev'
86
+ Requires-Dist: mypy==1.12.1; extra == 'dev'
90
87
  Requires-Dist: nbqa; extra == 'dev'
91
88
  Requires-Dist: pandas-stubs==2.2.2.240603; extra == 'dev'
92
89
  Requires-Dist: pandas>=1.0; extra == 'dev'
@@ -193,7 +190,7 @@ Phoenix container images are available via [Docker Hub](https://hub.docker.com/r
193
190
  | [Data Export](https://docs.arize.com/phoenix/tracing/how-to-tracing/extract-data-from-spans) | ✅ |
194
191
  | REST API | ✅ |
195
192
  | GraphQL API | ✅ |
196
- | Data Retention | Costomizable |
193
+ | Data Retention | Customizable |
197
194
  | Authentication | ✅ |
198
195
  | Social Login | ✅ |
199
196
  | RBAC | ✅ |
@@ -0,0 +1,330 @@
1
+ phoenix/__init__.py,sha256=X3eUEwd2rG8KKWWYVNNDJoqo08ihfjgHhlP29dcdNJE,5481
2
+ phoenix/auth.py,sha256=JpkwJbis2INlIXWcQ-M_Nk5Ln9LBgHMdWNnaAQp0D2w,10940
3
+ phoenix/config.py,sha256=y-JvQJRtxO2BSrXdy4d6CSkpzV9dmfT6hKSUiWpBRws,24282
4
+ phoenix/datetime_utils.py,sha256=iJzNG6YJ6V7_u8B2iA7P2Z26FyxYbOPtx0dhJ7kNDHA,3398
5
+ phoenix/exceptions.py,sha256=n2L2KKuecrdflB9MsCdAYCiSEvGJptIsfRkXMoJle7A,169
6
+ phoenix/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
7
+ phoenix/services.py,sha256=kpW1WL0kiB8XJsO6XycvZVJ-lBkNoenhQ7atCvBoSe8,5365
8
+ phoenix/settings.py,sha256=ht-0oN-sMV6SPXrk7Tu1EZlngpAYkGNLYPhO8DyrdQI,661
9
+ phoenix/version.py,sha256=QmHMXVnw5DVPfWzvN7FS1tOhDAesdxpM_aVOh9CMuSk,22
10
+ phoenix/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
+ phoenix/core/embedding_dimension.py,sha256=zKGbcvwOXgLf-yrJBpQyKtd-LEOPRKHnUToyAU8Owis,87
12
+ phoenix/core/model.py,sha256=qBFraOtmwCCnWJltKNP18DDG0mULXigytlFsa6YOz6k,4837
13
+ phoenix/core/model_schema.py,sha256=9JChtyXtid0GzEYImDcNA8Ppk7jmCO5xC5dBIUMNYjE,50504
14
+ phoenix/core/model_schema_adapter.py,sha256=y1RXPYGt2HLTGpkB2X-XVQvRJXYGmJ9EL4m7TpOMvj0,8456
15
+ phoenix/db/README.md,sha256=Mjrq0tG68uKQ81mN1Vmu3C795EEpZndmnE6CJXsPCXE,1909
16
+ phoenix/db/__init__.py,sha256=pDjEFXukHmJBM-1D8RjmXkvLsz85YWNxMQczt81ec3A,118
17
+ phoenix/db/alembic.ini,sha256=GIS6HpHaKaJbbuahZg1Rc1D2_QqyCkV9r58wdARGf6w,3262
18
+ phoenix/db/bulk_inserter.py,sha256=faNjuwLqqsw4ky8sa4D0h9u5TvEDTOjrccUW89L008E,12725
19
+ phoenix/db/engines.py,sha256=BYFiHFGABtNuCo7OB8fLc46gMxur4rePK_sJxrMrMjA,6508
20
+ phoenix/db/enums.py,sha256=tt7iovXLhVTLZ3_LbHNGgcI44SnNjXfkKtLAZG57T54,428
21
+ phoenix/db/facilitator.py,sha256=Aulr9-sUvRn20Z7mjpWhW6TFE1amRzL8qSEjscvL-xw,4123
22
+ phoenix/db/helpers.py,sha256=jT9sADJ39EMC5mKKT-urEOwhIzPFCCWLjH95ti9yraY,3497
23
+ phoenix/db/migrate.py,sha256=lf6FFGzdyNjwtQ4TFi3mmHNGnnazMtG30PPB2qRF1Xc,2648
24
+ phoenix/db/models.py,sha256=wx2XQgf6qhUO2ZQ4oUENoAguf440qaR0Ea_q1XB1bBU,26484
25
+ phoenix/db/insertion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
+ phoenix/db/insertion/constants.py,sha256=8wifm7X-1XvroZ__R2Gc96NsgLhTDn0zXl4lehlXtcA,70
27
+ phoenix/db/insertion/dataset.py,sha256=I9OC1ouVx7m6BH_c8hvcxW1dWGRAtpvXee29yBTuFkg,7136
28
+ phoenix/db/insertion/document_annotation.py,sha256=vnszF9L0qHjUY-eWgBVRG5OTpz-ECs1BoCfy66ynzjo,5997
29
+ phoenix/db/insertion/evaluation.py,sha256=SoI85N3MYUSeNgjKa5WzFw14OfNjNTjExv-2m3sxaR8,6371
30
+ phoenix/db/insertion/helpers.py,sha256=-DyRcxzJnjSJFhscPoqiNiQn8fBvGqI8IcNJEu-79Vw,3455
31
+ phoenix/db/insertion/span.py,sha256=-CXn2LlEv2u7xbz7m8X5jALQ-BUNNzTxPJEzSmjhTpA,5958
32
+ phoenix/db/insertion/span_annotation.py,sha256=EtzcjS8GR2rDM_cxIQloGc2SZqfdrACyAPwvyFBa2Ac,5273
33
+ phoenix/db/insertion/trace_annotation.py,sha256=6yzWuU0Fh-mC-rJJ96rH0IYTJg1EQFnj-GZhUwolUKI,5338
34
+ phoenix/db/insertion/types.py,sha256=cWeBceyZZ3efLHKPjnPpVahrpX7-P8Bm_sdudWXkOek,8106
35
+ phoenix/db/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
+ phoenix/db/migrations/env.py,sha256=tFO3ceuCx9Es5_2w_BXclaQMmNQKNX21b1UEV5mYdeo,3387
37
+ phoenix/db/migrations/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
38
+ phoenix/db/migrations/versions/10460e46d750_datasets.py,sha256=3wftHgat1sEeKBl0EcQ24r_oOK_T-Tcmd2Loo73RVCs,8679
39
+ phoenix/db/migrations/versions/3be8647b87d8_add_token_columns_to_spans_table.py,sha256=GxuKD501WSx083uIv21GhJS0l4Xk3exovfycaGAxY30,3638
40
+ phoenix/db/migrations/versions/cd164e83824f_users_and_tokens.py,sha256=fkpmh5PgMZJiZpvLbZIaqlI2cucVpVbbNYpQ-Tznil8,5180
41
+ phoenix/db/migrations/versions/cf03bd6bae1d_init.py,sha256=lorqWUcujC0fsYIOriGZlZw2LKjS3nF34KHxi1fp_Z8,8646
42
+ phoenix/experiments/__init__.py,sha256=6JGwgUd7xCbGpuHqYZlsmErmYvVgv7N_j43bn3dUqsk,123
43
+ phoenix/experiments/functions.py,sha256=sMVrs_YJt7UzT2OjfaZNr0mXQbu7YhiF0-m_Xjh6sVA,32437
44
+ phoenix/experiments/tracing.py,sha256=seNh9rBH-rtQe8_FPI_VJj1rbo3ADcP6wDvERkMoxNc,2858
45
+ phoenix/experiments/types.py,sha256=Vcks1zXuqrdu4Dy1TaNVcPHktgQY7WYin9yqaP2vrek,23390
46
+ phoenix/experiments/utils.py,sha256=MZ1-OnTcavk_KUtbfGqt55Fk9TGtJpYG_K71WsN-zDk,785
47
+ phoenix/experiments/evaluators/__init__.py,sha256=j63fi3fa3U7-itVPHa82GowhjQRU-wO6yhO34u_lhsA,714
48
+ phoenix/experiments/evaluators/base.py,sha256=zefFLqyYLMxJnZxDs1S0QCrnb43YJraoadCMqRMU72A,5576
49
+ phoenix/experiments/evaluators/code_evaluators.py,sha256=JIu_8GezA3UKA7isUmZvBxjcJeXllIDESEgdF2zeDck,6755
50
+ phoenix/experiments/evaluators/llm_evaluators.py,sha256=6pvCWP1a3tLMyufaU_U8TkItJO2Q03hkEf7kcI8gdGY,20549
51
+ phoenix/experiments/evaluators/utils.py,sha256=W-k2bHL67ST-B7ne8t5LvCFHGBaKCPHbOv3x1SlDENU,9330
52
+ phoenix/inferences/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
+ phoenix/inferences/errors.py,sha256=AOsCs-xR1LV469Gygje16EOK3qGheiPGW0Ylg-MakhQ,8282
54
+ phoenix/inferences/fixtures.py,sha256=fessNJmbx1AUJLdwvf7UhXwzGMRfn7ZkDWK8YNWJSi8,20871
55
+ phoenix/inferences/inferences.py,sha256=_DatV-dDaC8GvxwendyPqX5ERqKtfWhjSJfFScwS3DY,31082
56
+ phoenix/inferences/schema.py,sha256=5c5_yNf37P0ZvzYwbMFr0NU5T81zAzoAoEfCJ-aHhTI,6651
57
+ phoenix/inferences/validation.py,sha256=k34fK5nwz8wBrmDQCySBKDZV2ViFsYLJrr1Jm1GqakQ,8273
58
+ phoenix/logging/__init__.py,sha256=94Xsv4tcqRghZhpuyCn4kWV7yJ56X52aXjrWU8RM4hY,64
59
+ phoenix/logging/_config.py,sha256=7z4fReUOJ1h3dFDuVcgSF-pXpqeVqbnV5sxFcVQla1k,2881
60
+ phoenix/logging/_filter.py,sha256=jr95RFp0mgCU5tqTYXp5MSDC-Wgc3UHgPbA9J4URSjo,158
61
+ phoenix/logging/_formatter.py,sha256=TNyDgE8Ns9EuSHi4UjEV5nxecqklB32kgGzWsM8Z80U,1771
62
+ phoenix/metrics/README.md,sha256=5gekqTU-5gGdMwvcfNp2Wlu8p1ul9kGY_jq0XXQusoI,1964
63
+ phoenix/metrics/__init__.py,sha256=-u1loMW9G3H0XU7ROGt-mLz6Eq9faQlLFFuG9Yu19MI,2438
64
+ phoenix/metrics/binning.py,sha256=dPa1rxf4VIyh4UICcSLwgVYCaZz0JojMJ6BL337aLuM,12766
65
+ phoenix/metrics/metrics.py,sha256=IMfLgaeZ13jo0zNb_96bLoK6dYaOOCSUmsOP5nVLfdQ,7934
66
+ phoenix/metrics/mixins.py,sha256=opSLWfW90GUIFmpxX4cyLs_1TmDPOGxCJWh6ZHBt2tc,7455
67
+ phoenix/metrics/retrieval_metrics.py,sha256=3kHk_cqOEonLT3UGEVIFN1n1EGODjKkPBFfd-OzvpD4,4411
68
+ phoenix/metrics/timeseries.py,sha256=Knw6mNodB2pkYFkHqYNZumDKsBbvWix6o2uyVj5Kt1U,6297
69
+ phoenix/metrics/wrappers.py,sha256=IB6ewohLJ1fwunUUpRVtd6md6aXCxFxkwFI1CNjzLY8,8373
70
+ phoenix/pointcloud/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
71
+ phoenix/pointcloud/clustering.py,sha256=Ss7LQHgCE7GZTztExiJ85F2K5iGKrRADkOquUjqj1tg,805
72
+ phoenix/pointcloud/pointcloud.py,sha256=SN_1wXZcwKrtSnHGZLDZGx71orqE1WyVF7E-D58dJeE,2202
73
+ phoenix/pointcloud/projectors.py,sha256=TQgwc9cJDjJkin1WZyZzgl3HsYrLLiyWD7Czy4jNW3U,1088
74
+ phoenix/pointcloud/umap_parameters.py,sha256=db_WEPoamuWtopZx7tQfAXPnoE0MS8FkAV0_ThjEx_Q,1735
75
+ phoenix/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
+ phoenix/server/app.py,sha256=feZL0fpIS6QuJQmoDl3yDhsDrl4-bsnhJfR3XuHxguQ,37247
77
+ phoenix/server/bearer_auth.py,sha256=0UudvkAS_dxna5JEJJhGUYwB6Ny-e22ssX5Mm79QwCk,5907
78
+ phoenix/server/dml_event.py,sha256=MjJmVEKytq75chBOSyvYDusUnEbg1pHpIjR3pZkUaJA,2838
79
+ phoenix/server/dml_event_handler.py,sha256=EZLXmCvx4pJrCkz29gxwKwmvmUkTtPCHw6klR-XM8qE,8258
80
+ phoenix/server/grpc_server.py,sha256=42KsTfHQiTnf1G9KKjn04I7KOjZXeamc4sMClwumMOk,3754
81
+ phoenix/server/jwt_store.py,sha256=asxzY4_ZBM2FWAMstHvhvnKUP_0AA3v3xPTL2IOgNqY,16831
82
+ phoenix/server/main.py,sha256=cJaJArrLof5ziFkpB_31TGTaiUK_YCh7_ROZRtrdZ-Q,16310
83
+ phoenix/server/oauth2.py,sha256=EV4wcCwG0N7cJRcfGNURdP5rZgRVCeRDvXyle19A27Y,2064
84
+ phoenix/server/prometheus.py,sha256=x9zV3M8VeZ9GS32SLr5OxNdi1VaxvdHCZPx2zI8Hoa4,3549
85
+ phoenix/server/rate_limiters.py,sha256=cFc73D2NaxqNZZDbwfIDw4So-fRVOJPBtqxOZ8Qky_s,7155
86
+ phoenix/server/telemetry.py,sha256=4EluDDrhdDPxAjaW6lVSbi73xkB5XeUCZWOmZGdk0hg,2755
87
+ phoenix/server/thread_server.py,sha256=Ea2AWreN1lwJsT2wYvGaRaiXrzBqH4kgkZpx0FO5Ocw,2144
88
+ phoenix/server/types.py,sha256=Ur73LKRB3VlvBDN95gKJoDIdmauuR-r1rpO1rNHm9kA,7209
89
+ phoenix/server/api/README.md,sha256=Pyq1PLPgTzXAswrfIhGXrjI3Skq8it2jTVnanT6Ba4Q,1162
90
+ phoenix/server/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
+ phoenix/server/api/auth.py,sha256=OhWmv_Hl-K-yhJeUWXKRYYiUOIPo-rYSQXdm4fjeTJ8,901
92
+ phoenix/server/api/context.py,sha256=g5tAYInMifMOdnGTlyfHdB7rDNlC9F2E5bU6IA_3Y0c,5337
93
+ phoenix/server/api/exceptions.py,sha256=TA0JuY2YRnj35qGuMSQ8d0ToHum9gWm9W--3fSKHrX0,1171
94
+ phoenix/server/api/interceptor.py,sha256=ykDnoC_apUd-llVli3m1CW18kNSIgjz2qZ6m5JmPDu8,1294
95
+ phoenix/server/api/queries.py,sha256=nOgrAygpl49y1a5V0O_y4SRNJ8dwgv_C7birrgkgRm4,27150
96
+ phoenix/server/api/schema.py,sha256=tHyw2jTbue_-gu0fe9Sw7LUYtzJUCwp9SvccDgOkNPw,1696
97
+ phoenix/server/api/subscriptions.py,sha256=o8uepfk9ofh4jsWQ5wbbiOJHcSkZozizNgF_9UtD6Pc,17323
98
+ phoenix/server/api/utils.py,sha256=quCBRcusc6PUq9tJq7M8PgwFZp7nXgVAxtbw8feribY,833
99
+ phoenix/server/api/dataloaders/__init__.py,sha256=jNYvfXjnZzgA2HWTG7AZdqWGla3ZysBUDUei8Zkz6N8,3290
100
+ phoenix/server/api/dataloaders/annotation_summaries.py,sha256=2sHmIDX7n8tuPeBTs9bMKtlMKWn_Ph9awTZqmwn2Owc,5505
101
+ phoenix/server/api/dataloaders/average_experiment_run_latency.py,sha256=GLFoFAbztOH-0FVzzZ77mATIO63UcjB50j3qXiNi-tE,1811
102
+ phoenix/server/api/dataloaders/dataset_example_revisions.py,sha256=YG2VSWOkM7q_-RO8OwE8bHYX8d3_OH34SeaD4pvEt0w,5115
103
+ phoenix/server/api/dataloaders/dataset_example_spans.py,sha256=z_MFquqAcJ9wat7BBp7MVeJ9BYuu2EZEdaog52iWDno,1390
104
+ phoenix/server/api/dataloaders/document_evaluation_summaries.py,sha256=9fdROnzp-mymggHwNvpRkCk93LUFxxLy55-j3HP_2HY,5565
105
+ phoenix/server/api/dataloaders/document_evaluations.py,sha256=KCnCItJ2DQOCHvxFp1KK2AStPN1akGlAGOEzEAu6c6I,1246
106
+ phoenix/server/api/dataloaders/document_retrieval_metrics.py,sha256=37EcAW7oYQuWYHMDHb0wcqbWj9lhSskvzDO7NJbT5Js,4136
107
+ phoenix/server/api/dataloaders/experiment_annotation_summaries.py,sha256=fFEjpJzUOhu_cJKQ-YnwEvtn8NDl6bPs-moERe-Bp04,2767
108
+ phoenix/server/api/dataloaders/experiment_error_rates.py,sha256=V4U_y16LwfBDksTZ4QP1dDALGSsQAQ1KcttKRE6lXto,1920
109
+ phoenix/server/api/dataloaders/experiment_run_annotations.py,sha256=uJ--9Ue4tnmZYH9Zy-Cj2Y2t3xzs2xUqN8Y6EGe1MCo,1296
110
+ phoenix/server/api/dataloaders/experiment_run_counts.py,sha256=j_7229IL705p_TycxIMYylhSgLHsAn91TiGPYXtOuQ8,1617
111
+ phoenix/server/api/dataloaders/experiment_sequence_number.py,sha256=zM_f78fnqhppLtevrx9iISQSN7w_BNeXT9CoX8jYgAI,1534
112
+ phoenix/server/api/dataloaders/latency_ms_quantile.py,sha256=CHWV9nvEEM3xqpXWubywtLtFLzbwyLU85EaP_kQajJU,7363
113
+ phoenix/server/api/dataloaders/min_start_or_max_end_times.py,sha256=1jYglTXv4S8k7OWSGdgeJ2OxVCmZtX8a6sjJp9GPZ04,2783
114
+ phoenix/server/api/dataloaders/project_by_name.py,sha256=O24Rjs0ZQaYtSnPfA6YBQfbHfUgNsHKUcc_gIKyK9vo,1086
115
+ phoenix/server/api/dataloaders/record_counts.py,sha256=NLlMEaJ-HxiJavqbSkMbzOrIRzqzYxO8-t2mfp1vXqM,4160
116
+ phoenix/server/api/dataloaders/span_annotations.py,sha256=y5TvxnljS2P3hm_NiQd24qy313AG76lyjcZFNWGls1A,1028
117
+ phoenix/server/api/dataloaders/span_dataset_examples.py,sha256=rpBStVP7ZMIH11Cpq4-zCJ4amNC5ZzX72NYv4vAQTdc,1255
118
+ phoenix/server/api/dataloaders/span_descendants.py,sha256=1NhD59micO9ozKTF85bFKVCqqsrfDzrK0e0nlg6QyvI,2051
119
+ phoenix/server/api/dataloaders/span_projects.py,sha256=JTfuKn2BBn72QdAP53ZGP2OUCgZJ7AzlzQAx8WivBog,1234
120
+ phoenix/server/api/dataloaders/token_counts.py,sha256=9BjumOJ8uCaQ8ZieJVoIP_zEnI38VxyBoB_ks8YrUYU,4629
121
+ phoenix/server/api/dataloaders/trace_row_ids.py,sha256=yFv752LmBmOnMYVaauU4v0Y660AnSGJCtD7O-UgKk9Q,1070
122
+ phoenix/server/api/dataloaders/user_roles.py,sha256=TvPWve38TlGFvaFkMeFvnnHBn1OMHUJTErRLeYrXR8I,1029
123
+ phoenix/server/api/dataloaders/users.py,sha256=Uh86Kny_xpqDdEvEklcTBUA_MELgu4Z0jgh45ZqTzXs,1075
124
+ phoenix/server/api/dataloaders/cache/__init__.py,sha256=SYoOM9n8FJaMdQarma5d1blu-jIg2GB8Shqg5ezSzZ8,106
125
+ phoenix/server/api/dataloaders/cache/two_tier_cache.py,sha256=cmo8FUT3E91R139IEzh4yCga-6nTamc5KPXAfMrzNDM,2315
126
+ phoenix/server/api/helpers/__init__.py,sha256=m2-xaSPqUiSs91k62JaRDjFNfl-1byxBfY-m_Vxw16U,272
127
+ phoenix/server/api/helpers/dataset_helpers.py,sha256=14mldZp9to3rr9BdvvoFqEwZHHV_k2e7jPm8q9z2OdQ,6896
128
+ phoenix/server/api/helpers/playground_clients.py,sha256=OGwoZfUX5RjdRoWD-_4Nr9wQocQcdOChDNn7riW5AX0,24641
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
131
+ phoenix/server/api/input_types/AddExamplesToDatasetInput.py,sha256=mIQz0S_z8YdrktKIY6RCvtNJ2yZF9pYvTGgasUsI-54,430
132
+ phoenix/server/api/input_types/AddSpansToDatasetInput.py,sha256=-StSstyMAVrba3tG1U30b-srkKCtu_svflQuSM19iJA,362
133
+ phoenix/server/api/input_types/ChatCompletionInput.py,sha256=g_5ARuwylt-uCVAsGyZPEVtidEQiOhbKakvDQsZumzw,1451
134
+ phoenix/server/api/input_types/ChatCompletionMessageInput.py,sha256=0_YQBcoOS3BBTluHIB68DSP8FGAn2D9ZAw-Ht-dkbAQ,822
135
+ phoenix/server/api/input_types/ClearProjectInput.py,sha256=cpPFRyQ3ffy2dLbCZgYpway-mCzhdm4QqnUg8caOBfQ,382
136
+ phoenix/server/api/input_types/ClusterInput.py,sha256=AfhuYYHlYgdMO6Ap8cLXqAp70S0Wutx-RTzZYetN62A,173
137
+ phoenix/server/api/input_types/Coordinates.py,sha256=meTwbIjwTfqx5DGD2DBlH9wQzdQVNM5a8x9dp1FfIgA,173
138
+ phoenix/server/api/input_types/CreateDatasetInput.py,sha256=Q3MwouIx9jTQBRWDju75iMQXEGJCrL4aD4ESQp771nc,248
139
+ phoenix/server/api/input_types/CreateSpanAnnotationInput.py,sha256=bKgT7bdA9-gYpJmqnMq9TEfjNDEYoldc17EjAglXVlU,474
140
+ phoenix/server/api/input_types/CreateTraceAnnotationInput.py,sha256=iSukKAxt-gTTykpkttse3MVOTD3AOk6fWD-N5PaZ2yY,476
141
+ phoenix/server/api/input_types/DataQualityMetricInput.py,sha256=LazvmQCCM5m9SDZTpyxQXO1rYF4cmsc3lsR2S9S65X4,1292
142
+ phoenix/server/api/input_types/DatasetExampleInput.py,sha256=9oJ6pCFxFd02IWJuK4YAUvz-jCgFGDUCDDb2--GAzCw,289
143
+ phoenix/server/api/input_types/DatasetSort.py,sha256=KDKjx5L8WFNwx7O-g1pDzCMMwY-ErgDd1_HkkZBAvCY,333
144
+ phoenix/server/api/input_types/DatasetVersionSort.py,sha256=w9HyP9rQKsZGiGc2f33ZNmiO9g7FN8r77T7GA85kb40,344
145
+ phoenix/server/api/input_types/DeleteAnnotationsInput.py,sha256=nuTcbeRt54XCYc87URI1_ZTTnIBK25EwRJCgNLJqvAM,141
146
+ phoenix/server/api/input_types/DeleteDatasetExamplesInput.py,sha256=Jx2jvH4PBGGa5O4jQPNCI7a8UtSW7BuyHvHGUoIlgeI,344
147
+ phoenix/server/api/input_types/DeleteDatasetInput.py,sha256=p7xjCyWnVCIXHnezmDiWhMq-DHcGv7ucp_O7s8fsiKE,127
148
+ phoenix/server/api/input_types/DeleteExperimentsInput.py,sha256=4d9N0vSLYbuysAamGoPUP_m8vdVhwrZmXoi2vhy_HdI,141
149
+ phoenix/server/api/input_types/DimensionFilter.py,sha256=eBYcn7ECSJQlEePvbStqkHBRicbIL4vEAzFJwX7bacQ,3137
150
+ phoenix/server/api/input_types/DimensionInput.py,sha256=Vfx5FmiMKey4-EHDQsQRPzSAMRJMN5oVMLDUl4NKAa8,164
151
+ phoenix/server/api/input_types/GenerativeModelInput.py,sha256=h_9dNkz-LBgOLKQ5_ijch4UNGiDb4x5CCC96WyverSg,551
152
+ phoenix/server/api/input_types/Granularity.py,sha256=PiOFWmSMs_w7ZZMNfEWPzIY6S6guI83Vy4NXXSEewGo,2310
153
+ phoenix/server/api/input_types/InvocationParameters.py,sha256=OA4xC2t33alV1Y57zeIgQImUEI_EHTl4vRLYRtjyNTM,5186
154
+ phoenix/server/api/input_types/PatchAnnotationInput.py,sha256=NWhkcbcGNPwfOYsN3wm5YFNNrSc5T-8Y5my74RK99HE,520
155
+ phoenix/server/api/input_types/PatchDatasetExamplesInput.py,sha256=_uMqkAInhLDvzUSASl6HgLNulTsekMcYzyd5J6LF90I,884
156
+ phoenix/server/api/input_types/PatchDatasetInput.py,sha256=OURtTVY8Z_oFEDtKwT1LCMaOK5D4QYo5TVQ6mDrex-g,328
157
+ phoenix/server/api/input_types/PerformanceMetricInput.py,sha256=fElsLTSEYYgGFGMYTEGcYid39tXUKFdV_JkdHavMcbA,591
158
+ phoenix/server/api/input_types/SpanAnnotationSort.py,sha256=T5pAGzmh4MiJp9JMAzNDByFVTczfw02FH4WFWwFezyI,361
159
+ phoenix/server/api/input_types/SpanSort.py,sha256=Dhvl8BIoV52yHoqntfOax_gUc15uH8ITI_00Ha7PvYc,5959
160
+ phoenix/server/api/input_types/TemplateOptions.py,sha256=BrKozr604QwthBdKhlsHbxJc5oZ7eHnwviVubW2i0jA,220
161
+ phoenix/server/api/input_types/TimeRange.py,sha256=yzx-gxj8mDeGLft1FzU_x1MVEgIG5Pt6-f8PUVDgipQ,522
162
+ phoenix/server/api/input_types/TraceAnnotationSort.py,sha256=BzwiUnMh2VsgQYnhDlbJ6ljHugqIS4YDUlYzvq_tl3o,365
163
+ phoenix/server/api/input_types/UserRoleInput.py,sha256=xxhFe0ITZOgRVEJbVem_W6F1Ip_H6xDENdQqMMx-kKE,129
164
+ phoenix/server/api/input_types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
+ phoenix/server/api/mutations/__init__.py,sha256=1wClieLNA3_Tin4Ah67rkrQvwSSZAdPU0EPsRiUxyAA,1103
166
+ phoenix/server/api/mutations/api_key_mutations.py,sha256=OmPipsmlQIb6DKvAgO58mZUwkYJihlJB2N4lTyeUlAA,6164
167
+ phoenix/server/api/mutations/chat_mutations.py,sha256=eaZcuiweiXb59ZstpkFO7SmTvVwV4H1IpRLvc-zTvko,13898
168
+ phoenix/server/api/mutations/dataset_mutations.py,sha256=siwsSmozKRIK8ZhPrfWl-GxKCL4lAmRPms862tG2KXY,27064
169
+ phoenix/server/api/mutations/experiment_mutations.py,sha256=p3CoLAa8nFPa3D759Y2A7De_PVJNGOL98mA3HoZBrRQ,3188
170
+ phoenix/server/api/mutations/export_events_mutations.py,sha256=xoDnVWC7eA_8wNQP0-oyiHojyUZ0EhVVSrsAnztetC0,3993
171
+ phoenix/server/api/mutations/project_mutations.py,sha256=KdcA3c6tgLZ8QhpIv37qJESTBPxs56SbfeYdDKzU7-8,2263
172
+ phoenix/server/api/mutations/span_annotations_mutations.py,sha256=kvIOUjHRA6wNMh-bLe5B6bRszMw77HyFp3bxHTOL3yU,5940
173
+ phoenix/server/api/mutations/trace_annotations_mutations.py,sha256=qwTnYt6A5BwXC7sn_TT0f2A2PO7M26C22aYMnA3MpYk,5915
174
+ phoenix/server/api/mutations/user_mutations.py,sha256=YWgg1t5P0XVdxOMrhWpRqsCWi8NQR2zxerzuITC-UrY,13311
175
+ phoenix/server/api/openapi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
+ phoenix/server/api/openapi/main.py,sha256=yKdzJYI4cxy_1mFcK4_7YObIcuRviBIfwNjB23RG14k,461
177
+ phoenix/server/api/openapi/schema.py,sha256=S1nPq4iR578fPESWDAHNv9nlgh_go6zwTalLkshoSKo,484
178
+ phoenix/server/api/routers/__init__.py,sha256=YIzHsIFOOXuCRbDkMUHx-McrANFJK5UfUn6a4BNIzmo,277
179
+ phoenix/server/api/routers/auth.py,sha256=T774FE5mqrfRSSYo1snpR5NIp3YzAJnsLsY9FJB9GCA,11164
180
+ phoenix/server/api/routers/embeddings.py,sha256=BpZGJee0pdL0W5Rp1L0b30dEtZTgJeVqXky8LgZ0ZXw,898
181
+ phoenix/server/api/routers/oauth2.py,sha256=1CaWIraW0BiMXJozfQOwl4CeaTt1vEMkM4-9CrDYXko,15829
182
+ phoenix/server/api/routers/utils.py,sha256=M41BoH-fl37izhRuN2aX7lWm7jOC20A_3uClv9TVUUY,583
183
+ phoenix/server/api/routers/v1/__init__.py,sha256=aLEHzzU8kQo4Oqsv2an35lH5VYUxAZQrcG7CXZA_Lx4,2214
184
+ phoenix/server/api/routers/v1/datasets.py,sha256=tNh0CxAvSkWh-_5AwisGN1degQlUNGU3uufGa7MIbOw,36985
185
+ phoenix/server/api/routers/v1/evaluations.py,sha256=g-Z5Dk33Epk7WrxlCyFsHHwneHvI2KI7x4Tb5nGw9m4,12648
186
+ phoenix/server/api/routers/v1/experiment_evaluations.py,sha256=1XuKqE5F6CC6R4kF4g4YdBtcYvch1rCk8Am5CGyqfJ4,4838
187
+ phoenix/server/api/routers/v1/experiment_runs.py,sha256=xKXhol1-G4zAFECAQK9lAjKtSJsvB0Bp6bAXJYqJ7eI,6387
188
+ phoenix/server/api/routers/v1/experiments.py,sha256=sBxOIE4k4eIt-sQ6lPo2HUv9Tf1aURXtTJTq8J-Rfto,11808
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
191
+ phoenix/server/api/routers/v1/traces.py,sha256=wK9WU60YBsZCGFi8h6QzXMyIQ1_e5WdkCGz4Ky2Gb-g,7787
192
+ phoenix/server/api/routers/v1/utils.py,sha256=mSs1luneS00f4o60pJeR8JcjP1NdF3Igh7fjAbOYF_U,3074
193
+ phoenix/server/api/types/Annotation.py,sha256=7Ym7iuVcbwHlw2yIRylz4nATAF_Cm-Z17qcjiooj1cc,751
194
+ phoenix/server/api/types/AnnotationSummary.py,sha256=Adg_tFla5lL2csDQeQwn58b8kTB_57hotAN6WLQCLzE,1512
195
+ phoenix/server/api/types/AnnotatorKind.py,sha256=rPgGdbN1Gvc109sGQ_ZH-gfJbp93V9wlarzTEJNtUwI,236
196
+ phoenix/server/api/types/ApiKey.py,sha256=76HIkWxyJqL3UjdMesX9l5y6XaD9QphwabXGQVY-MaQ,793
197
+ phoenix/server/api/types/AuthMethod.py,sha256=M25usT6FCNKi-QFMdtMqRjJVGfq1ACnVoSjHXGxfrUk,126
198
+ phoenix/server/api/types/ChatCompletionMessageRole.py,sha256=kmQOilOlVntlmqbaHkqXZuimfljfYaHc3kbo53uK8_0,227
199
+ phoenix/server/api/types/ChatCompletionSubscriptionPayload.py,sha256=IhpidX4CvWGi4nOLB2BHhueObTp0-wVLHTfxZEm1HQA,919
200
+ phoenix/server/api/types/Cluster.py,sha256=duX0pSC7P3YT1IztduuJtPsRj1x6oOOLfmWf2Y-FdEk,5699
201
+ phoenix/server/api/types/CreateDatasetPayload.py,sha256=R-6zCmuD0f76RU9Giu78xwTHlASQs6Aq8yzvX1Kxc3g,140
202
+ phoenix/server/api/types/DataQualityMetric.py,sha256=zRKsNvHBu-NdcsunuLhqFpZhi6ks-HMqA1PJD27jTak,590
203
+ phoenix/server/api/types/Dataset.py,sha256=1NACY8_s-TZGgTwv6pkFlYPJDy14EVcQlrjgNd7dQ_U,11732
204
+ phoenix/server/api/types/DatasetExample.py,sha256=5f7DO6jRec1G5jaJW5FrykFU9R07jDn8jxDkNbQX0Ek,3107
205
+ phoenix/server/api/types/DatasetExampleRevision.py,sha256=c-jWR6dTguEZTm54IMlFr0Ic84I3nefyDnZb7nF5hnI,874
206
+ phoenix/server/api/types/DatasetValues.py,sha256=7VbCOLlzOXpZN80-zYF2UGuafRcPsZF-8WQNc0YsKFc,1119
207
+ phoenix/server/api/types/DatasetVersion.py,sha256=NnDriqQUE20N_Jhyu3-IxHWJQE9wmdHEJIQAKyTVJpo,302
208
+ phoenix/server/api/types/Dimension.py,sha256=Yv1h_vGcPKXaTjl2jb9Agf1L9noTJ1YC092VUKItqDQ,10326
209
+ phoenix/server/api/types/DimensionDataType.py,sha256=o0QQRpUzgXbhd10drR2LthxrjB8klQcELrIvsbp4l_g,441
210
+ phoenix/server/api/types/DimensionShape.py,sha256=LNsRt3Uyx1OmwMa5EXk1JGRXPLVV2EEgYXz-6wnLJn4,562
211
+ phoenix/server/api/types/DimensionType.py,sha256=JLikZUBVqbHlUWcYYd8d60gB1_hmAcuFuZZsjCXpIwc,801
212
+ phoenix/server/api/types/DimensionWithValue.py,sha256=4_koirnDrZBBdFkIWka2f-OeqZ6IzQXwqz3ccjdgHrc,484
213
+ phoenix/server/api/types/DocumentEvaluationSummary.py,sha256=dx4Btlfw9_XsfmibjfWvMOvUfrvr9oGJq8jYmIL2o-Q,3494
214
+ phoenix/server/api/types/DocumentRetrievalMetrics.py,sha256=amkpC3H5IU5-9GvO0telpbq00m6lIcv_2v446OpwFwc,1822
215
+ phoenix/server/api/types/EmbeddingDimension.py,sha256=z0sfRdX1J0uVxJgWQkGhNUM73fskGGKYhlriR8FNGKA,19019
216
+ phoenix/server/api/types/EmbeddingMetadata.py,sha256=fJvNNYCbkf3SJalArLy9rcBq9Uj1SNac60zjqe1PFnM,461
217
+ phoenix/server/api/types/Evaluation.py,sha256=rLJptUSRUPPx9sdUyc4UPWxzkr9gcKtkpAS5Zi_EyFQ,2406
218
+ phoenix/server/api/types/EvaluationSummary.py,sha256=vILYejnfPvMwWEXOwhQZsANvYe3AdO2OkMR2rcgp1H4,1512
219
+ phoenix/server/api/types/Event.py,sha256=iYt_Jx1Roioo0vZ0iPeJTHcTu6NSm4ilVMJ-IMUHAKk,3970
220
+ phoenix/server/api/types/EventMetadata.py,sha256=-J0tYF9eZTHwCjwxQHY7Gckr2_MNW5OoWT1mydweZNM,635
221
+ phoenix/server/api/types/ExampleRevisionInterface.py,sha256=gV3Gt9-3Oi5wjaVtepC6nOt3FzTzZFD1KebNnqiw56E,294
222
+ phoenix/server/api/types/Experiment.py,sha256=hqqIwgeWoylOeBAMmQyzefn_p_COwxW0VqEGOqdcTpE,5470
223
+ phoenix/server/api/types/ExperimentAnnotationSummary.py,sha256=Uk3JtxIrsMoZT5tqc4nJdUOM3XegVzjUyoV3pkjNotE,256
224
+ phoenix/server/api/types/ExperimentComparison.py,sha256=cFQZy5rj_klzTV-3jnxIlkrCHXkW8gYnp5uSR1UWCzg,416
225
+ phoenix/server/api/types/ExperimentRun.py,sha256=LkR7fBRZ3nH57ZoHJwePTGtJYcTMM-EH5r1TVPiMyxg,2687
226
+ phoenix/server/api/types/ExperimentRunAnnotation.py,sha256=iBxDaD9DgiF-Qymp5QyxWfJRGYXM1_CeWA_qzsZBqkI,1812
227
+ phoenix/server/api/types/ExportedFile.py,sha256=e3GTn7B5LgsTbqiwjhMCQH7VsiqXitrBO4aCMS1lHsg,163
228
+ phoenix/server/api/types/Functionality.py,sha256=tzV9xdhB8zqfsjWxP66NDC7EZsplYkYO7jRbLWJIeeg,382
229
+ phoenix/server/api/types/GenerativeModel.py,sha256=P7eBUMXbeqaLwSSGBKdZy3a5gOLd9I0fuP8o1st6H08,193
230
+ phoenix/server/api/types/GenerativeProvider.py,sha256=67dwF-YRgp4_UnIJFnPV02a9yb4oiThiU71L63zi3qw,1101
231
+ phoenix/server/api/types/Inferences.py,sha256=wv88PjcK-KwnzmTdukiAX9EV2KX4GqsKXVAUm1JtnDA,3383
232
+ phoenix/server/api/types/InferencesRole.py,sha256=mLfeHpyhGUVX1-tWzT9IwC_cD18BZrD3RA4YsHYuSpA,595
233
+ phoenix/server/api/types/LabelFraction.py,sha256=zsDxdFALrNiGA1eNykeP8o65gbA0HOhRp54MPH_iRAM,93
234
+ phoenix/server/api/types/MimeType.py,sha256=Zpi6zCalkSFgsvhzvOs-O1gYA04usAi9H__QZUmFlO0,365
235
+ phoenix/server/api/types/Model.py,sha256=dirXGnOqLFNaOlXUwqyAjiJjcOrWpryO_5N6V0pAxtk,8045
236
+ phoenix/server/api/types/NumericRange.py,sha256=afEjgF97Go_OvmjMggbPBt-zGM8IONewAyEiKEHRds0,192
237
+ phoenix/server/api/types/PerformanceMetric.py,sha256=W92B7OghEOgzFvmY0LCqpgavHaQggTGshdgfD0yqHX4,350
238
+ phoenix/server/api/types/Project.py,sha256=tNTiDgbjUTVm45XxmMhHYSjqBI8WjHim9NZ69SfMA8w,13107
239
+ phoenix/server/api/types/PromptResponse.py,sha256=Q8HKtpp8GpUOcxPCzZpkkokidDd6u0aZOv_SuPZZd5Q,630
240
+ phoenix/server/api/types/Retrieval.py,sha256=OhMK2ncjoyp5h1yjKhjlKpoTbQrMHuxmgSFw-AO1rWw,285
241
+ phoenix/server/api/types/ScalarDriftMetricEnum.py,sha256=IUAcRPpgL41WdoIgK6cNk2Te38SspXGyEs-S1fY23_A,232
242
+ phoenix/server/api/types/Segments.py,sha256=vT2v0efoa5cuBKxLtxTnsUP5YJJCZfTloM71Spu0tMI,2915
243
+ phoenix/server/api/types/SortDir.py,sha256=OUpXhlCzCxPoXSDkJJygEs9Rw9pMymfaZUG5zPTrw4Y,152
244
+ phoenix/server/api/types/Span.py,sha256=kbUeDnuXdCDEpt2UAqyxj4Hz0JL53IbtDyamyeGgzJ4,16953
245
+ phoenix/server/api/types/SpanAnnotation.py,sha256=6b5G-b_OoRvDL2ayWk7MkbqarLK-F-pQMx21CpUuNGY,1168
246
+ phoenix/server/api/types/SystemApiKey.py,sha256=2ym8EgsTBIvxx1l9xZ-2YMovz58ZwYb_MaHBTJ9NH2E,166
247
+ phoenix/server/api/types/TemplateLanguage.py,sha256=9yxW3zGXgHPnA35svT4tznDyRKGuaz_WlbcpiUtC7Ec,142
248
+ phoenix/server/api/types/TimeSeries.py,sha256=IIeGVRFdSMozYXxPg736DW_mKvj4-3WjYSYEnn4UEJc,5241
249
+ phoenix/server/api/types/Trace.py,sha256=1RrdEedlPpNmWkQwosOZ81fabc9-B6PDHTYpr-hZj-Y,3240
250
+ phoenix/server/api/types/TraceAnnotation.py,sha256=OW6A2zr1gomOuG0XQe55dk15XXX2DSM0DzatRbHWH5A,1256
251
+ phoenix/server/api/types/UMAPPoints.py,sha256=49sWnxjcAJKRzqUY71Fa0tOPti5XjIIFT5cSg6oNu_U,1650
252
+ phoenix/server/api/types/User.py,sha256=iTVUrI8U6-asOhBt1bOZNtoRAaRNC4WHgR1Uv2rHnWQ,1975
253
+ phoenix/server/api/types/UserApiKey.py,sha256=EcsPNxV_PtgpqwA_bPTj_aRYt15l6X24YDy20hUPywU,1251
254
+ phoenix/server/api/types/UserRole.py,sha256=yjyVsA9mKo0tYEjK9pjtfDL2MZKvGyh_-Eednc88J64,342
255
+ phoenix/server/api/types/ValidationResult.py,sha256=pHwdYk4J7SJ5xhlWWHg_6qWkfk4rjOx-bSkGHvkDE3Q,142
256
+ phoenix/server/api/types/VectorDriftMetricEnum.py,sha256=etiJM5ZjQuD-oE7sY-FbdIKY050jk3IU49IMwmfJbEc,188
257
+ phoenix/server/api/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
258
+ phoenix/server/api/types/node.py,sha256=BLl_IOFr0zrqUxaAtGLGui5aeM5VNVXFTzGeAKrztr0,822
259
+ phoenix/server/api/types/pagination.py,sha256=BXm46gXZfrBS4hpiLvVSEdsbb29ctUMVJYjKXlOLxUA,9064
260
+ phoenix/server/email/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
261
+ phoenix/server/email/sender.py,sha256=Df-fZKbK_01KEkjo8UnDiYSuU69YfknyI1neZK_kmwA,3388
262
+ phoenix/server/email/types.py,sha256=URLIMwtQWbbDEKLWjZTw9snCxsfxqRyoXNyByttbVWE,213
263
+ phoenix/server/email/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
264
+ phoenix/server/email/templates/password_reset.html,sha256=jv0Pe-06JloPZcubRWxPdAFHYEn9eDj_4SjmuoIwshI,441
265
+ phoenix/server/openapi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
266
+ phoenix/server/static/apple-touch-icon-114x114.png,sha256=xtFVXAYQnJkpUApg2D1hltSTuyO4Is4sD4A0ZkikiVU,9486
267
+ phoenix/server/static/apple-touch-icon-120x120.png,sha256=iqZVAk634BbjJMozA8aHYyw15JjhIlIrG41FA2DFFaE,9957
268
+ phoenix/server/static/apple-touch-icon-144x144.png,sha256=VgARtkHKoU8zikb3_G83h_cb02kpPcoJqO78yRh1AfU,10047
269
+ phoenix/server/static/apple-touch-icon-152x152.png,sha256=h5V7TaMXOKRfDUfe8g0O1N_e3_SATgYd07-dc_Z9pBY,11082
270
+ phoenix/server/static/apple-touch-icon-180x180.png,sha256=JPyxl22IbYPMGa0UfJCA29XQ3QVkF9DjzxkLRVTlwpw,12052
271
+ phoenix/server/static/apple-touch-icon-72x72.png,sha256=o_bsxRdNE9J6ciqXSvd8aJmdOJ21nVBfWrkgvWj9dTQ,5221
272
+ phoenix/server/static/apple-touch-icon-76x76.png,sha256=CT_xT12I0u2i0WU8JzBZBuOQKRVuR1fNizdV68hi5Pk,5686
273
+ phoenix/server/static/apple-touch-icon.png,sha256=fOfpjqGpWYbJ0eAurKsyoZP1EAs6ZVooBJ_SGk2ZkDs,3801
274
+ phoenix/server/static/favicon.ico,sha256=bY0vvCKRftemZfPShwZtE93DiiQdaYaozkPGwNFr6H8,34494
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
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
285
+ phoenix/server/static/assets/vendor-three-DwGkEfCM.js,sha256=0D12ZgKzfKCTSdSTKJBFR2RZO_xxeMXrqDp0AszZqHY,620972
286
+ phoenix/server/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
287
+ phoenix/server/templates/index.html,sha256=ram6sfy2obf_F053ay35V30v-mnRWZ86rK-PstXLy1c,4457
288
+ phoenix/session/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
289
+ phoenix/session/client.py,sha256=0OpOTUnJ8IBzCK-coIxxusNJiuIInNeSDpxrTHiNhKc,33976
290
+ phoenix/session/data_extractor.py,sha256=Y0RzYFaNy9fQj8PEIeQ76TBZ90_E1FW7bXu3K5x0EZY,2782
291
+ phoenix/session/evaluation.py,sha256=Q3fOMNELvqkk-b6a6PKc8pDJdsNQ0ZbTpseUSA2NKqs,5300
292
+ phoenix/session/session.py,sha256=1HMKmN4Sn6W3szajitR5EQ130ia1HxIhTUB_tew6P00,27474
293
+ phoenix/trace/__init__.py,sha256=ujk_uYjM8gmm-YqnyXxF-kekfwid0bcaPMTtNNcaw6U,407
294
+ phoenix/trace/attributes.py,sha256=mHpOtdjGIs-VGSev_dwvxTeZTc9GILovi1Rdnj56HO0,12457
295
+ phoenix/trace/errors.py,sha256=wB1z8qdPckngdfU-TORToekvg3344oNFAA83_hC2yFY,180
296
+ phoenix/trace/evaluation_conventions.py,sha256=t8jydM3U0-T5YpiQKRJ3tWdWGlHtzKyttYdw-ddvPOk,1048
297
+ phoenix/trace/exporter.py,sha256=bUXh8fjJIbHurrnt4bAm-cCWqUN5FqNsIc8DZzzklkQ,4695
298
+ phoenix/trace/fixtures.py,sha256=bwDD0rgIRdAi_9zwLLipke50oYuKJvZLvhiGsuvnGbs,19169
299
+ phoenix/trace/otel.py,sha256=FZGzo0NPJqFBLkL_VmQeBne2z-LdHNPTz3oIZOuPPzQ,9997
300
+ phoenix/trace/projects.py,sha256=9dKv1aiKL4IYMFsg2xnC6EOIRO0YHtkR5o9ALHbMK9g,2178
301
+ phoenix/trace/schemas.py,sha256=0tghsJDaLKvSuxDDQGpUEQ0HkMsKmFWPO3lwJrJ9t84,5972
302
+ phoenix/trace/span_evaluations.py,sha256=9Z9i7KE7qCIwDb9nHmZp7UvDy_EP5rZmP4VP5h2GRNQ,13107
303
+ phoenix/trace/span_json_decoder.py,sha256=J1_oDViuUoC4vxPg61U4EOZC1uEMcCzoj-kVjOFEE8k,3224
304
+ phoenix/trace/span_json_encoder.py,sha256=Wa7RvQTZSsFG4pdKSSFSO_4q4DjAOQuG8wLNJvYzsfM,2004
305
+ phoenix/trace/trace_dataset.py,sha256=7XyCe_7WemBmAiHw0kigmwkC1gPSLeVBqtrRe9FpM6s,14490
306
+ phoenix/trace/utils.py,sha256=nlOmbF4n57s6qwZsMoeyEdfPHl6KE0fZM8V9aHaIR-I,1681
307
+ phoenix/trace/dsl/README.md,sha256=ihmP9zGUC5V-TDbzKla76LuyDqPDQIBUH2BORwxNI68,2902
308
+ phoenix/trace/dsl/__init__.py,sha256=WIQIjJg362XD3s50OsPJJ0xbDsGp41bSv7vDllLrPuA,144
309
+ phoenix/trace/dsl/filter.py,sha256=yCmQKvIh7SA5Q-bQ-MKMlYY34lZnG39MLEmL2A93MTw,30472
310
+ phoenix/trace/dsl/helpers.py,sha256=PskjbFzMPShsPV4xEtrO0u5HJKxKCrrJRI6psVGYGf8,3906
311
+ phoenix/trace/dsl/query.py,sha256=LTbCm4rOJdvF9ahW4au0y9VyeS4vw6qP8AzixhRopBs,30365
312
+ phoenix/trace/v1/__init__.py,sha256=-IbAD0ruESMjvQLvGAg9CTfjBUATFDx1OXseDPis6-0,88
313
+ phoenix/trace/v1/evaluation_pb2.py,sha256=8sXvv2BW_vqD30MOMbmkeE2zpmm7ncik21kl3e-HzeQ,2254
314
+ phoenix/trace/v1/evaluation_pb2.pyi,sha256=cCbbx06gwQmaH14s3J1X25TtaARh-k1abbxQdQCXGm8,4500
315
+ phoenix/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
316
+ phoenix/utilities/client.py,sha256=kr95EgpTJtCbb7CLoxC-KiyB2Wco03DZGIlcEmozHFs,5605
317
+ phoenix/utilities/deprecation.py,sha256=LL1LWfVqnYulceMQw2CggoIv8Uogrj7fAD_85devnoo,1067
318
+ phoenix/utilities/error_handling.py,sha256=5_ggfwmd0xZPoI3qi1fwm0x1F0i7g5j-gr0ny1TFzPU,1967
319
+ phoenix/utilities/json.py,sha256=SulN5hVUQUUebYhifuNvsYw1Eq8dVzRcP7Di6nr3uNM,2388
320
+ phoenix/utilities/logging.py,sha256=NKvX43jWITgSTtHGCi6l5xp8jTjtQ8FQ_irEi9ybOxg,502
321
+ phoenix/utilities/project.py,sha256=auVpARXkDb-JgeX5f2aStyFIkeKvGwN9l7qrFeJMVxI,445
322
+ phoenix/utilities/re.py,sha256=x8Xbk-Wa6qDMAtUd_7JtZvKtrYEuMY-bchB0n163_5c,2006
323
+ phoenix/utilities/span_store.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
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,,
phoenix/config.py CHANGED
@@ -6,7 +6,7 @@ from dataclasses import dataclass
6
6
  from datetime import timedelta
7
7
  from enum import Enum
8
8
  from pathlib import Path
9
- from typing import Dict, List, Optional, Tuple, overload
9
+ from typing import Optional, overload
10
10
  from urllib.parse import urlparse
11
11
 
12
12
  from phoenix.utilities.logging import log_a_list
@@ -80,6 +80,10 @@ ENV_LOG_MIGRATIONS = "PHOENIX_LOG_MIGRATIONS"
80
80
  """
81
81
  Whether or not to log migrations. Defaults to true.
82
82
  """
83
+ ENV_PHOENIX_ENABLE_WEBSOCKETS = "PHOENIX_ENABLE_WEBSOCKETS"
84
+ """
85
+ Whether or not to enable websockets. Defaults to None.
86
+ """
83
87
 
84
88
  # Phoenix server OpenTelemetry instrumentation environment variables
85
89
  ENV_PHOENIX_SERVER_INSTRUMENTATION_OTLP_TRACE_COLLECTOR_HTTP_ENDPOINT = (
@@ -142,6 +146,10 @@ ENV_PHOENIX_SMTP_VALIDATE_CERTS = "PHOENIX_SMTP_VALIDATE_CERTS"
142
146
  Whether to validate SMTP server certificates. Defaults to true.
143
147
  """
144
148
 
149
+ # FastAPI and GQL extension settings
150
+ ENV_PHOENIX_FASTAPI_MIDDLEWARE_PATHS = "PHOENIX_FASTAPI_MIDDLEWARE_PATHS"
151
+ ENV_PHOENIX_GQL_EXTENSION_PATHS = "PHOENIX_GQL_EXTENSION_PATHS"
152
+
145
153
 
146
154
  def server_instrumentation_is_enabled() -> bool:
147
155
  return bool(
@@ -273,7 +281,7 @@ def get_env_phoenix_api_key() -> Optional[str]:
273
281
  return os.environ.get(ENV_PHOENIX_API_KEY)
274
282
 
275
283
 
276
- def get_env_auth_settings() -> Tuple[bool, Optional[str]]:
284
+ def get_env_auth_settings() -> tuple[bool, Optional[str]]:
277
285
  """
278
286
  Gets auth settings and performs validation.
279
287
  """
@@ -329,8 +337,8 @@ def get_env_refresh_token_expiry() -> timedelta:
329
337
  return timedelta(minutes=minutes)
330
338
 
331
339
 
332
- def get_env_csrf_trusted_origins() -> List[str]:
333
- origins: List[str] = []
340
+ def get_env_csrf_trusted_origins() -> list[str]:
341
+ origins: list[str] = []
334
342
  if not (csrf_trusted_origins := os.getenv(ENV_PHOENIX_CSRF_TRUSTED_ORIGINS)):
335
343
  return origins
336
344
  for origin in csrf_trusted_origins.split(","):
@@ -371,6 +379,10 @@ def get_env_smtp_validate_certs() -> bool:
371
379
  return _bool_val(ENV_PHOENIX_SMTP_VALIDATE_CERTS, True)
372
380
 
373
381
 
382
+ def get_env_enable_websockets() -> Optional[bool]:
383
+ return _bool_val(ENV_PHOENIX_ENABLE_WEBSOCKETS)
384
+
385
+
374
386
  @dataclass(frozen=True)
375
387
  class OAuth2ClientConfig:
376
388
  idp_name: str
@@ -428,7 +440,7 @@ class OAuth2ClientConfig:
428
440
  )
429
441
 
430
442
 
431
- def get_env_oauth2_settings() -> List[OAuth2ClientConfig]:
443
+ def get_env_oauth2_settings() -> list[OAuth2ClientConfig]:
432
444
  """
433
445
  Get OAuth2 settings from environment variables.
434
446
  """
@@ -494,7 +506,7 @@ def ensure_working_dir() -> None:
494
506
  ensure_working_dir()
495
507
 
496
508
 
497
- def get_exported_files(directory: Path) -> List[Path]:
509
+ def get_exported_files(directory: Path) -> list[Path]:
498
510
  """
499
511
  Yields the list of paths of exported files.
500
512
 
@@ -505,7 +517,7 @@ def get_exported_files(directory: Path) -> List[Path]:
505
517
 
506
518
  Returns
507
519
  -------
508
- list: List[Path]
520
+ list: list[Path]
509
521
  List of paths of the exported files.
510
522
  """
511
523
  return list(directory.glob("*.parquet"))
@@ -584,7 +596,7 @@ def get_env_enable_prometheus() -> bool:
584
596
  )
585
597
 
586
598
 
587
- def get_env_client_headers() -> Optional[Dict[str, str]]:
599
+ def get_env_client_headers() -> Optional[dict[str, str]]:
588
600
  if headers_str := os.getenv(ENV_PHOENIX_CLIENT_HEADERS):
589
601
  return parse_env_headers(headers_str)
590
602
  return None
@@ -643,6 +655,36 @@ def get_env_db_logging_level() -> int:
643
655
  )
644
656
 
645
657
 
658
+ def get_env_fastapi_middleware_paths() -> list[tuple[str, str]]:
659
+ env_value = os.getenv("PHOENIX_FASTAPI_MIDDLEWARE_PATHS", "")
660
+ paths = []
661
+ for entry in env_value.split(","):
662
+ entry = entry.strip()
663
+ if entry:
664
+ if ":" not in entry:
665
+ raise ValueError(
666
+ f"Invalid middleware entry '{entry}'. Expected format 'file_path:ClassName'."
667
+ )
668
+ file_path, object_name = entry.split(":", 1)
669
+ paths.append((file_path.strip(), object_name.strip()))
670
+ return paths
671
+
672
+
673
+ def get_env_gql_extension_paths() -> list[tuple[str, str]]:
674
+ env_value = os.getenv("PHOENIX_GQL_EXTENSION_PATHS", "")
675
+ paths = []
676
+ for entry in env_value.split(","):
677
+ entry = entry.strip()
678
+ if entry:
679
+ if ":" not in entry:
680
+ raise ValueError(
681
+ f"Invalid extension entry '{entry}'. Expected format 'file_path:ClassName'."
682
+ )
683
+ file_path, object_name = entry.split(":", 1)
684
+ paths.append((file_path.strip(), object_name.strip()))
685
+ return paths
686
+
687
+
646
688
  def _get_logging_level(env_var: str, default_level: int) -> int:
647
689
  logging_level = os.getenv(env_var)
648
690
  if not logging_level:
phoenix/core/model.py CHANGED
@@ -1,4 +1,4 @@
1
- from typing import List, Optional, Union
1
+ from typing import Optional, Union
2
2
 
3
3
  from phoenix.inferences.inferences import Inferences
4
4
  from phoenix.inferences.schema import EmbeddingColumnNames, EmbeddingFeatures
@@ -8,8 +8,8 @@ from .embedding_dimension import EmbeddingDimension
8
8
 
9
9
  def _get_embedding_dimensions(
10
10
  primary_inferences: Inferences, reference_inferences: Optional[Inferences]
11
- ) -> List[EmbeddingDimension]:
12
- embedding_dimensions: List[EmbeddingDimension] = []
11
+ ) -> list[EmbeddingDimension]:
12
+ embedding_dimensions: list[EmbeddingDimension] = []
13
13
  embedding_features: EmbeddingFeatures = {}
14
14
 
15
15
  primary_embedding_features: Optional[EmbeddingFeatures] = (