arize-phoenix 5.1.1__tar.gz → 5.1.2__tar.gz

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 (336) hide show
  1. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/PKG-INFO +1 -1
  2. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/pyproject.toml +21 -4
  3. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/fixtures.py +1 -1
  4. arize_phoenix-5.1.2/src/phoenix/version.py +1 -0
  5. arize_phoenix-5.1.1/examples/manually-instrumented-chatbot/chat-service/chat/app.py +0 -227
  6. arize_phoenix-5.1.1/examples/manually-instrumented-chatbot/chat-service/chat/types.py +0 -25
  7. arize_phoenix-5.1.1/examples/manually-instrumented-chatbot/frontend/Dockerfile +0 -15
  8. arize_phoenix-5.1.1/examples/manually-instrumented-chatbot/frontend/Makefile +0 -20
  9. arize_phoenix-5.1.1/examples/manually-instrumented-chatbot/frontend/pyproject.toml +0 -24
  10. arize_phoenix-5.1.1/examples/manually-instrumented-chatbot/frontend/requirements.txt +0 -123
  11. arize_phoenix-5.1.1/examples/manually-instrumented-chatbot/frontend/schema.json +0 -149
  12. arize_phoenix-5.1.1/integration_tests/_helpers.py +0 -1023
  13. arize_phoenix-5.1.1/integration_tests/auth/conftest.py +0 -79
  14. arize_phoenix-5.1.1/integration_tests/auth/test_auth.py +0 -959
  15. arize_phoenix-5.1.1/integration_tests/conftest.py +0 -210
  16. arize_phoenix-5.1.1/integration_tests/mypy.ini +0 -3
  17. arize_phoenix-5.1.1/integration_tests/pytest.ini +0 -11
  18. arize_phoenix-5.1.1/integration_tests/requirements.txt +0 -12
  19. arize_phoenix-5.1.1/integration_tests/ruff.toml +0 -15
  20. arize_phoenix-5.1.1/integration_tests/server/test_launch_app.py +0 -36
  21. arize_phoenix-5.1.1/src/phoenix/server/email/templates/__init__.py +0 -0
  22. arize_phoenix-5.1.1/src/phoenix/server/openapi/__init__.py +0 -0
  23. arize_phoenix-5.1.1/src/phoenix/server/templates/__init__.py +0 -0
  24. arize_phoenix-5.1.1/src/phoenix/session/__init__.py +0 -0
  25. arize_phoenix-5.1.1/src/phoenix/utilities/__init__.py +0 -0
  26. arize_phoenix-5.1.1/src/phoenix/version.py +0 -1
  27. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/.gitignore +0 -0
  28. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/IP_NOTICE +0 -0
  29. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/LICENSE +0 -0
  30. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/README.md +0 -0
  31. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/__init__.py +0 -0
  32. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/auth.py +0 -0
  33. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/config.py +0 -0
  34. {arize_phoenix-5.1.1/examples/manually-instrumented-chatbot/chat-service/chat → arize_phoenix-5.1.2/src/phoenix/core}/__init__.py +0 -0
  35. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/core/embedding_dimension.py +0 -0
  36. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/core/model.py +0 -0
  37. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/core/model_schema.py +0 -0
  38. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/core/model_schema_adapter.py +0 -0
  39. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/datetime_utils.py +0 -0
  40. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/README.md +0 -0
  41. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/__init__.py +0 -0
  42. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/alembic.ini +0 -0
  43. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/bulk_inserter.py +0 -0
  44. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/engines.py +0 -0
  45. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/enums.py +0 -0
  46. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/facilitator.py +0 -0
  47. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/helpers.py +0 -0
  48. {arize_phoenix-5.1.1/examples/manually-instrumented-chatbot/frontend → arize_phoenix-5.1.2/src/phoenix/db/insertion}/__init__.py +0 -0
  49. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/insertion/constants.py +0 -0
  50. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/insertion/dataset.py +0 -0
  51. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/insertion/document_annotation.py +0 -0
  52. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/insertion/evaluation.py +0 -0
  53. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/insertion/helpers.py +0 -0
  54. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/insertion/span.py +0 -0
  55. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/insertion/span_annotation.py +0 -0
  56. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/insertion/trace_annotation.py +0 -0
  57. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/insertion/types.py +0 -0
  58. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/migrate.py +0 -0
  59. {arize_phoenix-5.1.1/integration_tests → arize_phoenix-5.1.2/src/phoenix/db/migrations}/__init__.py +0 -0
  60. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/migrations/env.py +0 -0
  61. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/migrations/script.py.mako +0 -0
  62. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/migrations/versions/10460e46d750_datasets.py +0 -0
  63. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/migrations/versions/3be8647b87d8_add_token_columns_to_spans_table.py +0 -0
  64. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/migrations/versions/cd164e83824f_users_and_tokens.py +0 -0
  65. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/migrations/versions/cf03bd6bae1d_init.py +0 -0
  66. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/db/models.py +0 -0
  67. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/exceptions.py +0 -0
  68. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/experiments/__init__.py +0 -0
  69. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/experiments/evaluators/__init__.py +0 -0
  70. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/experiments/evaluators/base.py +0 -0
  71. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/experiments/evaluators/code_evaluators.py +0 -0
  72. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/experiments/evaluators/llm_evaluators.py +0 -0
  73. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/experiments/evaluators/utils.py +0 -0
  74. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/experiments/functions.py +0 -0
  75. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/experiments/tracing.py +0 -0
  76. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/experiments/types.py +0 -0
  77. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/experiments/utils.py +0 -0
  78. {arize_phoenix-5.1.1/integration_tests/auth → arize_phoenix-5.1.2/src/phoenix/inferences}/__init__.py +0 -0
  79. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/inferences/errors.py +0 -0
  80. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/inferences/fixtures.py +0 -0
  81. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/inferences/inferences.py +0 -0
  82. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/inferences/schema.py +0 -0
  83. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/inferences/validation.py +0 -0
  84. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/logging/__init__.py +0 -0
  85. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/logging/_config.py +0 -0
  86. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/logging/_filter.py +0 -0
  87. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/logging/_formatter.py +0 -0
  88. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/metrics/README.md +0 -0
  89. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/metrics/__init__.py +0 -0
  90. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/metrics/binning.py +0 -0
  91. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/metrics/metrics.py +0 -0
  92. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/metrics/mixins.py +0 -0
  93. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/metrics/retrieval_metrics.py +0 -0
  94. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/metrics/timeseries.py +0 -0
  95. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/metrics/wrappers.py +0 -0
  96. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/pointcloud/__init__.py +0 -0
  97. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/pointcloud/clustering.py +0 -0
  98. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/pointcloud/pointcloud.py +0 -0
  99. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/pointcloud/projectors.py +0 -0
  100. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/pointcloud/umap_parameters.py +0 -0
  101. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/py.typed +0 -0
  102. {arize_phoenix-5.1.1/integration_tests → arize_phoenix-5.1.2/src/phoenix}/server/__init__.py +0 -0
  103. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/README.md +0 -0
  104. {arize_phoenix-5.1.1/src/phoenix/core → arize_phoenix-5.1.2/src/phoenix/server/api}/__init__.py +0 -0
  105. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/auth.py +0 -0
  106. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/context.py +0 -0
  107. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/__init__.py +0 -0
  108. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/annotation_summaries.py +0 -0
  109. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/average_experiment_run_latency.py +0 -0
  110. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/cache/__init__.py +0 -0
  111. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/cache/two_tier_cache.py +0 -0
  112. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/dataset_example_revisions.py +0 -0
  113. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/dataset_example_spans.py +0 -0
  114. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/document_evaluation_summaries.py +0 -0
  115. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/document_evaluations.py +0 -0
  116. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/document_retrieval_metrics.py +0 -0
  117. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/experiment_annotation_summaries.py +0 -0
  118. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/experiment_error_rates.py +0 -0
  119. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/experiment_run_annotations.py +0 -0
  120. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/experiment_run_counts.py +0 -0
  121. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/experiment_sequence_number.py +0 -0
  122. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/latency_ms_quantile.py +0 -0
  123. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/min_start_or_max_end_times.py +0 -0
  124. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/project_by_name.py +0 -0
  125. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/record_counts.py +0 -0
  126. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/span_annotations.py +0 -0
  127. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/span_dataset_examples.py +0 -0
  128. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/span_descendants.py +0 -0
  129. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/span_projects.py +0 -0
  130. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/token_counts.py +0 -0
  131. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/trace_row_ids.py +0 -0
  132. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/user_roles.py +0 -0
  133. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/dataloaders/users.py +0 -0
  134. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/exceptions.py +0 -0
  135. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/helpers/__init__.py +0 -0
  136. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/helpers/dataset_helpers.py +0 -0
  137. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/AddExamplesToDatasetInput.py +0 -0
  138. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/AddSpansToDatasetInput.py +0 -0
  139. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/ClearProjectInput.py +0 -0
  140. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/ClusterInput.py +0 -0
  141. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/Coordinates.py +0 -0
  142. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/CreateDatasetInput.py +0 -0
  143. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/CreateSpanAnnotationInput.py +0 -0
  144. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/CreateTraceAnnotationInput.py +0 -0
  145. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/DataQualityMetricInput.py +0 -0
  146. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/DatasetExampleInput.py +0 -0
  147. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/DatasetSort.py +0 -0
  148. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/DatasetVersionSort.py +0 -0
  149. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/DeleteAnnotationsInput.py +0 -0
  150. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/DeleteDatasetExamplesInput.py +0 -0
  151. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/DeleteDatasetInput.py +0 -0
  152. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/DeleteExperimentsInput.py +0 -0
  153. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/DimensionFilter.py +0 -0
  154. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/DimensionInput.py +0 -0
  155. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/Granularity.py +0 -0
  156. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/PatchAnnotationInput.py +0 -0
  157. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/PatchDatasetExamplesInput.py +0 -0
  158. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/PatchDatasetInput.py +0 -0
  159. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/PerformanceMetricInput.py +0 -0
  160. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/SpanAnnotationSort.py +0 -0
  161. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/SpanSort.py +0 -0
  162. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/TimeRange.py +0 -0
  163. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/TraceAnnotationSort.py +0 -0
  164. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/input_types/UserRoleInput.py +0 -0
  165. {arize_phoenix-5.1.1/src/phoenix/db/insertion → arize_phoenix-5.1.2/src/phoenix/server/api/input_types}/__init__.py +0 -0
  166. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/interceptor.py +0 -0
  167. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/mutations/__init__.py +0 -0
  168. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/mutations/api_key_mutations.py +0 -0
  169. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/mutations/dataset_mutations.py +0 -0
  170. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/mutations/experiment_mutations.py +0 -0
  171. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/mutations/export_events_mutations.py +0 -0
  172. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/mutations/project_mutations.py +0 -0
  173. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/mutations/span_annotations_mutations.py +0 -0
  174. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/mutations/trace_annotations_mutations.py +0 -0
  175. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/mutations/user_mutations.py +0 -0
  176. {arize_phoenix-5.1.1/src/phoenix/db/migrations → arize_phoenix-5.1.2/src/phoenix/server/api/openapi}/__init__.py +0 -0
  177. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/openapi/main.py +0 -0
  178. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/openapi/schema.py +0 -0
  179. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/queries.py +0 -0
  180. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/routers/__init__.py +0 -0
  181. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/routers/auth.py +0 -0
  182. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/routers/embeddings.py +0 -0
  183. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/routers/oauth2.py +0 -0
  184. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/routers/utils.py +0 -0
  185. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/routers/v1/__init__.py +0 -0
  186. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/routers/v1/datasets.py +0 -0
  187. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/routers/v1/evaluations.py +0 -0
  188. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/routers/v1/experiment_evaluations.py +0 -0
  189. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/routers/v1/experiment_runs.py +0 -0
  190. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/routers/v1/experiments.py +0 -0
  191. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/routers/v1/pydantic_compat.py +0 -0
  192. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/routers/v1/spans.py +0 -0
  193. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/routers/v1/traces.py +0 -0
  194. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/routers/v1/utils.py +0 -0
  195. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/schema.py +0 -0
  196. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/Annotation.py +0 -0
  197. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/AnnotationSummary.py +0 -0
  198. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/AnnotatorKind.py +0 -0
  199. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/ApiKey.py +0 -0
  200. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/AuthMethod.py +0 -0
  201. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/Cluster.py +0 -0
  202. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/CreateDatasetPayload.py +0 -0
  203. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/DataQualityMetric.py +0 -0
  204. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/Dataset.py +0 -0
  205. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/DatasetExample.py +0 -0
  206. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/DatasetExampleRevision.py +0 -0
  207. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/DatasetValues.py +0 -0
  208. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/DatasetVersion.py +0 -0
  209. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/Dimension.py +0 -0
  210. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/DimensionDataType.py +0 -0
  211. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/DimensionShape.py +0 -0
  212. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/DimensionType.py +0 -0
  213. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/DimensionWithValue.py +0 -0
  214. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/DocumentEvaluationSummary.py +0 -0
  215. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/DocumentRetrievalMetrics.py +0 -0
  216. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/EmbeddingDimension.py +0 -0
  217. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/EmbeddingMetadata.py +0 -0
  218. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/Evaluation.py +0 -0
  219. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/EvaluationSummary.py +0 -0
  220. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/Event.py +0 -0
  221. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/EventMetadata.py +0 -0
  222. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/ExampleRevisionInterface.py +0 -0
  223. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/Experiment.py +0 -0
  224. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/ExperimentAnnotationSummary.py +0 -0
  225. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/ExperimentComparison.py +0 -0
  226. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/ExperimentRun.py +0 -0
  227. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/ExperimentRunAnnotation.py +0 -0
  228. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/ExportedFile.py +0 -0
  229. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/Functionality.py +0 -0
  230. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/Inferences.py +0 -0
  231. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/InferencesRole.py +0 -0
  232. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/LabelFraction.py +0 -0
  233. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/MimeType.py +0 -0
  234. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/Model.py +0 -0
  235. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/NumericRange.py +0 -0
  236. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/PerformanceMetric.py +0 -0
  237. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/Project.py +0 -0
  238. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/PromptResponse.py +0 -0
  239. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/Retrieval.py +0 -0
  240. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py +0 -0
  241. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/Segments.py +0 -0
  242. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/SortDir.py +0 -0
  243. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/Span.py +0 -0
  244. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/SpanAnnotation.py +0 -0
  245. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/SystemApiKey.py +0 -0
  246. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/TimeSeries.py +0 -0
  247. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/Trace.py +0 -0
  248. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/TraceAnnotation.py +0 -0
  249. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/UMAPPoints.py +0 -0
  250. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/User.py +0 -0
  251. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/UserApiKey.py +0 -0
  252. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/UserRole.py +0 -0
  253. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/ValidationResult.py +0 -0
  254. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/VectorDriftMetricEnum.py +0 -0
  255. {arize_phoenix-5.1.1/src/phoenix/inferences → arize_phoenix-5.1.2/src/phoenix/server/api/types}/__init__.py +0 -0
  256. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/node.py +0 -0
  257. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/types/pagination.py +0 -0
  258. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/api/utils.py +0 -0
  259. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/app.py +0 -0
  260. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/bearer_auth.py +0 -0
  261. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/dml_event.py +0 -0
  262. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/dml_event_handler.py +0 -0
  263. {arize_phoenix-5.1.1/src/phoenix/server → arize_phoenix-5.1.2/src/phoenix/server/email}/__init__.py +0 -0
  264. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/email/sender.py +0 -0
  265. {arize_phoenix-5.1.1/src/phoenix/server/api → arize_phoenix-5.1.2/src/phoenix/server/email/templates}/__init__.py +0 -0
  266. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/email/templates/password_reset.html +0 -0
  267. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/email/types.py +0 -0
  268. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/grpc_server.py +0 -0
  269. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/jwt_store.py +0 -0
  270. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/main.py +0 -0
  271. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/oauth2.py +0 -0
  272. {arize_phoenix-5.1.1/src/phoenix/server/api/input_types → arize_phoenix-5.1.2/src/phoenix/server/openapi}/__init__.py +0 -0
  273. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/prometheus.py +0 -0
  274. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/rate_limiters.py +0 -0
  275. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/.vite/manifest.json +0 -0
  276. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/apple-touch-icon-114x114.png +0 -0
  277. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/apple-touch-icon-120x120.png +0 -0
  278. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/apple-touch-icon-144x144.png +0 -0
  279. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/apple-touch-icon-152x152.png +0 -0
  280. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/apple-touch-icon-180x180.png +0 -0
  281. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/apple-touch-icon-72x72.png +0 -0
  282. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/apple-touch-icon-76x76.png +0 -0
  283. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/apple-touch-icon.png +0 -0
  284. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/assets/components-REunxTt6.js +0 -0
  285. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/assets/index-DAPJxlCw.js +0 -0
  286. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/assets/pages-1VrMk2pW.js +0 -0
  287. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/assets/vendor-B5IC0ivG.js +0 -0
  288. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/assets/vendor-DxkFTwjz.css +0 -0
  289. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/assets/vendor-arizeai-aFbT4kl1.js +0 -0
  290. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/assets/vendor-codemirror-BEGorXSV.js +0 -0
  291. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/assets/vendor-recharts-6nUU7gU_.js +0 -0
  292. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/assets/vendor-three-DwGkEfCM.js +0 -0
  293. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/favicon.ico +0 -0
  294. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/static/modernizr.js +0 -0
  295. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/telemetry.py +0 -0
  296. {arize_phoenix-5.1.1/src/phoenix/server/api/openapi → arize_phoenix-5.1.2/src/phoenix/server/templates}/__init__.py +0 -0
  297. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/templates/index.html +0 -0
  298. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/thread_server.py +0 -0
  299. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/server/types.py +0 -0
  300. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/services.py +0 -0
  301. {arize_phoenix-5.1.1/src/phoenix/server/api/types → arize_phoenix-5.1.2/src/phoenix/session}/__init__.py +0 -0
  302. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/session/client.py +0 -0
  303. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/session/data_extractor.py +0 -0
  304. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/session/evaluation.py +0 -0
  305. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/session/session.py +0 -0
  306. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/settings.py +0 -0
  307. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/__init__.py +0 -0
  308. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/attributes.py +0 -0
  309. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/dsl/README.md +0 -0
  310. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/dsl/__init__.py +0 -0
  311. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/dsl/filter.py +0 -0
  312. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/dsl/helpers.py +0 -0
  313. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/dsl/query.py +0 -0
  314. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/errors.py +0 -0
  315. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/evaluation_conventions.py +0 -0
  316. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/exporter.py +0 -0
  317. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/otel.py +0 -0
  318. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/projects.py +0 -0
  319. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/schemas.py +0 -0
  320. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/span_evaluations.py +0 -0
  321. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/span_json_decoder.py +0 -0
  322. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/span_json_encoder.py +0 -0
  323. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/trace_dataset.py +0 -0
  324. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/utils.py +0 -0
  325. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/v1/__init__.py +0 -0
  326. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/v1/evaluation_pb2.py +0 -0
  327. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/trace/v1/evaluation_pb2.pyi +0 -0
  328. {arize_phoenix-5.1.1/src/phoenix/server/email → arize_phoenix-5.1.2/src/phoenix/utilities}/__init__.py +0 -0
  329. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/utilities/client.py +0 -0
  330. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/utilities/deprecation.py +0 -0
  331. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/utilities/error_handling.py +0 -0
  332. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/utilities/json.py +0 -0
  333. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/utilities/logging.py +0 -0
  334. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/utilities/project.py +0 -0
  335. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/utilities/re.py +0 -0
  336. {arize_phoenix-5.1.1 → arize_phoenix-5.1.2}/src/phoenix/utilities/span_store.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: arize-phoenix
3
- Version: 5.1.1
3
+ Version: 5.1.2
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
@@ -146,15 +146,32 @@ build-backend = "hatchling.build"
146
146
 
147
147
  [tool.hatch.build.targets.wheel]
148
148
  packages = ["src/phoenix"]
149
- exclude = ["src/phoenix/evals/"]
150
- artifacts = ["src/phoenix/server/static", "src/phoenix/db/migrations"]
149
+ exclude = [
150
+ "src/phoenix/evals/",
151
+ "src/phoenix/otel/",
152
+ ]
153
+ artifacts = [
154
+ "src/phoenix/server/static",
155
+ "src/phoenix/db/migrations",
156
+ ]
151
157
 
152
158
  [tool.hatch.build]
153
159
  only-packages = true
154
160
 
155
161
  [tool.hatch.build.targets.sdist]
156
- exclude = ["src/phoenix/evals/", "packages/"]
157
- artifacts = ["src/phoenix/server/static", "src/phoenix/db/migrations"]
162
+ exclude = [
163
+ "packages/",
164
+ "src/phoenix/evals/",
165
+ "src/phoenix/otel/",
166
+ "tests/",
167
+ "integration_tests/",
168
+ "scripts/",
169
+ "examples/",
170
+ ]
171
+ artifacts = [
172
+ "src/phoenix/server/static",
173
+ "src/phoenix/db/migrations",
174
+ ]
158
175
 
159
176
  [tool.hatch.envs.default]
160
177
  dependencies = [
@@ -156,7 +156,7 @@ demo_langgraph_agent_fixture = TracesFixture(
156
156
  name="demo_langgraph_agent",
157
157
  project_name="demo_langgraph_agent",
158
158
  description="Shows traces captured from a Langgraph agent.",
159
- file_name="langgraph-demo-traces.parquet",
159
+ file_name="langgraph-demo-traces-format-updated.parquet",
160
160
  )
161
161
 
162
162
  demo_llamaindex_workflows_agent_fixture = TracesFixture(
@@ -0,0 +1 @@
1
+ __version__ = "5.1.2"
@@ -1,227 +0,0 @@
1
- import json
2
- import os
3
- import warnings
4
- from typing import Any, Dict, Iterator, List, Tuple
5
- from uuid import uuid4
6
-
7
- from fastapi import FastAPI, HTTPException
8
- from httpx import AsyncClient, ConnectError
9
- from openinference.semconv.trace import (
10
- MessageAttributes,
11
- OpenInferenceMimeTypeValues,
12
- OpenInferenceSpanKindValues,
13
- SpanAttributes,
14
- )
15
- from opentelemetry import trace as trace_api
16
- from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
17
- from opentelemetry.sdk import trace as trace_sdk
18
- from opentelemetry.sdk.trace.export import (
19
- SimpleSpanProcessor,
20
- )
21
-
22
- from chat.types import FeedbackRequest, Message, MessagesPayload, MessagesResponse
23
-
24
- COLLECTOR_HOST = os.getenv("COLLECTOR_HOST", "localhost")
25
- endpoint = f"http://{COLLECTOR_HOST}:6006/v1"
26
- tracer_provider = trace_sdk.TracerProvider()
27
- tracer_provider.add_span_processor(
28
- SimpleSpanProcessor(OTLPSpanExporter(f"{endpoint}/traces"))
29
- )
30
- trace_api.set_tracer_provider(tracer_provider)
31
- tracer = trace_api.get_tracer(__name__)
32
-
33
-
34
- def getenv_or_raise(key: str) -> str:
35
- if not (value := os.getenv(key)):
36
- raise ValueError(f"Please set the {key} environment variable.")
37
- return value
38
-
39
-
40
- OPENAI_API_KEY = getenv_or_raise("OPENAI_API_KEY")
41
- OPENAI_API_URL = "https://api.openai.com/v1/chat/completions"
42
- OPENAI_MODEL = "gpt-4"
43
-
44
- http_client = AsyncClient()
45
- app = FastAPI()
46
-
47
-
48
- class OpenAIException(HTTPException):
49
- pass
50
-
51
-
52
- @app.post("/messages/")
53
- async def messages(messages_payload: MessagesPayload) -> MessagesResponse:
54
- messages = messages_payload.messages
55
- invocation_parameters = {"temperature": 0.1}
56
- openai_payload = {
57
- "model": OPENAI_MODEL,
58
- **invocation_parameters,
59
- "messages": [message.model_dump() for message in messages],
60
- }
61
- with tracer.start_as_current_span("OpenAI Async Chat Completion") as span:
62
- for attribute_key, attribute_value in (
63
- *_llm_span_kind_attributes(),
64
- *_llm_model_name_attributes(OPENAI_MODEL),
65
- *_llm_invocation_parameters_attributes(invocation_parameters),
66
- *_input_attributes(openai_payload),
67
- *_llm_input_messages_attributes(messages),
68
- ):
69
- span.set_attribute(attribute_key, attribute_value)
70
- response = await http_client.post(
71
- OPENAI_API_URL,
72
- headers={
73
- "Content-Type": "application/json",
74
- "Authorization": f"Bearer {OPENAI_API_KEY}",
75
- },
76
- json=openai_payload,
77
- )
78
- if not (200 <= response.status_code < 300):
79
- raise OpenAIException(
80
- status_code=500, detail=response.content.decode("utf-8")
81
- )
82
- span.set_status(trace_api.StatusCode.OK)
83
- response_data = response.json()
84
- assistant_message_content = response_data["choices"][0]["message"]["content"]
85
- message_uuid = str(uuid4())
86
- assistant_message = Message(
87
- role="assistant",
88
- content=assistant_message_content,
89
- uuid=message_uuid,
90
- )
91
- for (
92
- attribute_key,
93
- attribute_value,
94
- ) in (
95
- *_output_attributes(response_data),
96
- *_llm_output_message_attributes(assistant_message),
97
- *_llm_token_usage_attributes(response_data),
98
- ):
99
- span.set_attribute(attribute_key, attribute_value)
100
- span_id = span.get_span_context().span_id.to_bytes(8, "big").hex()
101
- assistant_message.span_id = span_id
102
-
103
- return MessagesResponse(message=assistant_message)
104
-
105
-
106
- @app.post("/feedback/")
107
- async def post_feedback(feedback_request: FeedbackRequest) -> None:
108
- if feedback_request.feedback == 1:
109
- label = "👍"
110
- elif feedback_request.feedback == 0:
111
- label = "👎"
112
-
113
- request_body = {
114
- "data": [
115
- {
116
- "span_id": feedback_request.span_id,
117
- "name": "user_feedback",
118
- "annotator_kind": "HUMAN",
119
- "result": {"label": label, "score": feedback_request.feedback},
120
- "metadata": {},
121
- }
122
- ]
123
- }
124
-
125
- try:
126
- await http_client.post(
127
- f"{endpoint}/span_annotations",
128
- json=request_body,
129
- )
130
- except ConnectError:
131
- warnings.warn("Could not connect to Phoenix server.")
132
-
133
-
134
- def _llm_span_kind_attributes() -> Iterator[Tuple[str, str]]:
135
- """
136
- Yields the OpenInference span kind attribute for LLMs.
137
- """
138
- yield SpanAttributes.OPENINFERENCE_SPAN_KIND, OpenInferenceSpanKindValues.LLM.value
139
-
140
-
141
- def _llm_model_name_attributes(model_name: str) -> Iterator[Tuple[str, str]]:
142
- """
143
- Yields the OpenInference model name attribute.
144
- """
145
- yield SpanAttributes.LLM_MODEL_NAME, model_name
146
-
147
-
148
- def _llm_invocation_parameters_attributes(
149
- invocation_parameters: Dict[str, Any],
150
- ) -> Iterator[Tuple[str, str]]:
151
- """
152
- Yields the OpenInference invocation parameters attribute as a JSON string.
153
- """
154
- yield SpanAttributes.LLM_INVOCATION_PARAMETERS, json.dumps(invocation_parameters)
155
-
156
-
157
- def _input_attributes(payload: Any) -> Iterator[Tuple[str, str]]:
158
- """
159
- Yields the OpenInference input value attribute as a JSON string if the
160
- payload can be serialized as JSON, otherwise as a string.
161
- """
162
- try:
163
- yield SpanAttributes.INPUT_VALUE, json.dumps(payload)
164
- yield SpanAttributes.INPUT_MIME_TYPE, OpenInferenceMimeTypeValues.JSON.value
165
- except json.JSONDecodeError:
166
- yield SpanAttributes.INPUT_VALUE, str(payload)
167
- yield SpanAttributes.INPUT_MIME_TYPE, OpenInferenceMimeTypeValues.TEXT.value
168
-
169
-
170
- def _llm_input_messages_attributes(
171
- messages: List[Message],
172
- ) -> Iterator[Tuple[str, str]]:
173
- """
174
- Yields the OpenInference input messages attributes for each message in the list.
175
- """
176
- for messages_index, message in enumerate(messages):
177
- yield (
178
- f"{SpanAttributes.LLM_INPUT_MESSAGES}.{messages_index}.{MessageAttributes.MESSAGE_ROLE}",
179
- message.role,
180
- )
181
- yield (
182
- f"{SpanAttributes.LLM_INPUT_MESSAGES}.{messages_index}.{MessageAttributes.MESSAGE_CONTENT}",
183
- message.content,
184
- )
185
-
186
-
187
- def _output_attributes(payload: Any) -> Iterator[Tuple[str, str]]:
188
- """
189
- Yields the OpenInference output value attribute as a JSON string if the
190
- payload can be serialized as JSON, otherwise as a string.
191
- """
192
- try:
193
- yield SpanAttributes.OUTPUT_VALUE, json.dumps(payload)
194
- yield SpanAttributes.OUTPUT_MIME_TYPE, OpenInferenceMimeTypeValues.JSON.value
195
- except json.JSONDecodeError:
196
- yield SpanAttributes.OUTPUT_VALUE, str(payload)
197
- yield SpanAttributes.OUTPUT_MIME_TYPE, OpenInferenceMimeTypeValues.TEXT.value
198
-
199
-
200
- def _llm_output_message_attributes(message: Message) -> Iterator[Tuple[str, str]]:
201
- """
202
- Yields the OpenInference output message attributes.
203
- """
204
- yield (
205
- f"{SpanAttributes.LLM_OUTPUT_MESSAGES}.0.{MessageAttributes.MESSAGE_ROLE}",
206
- message.role,
207
- )
208
- yield (
209
- f"{SpanAttributes.LLM_OUTPUT_MESSAGES}.0.{MessageAttributes.MESSAGE_CONTENT}",
210
- message.content,
211
- )
212
-
213
-
214
- def _llm_token_usage_attributes(
215
- response_data: Dict[str, Any],
216
- ) -> Iterator[Tuple[str, int]]:
217
- """
218
- Parses and yields token usage attributes from the response data.
219
- """
220
- if not isinstance((usage := response_data.get("usage")), dict):
221
- return
222
- if prompt_tokens := usage.get("prompt_tokens"):
223
- yield SpanAttributes.LLM_TOKEN_COUNT_PROMPT, prompt_tokens
224
- if completion_tokens := usage.get("completion_tokens"):
225
- yield SpanAttributes.LLM_TOKEN_COUNT_COMPLETION, completion_tokens
226
- if total_tokens := usage.get("total_tokens"):
227
- yield SpanAttributes.LLM_TOKEN_COUNT_TOTAL, total_tokens
@@ -1,25 +0,0 @@
1
- from typing import List, Literal, Optional
2
-
3
- from pydantic import BaseModel
4
-
5
- Role = Literal["system", "assistant", "user"]
6
-
7
-
8
- class Message(BaseModel):
9
- role: Role
10
- content: str
11
- uuid: str
12
- span_id: Optional[str] = None
13
-
14
-
15
- class MessagesPayload(BaseModel):
16
- messages: List[Message]
17
-
18
-
19
- class MessagesResponse(BaseModel):
20
- message: Message
21
-
22
-
23
- class FeedbackRequest(BaseModel):
24
- feedback: int
25
- span_id: str
@@ -1,15 +0,0 @@
1
- FROM python:3.11-slim as builder
2
- WORKDIR /app
3
- COPY requirements.txt /app/
4
- RUN pip install uv
5
- RUN uv venv
6
- ENV PATH="/app/.venv/bin:$PATH"
7
- RUN uv pip sync requirements.txt
8
-
9
- FROM gcr.io/distroless/python3-debian12
10
- WORKDIR /app
11
- COPY --from=builder /app/.venv/lib/python3.11/site-packages/ /app/site-packages/
12
- ENV PYTHONPATH="/app/site-packages:$PYTHONPATH"
13
- COPY src/ /app/src/
14
- EXPOSE 8501
15
- CMD ["-m", "streamlit", "run", "src/app.py", "--server.port=8501", "--server.address=0.0.0.0"]
@@ -1,20 +0,0 @@
1
- frontend:
2
- streamlit run ./src/app.py
3
-
4
- format:
5
- ruff check --fix . && ruff format .
6
-
7
- typecheck:
8
- pyright .
9
-
10
- types:
11
- datamodel-codegen --input schema.json --input-file-type openapi --output frontend/request_types.py --enum-field-as-literal all
12
-
13
- requirements:
14
- uv pip compile pyproject.toml > requirements.txt
15
-
16
- docker-build:
17
- docker build -t frontend .
18
-
19
- docker-run:
20
- docker run -p 8501:8501 -it frontend
@@ -1,24 +0,0 @@
1
- [project]
2
- name = "frontend"
3
- version = "0.1.0"
4
- dependencies = [
5
- "streamlit",
6
- "httpx",
7
- "pydantic",
8
- ]
9
- requires-python = ">=3.8"
10
-
11
- [project.optional-dependencies]
12
- dev = [
13
- "pyright",
14
- "ruff",
15
- "datamodel-code-generator",
16
- ]
17
-
18
- [tool.ruff]
19
- exclude = [
20
- "frontend/request_types.py",
21
- ]
22
-
23
- [tool.ruff.lint]
24
- extend-select = ["I"]
@@ -1,123 +0,0 @@
1
- # This file was autogenerated by uv via the following command:
2
- # uv pip compile pyproject.toml
3
- altair==5.3.0
4
- # via streamlit
5
- annotated-types==0.6.0
6
- # via pydantic
7
- anyio==4.3.0
8
- # via httpx
9
- attrs==23.2.0
10
- # via
11
- # jsonschema
12
- # referencing
13
- blinker==1.7.0
14
- # via streamlit
15
- cachetools==5.3.3
16
- # via streamlit
17
- certifi==2024.7.4
18
- # via
19
- # httpcore
20
- # httpx
21
- # requests
22
- charset-normalizer==3.3.2
23
- # via requests
24
- click==8.1.7
25
- # via streamlit
26
- gitdb==4.0.11
27
- # via gitpython
28
- gitpython==3.1.43
29
- # via streamlit
30
- h11==0.14.0
31
- # via httpcore
32
- httpcore==1.0.5
33
- # via httpx
34
- httpx==0.27.0
35
- idna==3.6
36
- # via
37
- # anyio
38
- # httpx
39
- # requests
40
- jinja2==3.1.3
41
- # via
42
- # altair
43
- # pydeck
44
- jsonschema==4.21.1
45
- # via altair
46
- jsonschema-specifications==2023.12.1
47
- # via jsonschema
48
- markdown-it-py==3.0.0
49
- # via rich
50
- markupsafe==2.1.5
51
- # via jinja2
52
- mdurl==0.1.2
53
- # via markdown-it-py
54
- numpy==1.26.4
55
- # via
56
- # altair
57
- # pandas
58
- # pyarrow
59
- # pydeck
60
- # streamlit
61
- packaging==24.0
62
- # via
63
- # altair
64
- # streamlit
65
- pandas==2.2.1
66
- # via
67
- # altair
68
- # streamlit
69
- pillow==10.3.0
70
- # via streamlit
71
- protobuf==4.25.3
72
- # via streamlit
73
- pyarrow==15.0.2
74
- # via streamlit
75
- pydantic==2.6.4
76
- pydantic-core==2.16.3
77
- # via pydantic
78
- pydeck==0.8.0
79
- # via streamlit
80
- pygments==2.17.2
81
- # via rich
82
- python-dateutil==2.9.0.post0
83
- # via pandas
84
- pytz==2024.1
85
- # via pandas
86
- referencing==0.34.0
87
- # via
88
- # jsonschema
89
- # jsonschema-specifications
90
- requests==2.32.2
91
- # via streamlit
92
- rich==13.7.1
93
- # via streamlit
94
- rpds-py==0.18.0
95
- # via
96
- # jsonschema
97
- # referencing
98
- six==1.16.0
99
- # via python-dateutil
100
- smmap==5.0.1
101
- # via gitdb
102
- sniffio==1.3.1
103
- # via
104
- # anyio
105
- # httpx
106
- streamlit==1.37.0
107
- tenacity==8.2.3
108
- # via streamlit
109
- toml==0.10.2
110
- # via streamlit
111
- toolz==0.12.1
112
- # via altair
113
- tornado==6.4.1
114
- # via streamlit
115
- typing-extensions==4.11.0
116
- # via
117
- # pydantic
118
- # pydantic-core
119
- # streamlit
120
- tzdata==2024.1
121
- # via pandas
122
- urllib3==2.2.1
123
- # via requests
@@ -1,149 +0,0 @@
1
- {
2
- "openapi": "3.1.0",
3
- "info": {
4
- "title": "Chat Service Schema",
5
- "description": "API schema for chat-service",
6
- "version": "1.0.0"
7
- },
8
- "paths": {
9
- "/messages/": {
10
- "post": {
11
- "summary": "Messages",
12
- "operationId": "messages_messages__post",
13
- "requestBody": {
14
- "content": {
15
- "application/json": {
16
- "schema": {
17
- "$ref": "#/components/schemas/MessagesPayload"
18
- }
19
- }
20
- },
21
- "required": true
22
- },
23
- "responses": {
24
- "200": {
25
- "description": "Successful Response",
26
- "content": {
27
- "application/json": {
28
- "schema": {
29
- "$ref": "#/components/schemas/MessagesResponse"
30
- }
31
- }
32
- }
33
- },
34
- "422": {
35
- "description": "Validation Error",
36
- "content": {
37
- "application/json": {
38
- "schema": {
39
- "$ref": "#/components/schemas/HTTPValidationError"
40
- }
41
- }
42
- }
43
- }
44
- }
45
- }
46
- }
47
- },
48
- "components": {
49
- "schemas": {
50
- "HTTPValidationError": {
51
- "properties": {
52
- "detail": {
53
- "items": {
54
- "$ref": "#/components/schemas/ValidationError"
55
- },
56
- "type": "array",
57
- "title": "Detail"
58
- }
59
- },
60
- "type": "object",
61
- "title": "HTTPValidationError"
62
- },
63
- "Message": {
64
- "properties": {
65
- "role": {
66
- "type": "string",
67
- "enum": [
68
- "system",
69
- "assistant",
70
- "user"
71
- ],
72
- "title": "Role"
73
- },
74
- "content": {
75
- "type": "string",
76
- "title": "Content"
77
- }
78
- },
79
- "type": "object",
80
- "required": [
81
- "role",
82
- "content"
83
- ],
84
- "title": "Message"
85
- },
86
- "MessagesPayload": {
87
- "properties": {
88
- "messages": {
89
- "items": {
90
- "$ref": "#/components/schemas/Message"
91
- },
92
- "type": "array",
93
- "title": "Messages"
94
- }
95
- },
96
- "type": "object",
97
- "required": [
98
- "messages"
99
- ],
100
- "title": "MessagesPayload"
101
- },
102
- "MessagesResponse": {
103
- "properties": {
104
- "message": {
105
- "$ref": "#/components/schemas/Message"
106
- }
107
- },
108
- "type": "object",
109
- "required": [
110
- "message"
111
- ],
112
- "title": "MessagesResponse"
113
- },
114
- "ValidationError": {
115
- "properties": {
116
- "loc": {
117
- "items": {
118
- "anyOf": [
119
- {
120
- "type": "string"
121
- },
122
- {
123
- "type": "integer"
124
- }
125
- ]
126
- },
127
- "type": "array",
128
- "title": "Location"
129
- },
130
- "msg": {
131
- "type": "string",
132
- "title": "Message"
133
- },
134
- "type": {
135
- "type": "string",
136
- "title": "Error Type"
137
- }
138
- },
139
- "type": "object",
140
- "required": [
141
- "loc",
142
- "msg",
143
- "type"
144
- ],
145
- "title": "ValidationError"
146
- }
147
- }
148
- }
149
- }