arize-phoenix 8.29.0__tar.gz → 8.31.0__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 (378) hide show
  1. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/PKG-INFO +1 -1
  2. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/config.py +33 -8
  3. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/helpers/playground_spans.py +4 -0
  4. arize_phoenix-8.31.0/src/phoenix/server/authorization.py +53 -0
  5. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/grpc_server.py +3 -1
  6. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/main.py +20 -9
  7. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/static/.vite/manifest.json +9 -9
  8. arize_phoenix-8.29.0/src/phoenix/server/static/assets/components-DepxScNF.js → arize_phoenix-8.31.0/src/phoenix/server/static/assets/components-C0W7rSGA.js +89 -89
  9. arize_phoenix-8.29.0/src/phoenix/server/static/assets/index-DUj7q3Q4.js → arize_phoenix-8.31.0/src/phoenix/server/static/assets/index-BmLpy9qA.js +1 -1
  10. arize_phoenix-8.29.0/src/phoenix/server/static/assets/pages-CJUakDKi.js → arize_phoenix-8.31.0/src/phoenix/server/static/assets/pages-wYat6c3P.js +94 -94
  11. arize_phoenix-8.31.0/src/phoenix/version.py +1 -0
  12. arize_phoenix-8.29.0/src/phoenix/version.py +0 -1
  13. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/.gitignore +0 -0
  14. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/IP_NOTICE +0 -0
  15. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/LICENSE +0 -0
  16. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/README.md +0 -0
  17. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/pyproject.toml +0 -0
  18. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/__init__.py +0 -0
  19. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/auth.py +0 -0
  20. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/core/__init__.py +0 -0
  21. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/core/embedding_dimension.py +0 -0
  22. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/core/model.py +0 -0
  23. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/core/model_schema.py +0 -0
  24. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/core/model_schema_adapter.py +0 -0
  25. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/datetime_utils.py +0 -0
  26. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/README.md +0 -0
  27. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/__init__.py +0 -0
  28. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/alembic.ini +0 -0
  29. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/bulk_inserter.py +0 -0
  30. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/engines.py +0 -0
  31. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/enums.py +0 -0
  32. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/facilitator.py +0 -0
  33. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/helpers.py +0 -0
  34. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/insertion/__init__.py +0 -0
  35. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/insertion/constants.py +0 -0
  36. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/insertion/dataset.py +0 -0
  37. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/insertion/document_annotation.py +0 -0
  38. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/insertion/evaluation.py +0 -0
  39. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/insertion/helpers.py +0 -0
  40. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/insertion/span.py +0 -0
  41. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/insertion/span_annotation.py +0 -0
  42. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/insertion/trace_annotation.py +0 -0
  43. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/insertion/types.py +0 -0
  44. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/migrate.py +0 -0
  45. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/migrations/__init__.py +0 -0
  46. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/migrations/data_migration_scripts/__init__.py +0 -0
  47. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/migrations/data_migration_scripts/populate_project_sessions.py +0 -0
  48. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/migrations/env.py +0 -0
  49. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/migrations/script.py.mako +0 -0
  50. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/migrations/versions/10460e46d750_datasets.py +0 -0
  51. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/migrations/versions/3be8647b87d8_add_token_columns_to_spans_table.py +0 -0
  52. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/migrations/versions/4ded9e43755f_create_project_sessions_table.py +0 -0
  53. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/migrations/versions/bc8fea3c2bc8_add_prompt_tables.py +0 -0
  54. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/migrations/versions/cd164e83824f_users_and_tokens.py +0 -0
  55. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/migrations/versions/cf03bd6bae1d_init.py +0 -0
  56. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/models.py +0 -0
  57. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/types/__init__.py +0 -0
  58. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/types/identifier.py +0 -0
  59. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/db/types/model_provider.py +0 -0
  60. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/exceptions.py +0 -0
  61. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/experiments/__init__.py +0 -0
  62. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/experiments/evaluators/__init__.py +0 -0
  63. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/experiments/evaluators/base.py +0 -0
  64. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/experiments/evaluators/code_evaluators.py +0 -0
  65. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/experiments/evaluators/llm_evaluators.py +0 -0
  66. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/experiments/evaluators/utils.py +0 -0
  67. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/experiments/functions.py +0 -0
  68. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/experiments/tracing.py +0 -0
  69. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/experiments/types.py +0 -0
  70. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/experiments/utils.py +0 -0
  71. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/inferences/__init__.py +0 -0
  72. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/inferences/errors.py +0 -0
  73. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/inferences/fixtures.py +0 -0
  74. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/inferences/inferences.py +0 -0
  75. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/inferences/schema.py +0 -0
  76. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/inferences/validation.py +0 -0
  77. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/logging/__init__.py +0 -0
  78. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/logging/_config.py +0 -0
  79. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/logging/_filter.py +0 -0
  80. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/logging/_formatter.py +0 -0
  81. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/metrics/README.md +0 -0
  82. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/metrics/__init__.py +0 -0
  83. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/metrics/binning.py +0 -0
  84. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/metrics/metrics.py +0 -0
  85. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/metrics/mixins.py +0 -0
  86. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/metrics/retrieval_metrics.py +0 -0
  87. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/metrics/timeseries.py +0 -0
  88. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/metrics/wrappers.py +0 -0
  89. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/pointcloud/__init__.py +0 -0
  90. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/pointcloud/clustering.py +0 -0
  91. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/pointcloud/pointcloud.py +0 -0
  92. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/pointcloud/projectors.py +0 -0
  93. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/pointcloud/umap_parameters.py +0 -0
  94. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/py.typed +0 -0
  95. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/__init__.py +0 -0
  96. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/README.md +0 -0
  97. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/__init__.py +0 -0
  98. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/auth.py +0 -0
  99. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/context.py +0 -0
  100. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/__init__.py +0 -0
  101. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/annotation_summaries.py +0 -0
  102. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/average_experiment_run_latency.py +0 -0
  103. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/cache/__init__.py +0 -0
  104. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/cache/two_tier_cache.py +0 -0
  105. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/dataset_example_revisions.py +0 -0
  106. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/dataset_example_spans.py +0 -0
  107. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/document_evaluation_summaries.py +0 -0
  108. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/document_evaluations.py +0 -0
  109. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/document_retrieval_metrics.py +0 -0
  110. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/experiment_annotation_summaries.py +0 -0
  111. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/experiment_error_rates.py +0 -0
  112. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/experiment_run_annotations.py +0 -0
  113. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/experiment_run_counts.py +0 -0
  114. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/experiment_sequence_number.py +0 -0
  115. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/latency_ms_quantile.py +0 -0
  116. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/min_start_or_max_end_times.py +0 -0
  117. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/num_child_spans.py +0 -0
  118. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/num_spans_per_trace.py +0 -0
  119. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/project_by_name.py +0 -0
  120. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/prompt_version_sequence_number.py +0 -0
  121. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/record_counts.py +0 -0
  122. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/session_io.py +0 -0
  123. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/session_num_traces.py +0 -0
  124. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/session_num_traces_with_error.py +0 -0
  125. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/session_token_usages.py +0 -0
  126. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/session_trace_latency_ms_quantile.py +0 -0
  127. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/span_annotations.py +0 -0
  128. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/span_by_id.py +0 -0
  129. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/span_dataset_examples.py +0 -0
  130. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/span_descendants.py +0 -0
  131. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/span_projects.py +0 -0
  132. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/table_fields.py +0 -0
  133. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/token_counts.py +0 -0
  134. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/trace_by_trace_ids.py +0 -0
  135. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/trace_root_spans.py +0 -0
  136. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/user_roles.py +0 -0
  137. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/dataloaders/users.py +0 -0
  138. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/exceptions.py +0 -0
  139. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/helpers/__init__.py +0 -0
  140. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/helpers/dataset_helpers.py +0 -0
  141. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/helpers/experiment_run_filters.py +0 -0
  142. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/helpers/playground_clients.py +0 -0
  143. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/helpers/playground_registry.py +0 -0
  144. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/helpers/prompts/__init__.py +0 -0
  145. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/helpers/prompts/conversions/__init__.py +0 -0
  146. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/helpers/prompts/conversions/anthropic.py +0 -0
  147. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/helpers/prompts/conversions/openai.py +0 -0
  148. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/helpers/prompts/models.py +0 -0
  149. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/AddExamplesToDatasetInput.py +0 -0
  150. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/AddSpansToDatasetInput.py +0 -0
  151. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/ChatCompletionInput.py +0 -0
  152. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/ChatCompletionMessageInput.py +0 -0
  153. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/ClearProjectInput.py +0 -0
  154. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/ClusterInput.py +0 -0
  155. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/Coordinates.py +0 -0
  156. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/CreateDatasetInput.py +0 -0
  157. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/CreateSpanAnnotationInput.py +0 -0
  158. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/CreateTraceAnnotationInput.py +0 -0
  159. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/DataQualityMetricInput.py +0 -0
  160. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/DatasetExampleInput.py +0 -0
  161. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/DatasetSort.py +0 -0
  162. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/DatasetVersionSort.py +0 -0
  163. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/DeleteAnnotationsInput.py +0 -0
  164. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/DeleteDatasetExamplesInput.py +0 -0
  165. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/DeleteDatasetInput.py +0 -0
  166. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/DeleteExperimentsInput.py +0 -0
  167. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/DimensionFilter.py +0 -0
  168. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/DimensionInput.py +0 -0
  169. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/GenerativeModelInput.py +0 -0
  170. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/Granularity.py +0 -0
  171. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/InvocationParameters.py +0 -0
  172. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/PatchAnnotationInput.py +0 -0
  173. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/PatchDatasetExamplesInput.py +0 -0
  174. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/PatchDatasetInput.py +0 -0
  175. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/PerformanceMetricInput.py +0 -0
  176. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/ProjectSessionSort.py +0 -0
  177. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/PromptTemplateOptions.py +0 -0
  178. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/PromptVersionInput.py +0 -0
  179. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/SpanAnnotationSort.py +0 -0
  180. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/SpanSort.py +0 -0
  181. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/TimeRange.py +0 -0
  182. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/TraceAnnotationSort.py +0 -0
  183. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/UserRoleInput.py +0 -0
  184. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/input_types/__init__.py +0 -0
  185. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/interceptor.py +0 -0
  186. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/mutations/__init__.py +0 -0
  187. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/mutations/api_key_mutations.py +0 -0
  188. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/mutations/chat_mutations.py +0 -0
  189. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/mutations/dataset_mutations.py +0 -0
  190. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/mutations/experiment_mutations.py +0 -0
  191. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/mutations/export_events_mutations.py +0 -0
  192. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/mutations/project_mutations.py +0 -0
  193. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/mutations/prompt_label_mutations.py +0 -0
  194. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/mutations/prompt_mutations.py +0 -0
  195. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/mutations/prompt_version_tag_mutations.py +0 -0
  196. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/mutations/span_annotations_mutations.py +0 -0
  197. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/mutations/trace_annotations_mutations.py +0 -0
  198. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/mutations/trace_mutations.py +0 -0
  199. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/mutations/user_mutations.py +0 -0
  200. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/openapi/__init__.py +0 -0
  201. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/openapi/main.py +0 -0
  202. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/openapi/schema.py +0 -0
  203. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/queries.py +0 -0
  204. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/routers/__init__.py +0 -0
  205. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/routers/auth.py +0 -0
  206. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/routers/embeddings.py +0 -0
  207. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/routers/oauth2.py +0 -0
  208. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/routers/utils.py +0 -0
  209. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/routers/v1/__init__.py +0 -0
  210. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/routers/v1/datasets.py +0 -0
  211. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/routers/v1/evaluations.py +0 -0
  212. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/routers/v1/experiment_evaluations.py +0 -0
  213. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/routers/v1/experiment_runs.py +0 -0
  214. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/routers/v1/experiments.py +0 -0
  215. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/routers/v1/models.py +0 -0
  216. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/routers/v1/projects.py +0 -0
  217. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/routers/v1/prompts.py +0 -0
  218. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/routers/v1/spans.py +0 -0
  219. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/routers/v1/traces.py +0 -0
  220. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/routers/v1/utils.py +0 -0
  221. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/schema.py +0 -0
  222. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/subscriptions.py +0 -0
  223. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/Annotation.py +0 -0
  224. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/AnnotationSummary.py +0 -0
  225. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/AnnotatorKind.py +0 -0
  226. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/ApiKey.py +0 -0
  227. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/AuthMethod.py +0 -0
  228. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/ChatCompletionMessageRole.py +0 -0
  229. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/ChatCompletionSubscriptionPayload.py +0 -0
  230. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/Cluster.py +0 -0
  231. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/CreateDatasetPayload.py +0 -0
  232. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/DataQualityMetric.py +0 -0
  233. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/Dataset.py +0 -0
  234. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/DatasetExample.py +0 -0
  235. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/DatasetExampleRevision.py +0 -0
  236. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/DatasetValues.py +0 -0
  237. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/DatasetVersion.py +0 -0
  238. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/Dimension.py +0 -0
  239. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/DimensionDataType.py +0 -0
  240. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/DimensionShape.py +0 -0
  241. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/DimensionType.py +0 -0
  242. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/DimensionWithValue.py +0 -0
  243. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/DocumentEvaluationSummary.py +0 -0
  244. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/DocumentRetrievalMetrics.py +0 -0
  245. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/EmbeddingDimension.py +0 -0
  246. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/EmbeddingMetadata.py +0 -0
  247. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/Evaluation.py +0 -0
  248. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/EvaluationSummary.py +0 -0
  249. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/Event.py +0 -0
  250. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/EventMetadata.py +0 -0
  251. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/ExampleRevisionInterface.py +0 -0
  252. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/Experiment.py +0 -0
  253. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/ExperimentAnnotationSummary.py +0 -0
  254. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/ExperimentComparison.py +0 -0
  255. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/ExperimentRun.py +0 -0
  256. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/ExperimentRunAnnotation.py +0 -0
  257. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/ExportedFile.py +0 -0
  258. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/Functionality.py +0 -0
  259. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/GenerativeModel.py +0 -0
  260. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/GenerativeProvider.py +0 -0
  261. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/Identifier.py +0 -0
  262. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/Inferences.py +0 -0
  263. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/InferencesRole.py +0 -0
  264. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/LabelFraction.py +0 -0
  265. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/MimeType.py +0 -0
  266. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/Model.py +0 -0
  267. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/NumericRange.py +0 -0
  268. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/PerformanceMetric.py +0 -0
  269. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/Project.py +0 -0
  270. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/ProjectSession.py +0 -0
  271. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/Prompt.py +0 -0
  272. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/PromptLabel.py +0 -0
  273. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/PromptResponse.py +0 -0
  274. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/PromptVersion.py +0 -0
  275. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/PromptVersionTag.py +0 -0
  276. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/PromptVersionTemplate.py +0 -0
  277. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/ResponseFormat.py +0 -0
  278. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/Retrieval.py +0 -0
  279. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py +0 -0
  280. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/Segments.py +0 -0
  281. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/SortDir.py +0 -0
  282. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/Span.py +0 -0
  283. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/SpanAnnotation.py +0 -0
  284. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/SpanIOValue.py +0 -0
  285. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/SystemApiKey.py +0 -0
  286. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/TimeSeries.py +0 -0
  287. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/TokenUsage.py +0 -0
  288. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/ToolDefinition.py +0 -0
  289. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/Trace.py +0 -0
  290. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/TraceAnnotation.py +0 -0
  291. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/UMAPPoints.py +0 -0
  292. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/User.py +0 -0
  293. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/UserApiKey.py +0 -0
  294. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/UserRole.py +0 -0
  295. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/ValidationResult.py +0 -0
  296. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/VectorDriftMetricEnum.py +0 -0
  297. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/__init__.py +0 -0
  298. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/node.py +0 -0
  299. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/types/pagination.py +0 -0
  300. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/api/utils.py +0 -0
  301. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/app.py +0 -0
  302. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/bearer_auth.py +0 -0
  303. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/dml_event.py +0 -0
  304. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/dml_event_handler.py +0 -0
  305. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/email/__init__.py +0 -0
  306. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/email/sender.py +0 -0
  307. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/email/templates/__init__.py +0 -0
  308. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/email/templates/password_reset.html +0 -0
  309. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/email/templates/welcome.html +0 -0
  310. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/email/types.py +0 -0
  311. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/jwt_store.py +0 -0
  312. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/middleware/__init__.py +0 -0
  313. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/middleware/gzip.py +0 -0
  314. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/oauth2.py +0 -0
  315. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/openapi/__init__.py +0 -0
  316. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/prometheus.py +0 -0
  317. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/rate_limiters.py +0 -0
  318. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/static/apple-touch-icon-114x114.png +0 -0
  319. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/static/apple-touch-icon-120x120.png +0 -0
  320. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/static/apple-touch-icon-144x144.png +0 -0
  321. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/static/apple-touch-icon-152x152.png +0 -0
  322. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/static/apple-touch-icon-180x180.png +0 -0
  323. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/static/apple-touch-icon-72x72.png +0 -0
  324. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/static/apple-touch-icon-76x76.png +0 -0
  325. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/static/apple-touch-icon.png +0 -0
  326. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/static/assets/vendor-BfhM_F1u.js +0 -0
  327. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/static/assets/vendor-Cg6lcjUC.css +0 -0
  328. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/static/assets/vendor-arizeai-CxXYQNUl.js +0 -0
  329. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/static/assets/vendor-codemirror-B0NIFPOL.js +0 -0
  330. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/static/assets/vendor-recharts-CrrDFWK1.js +0 -0
  331. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/static/assets/vendor-shiki-C5bJ-RPf.js +0 -0
  332. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/static/assets/vendor-three-C5WAXd5r.js +0 -0
  333. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/static/favicon.ico +0 -0
  334. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/static/modernizr.js +0 -0
  335. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/telemetry.py +0 -0
  336. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/templates/__init__.py +0 -0
  337. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/templates/index.html +0 -0
  338. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/thread_server.py +0 -0
  339. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/server/types.py +0 -0
  340. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/services.py +0 -0
  341. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/session/__init__.py +0 -0
  342. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/session/client.py +1 -1
  343. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/session/data_extractor.py +0 -0
  344. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/session/evaluation.py +0 -0
  345. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/session/session.py +0 -0
  346. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/settings.py +0 -0
  347. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/__init__.py +0 -0
  348. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/attributes.py +0 -0
  349. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/dsl/README.md +0 -0
  350. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/dsl/__init__.py +0 -0
  351. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/dsl/filter.py +0 -0
  352. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/dsl/helpers.py +0 -0
  353. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/dsl/query.py +0 -0
  354. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/errors.py +0 -0
  355. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/evaluation_conventions.py +0 -0
  356. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/exporter.py +0 -0
  357. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/fixtures.py +0 -0
  358. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/otel.py +0 -0
  359. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/projects.py +0 -0
  360. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/schemas.py +0 -0
  361. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/span_evaluations.py +0 -0
  362. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/span_json_decoder.py +0 -0
  363. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/span_json_encoder.py +0 -0
  364. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/trace_dataset.py +0 -0
  365. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/utils.py +0 -0
  366. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/v1/__init__.py +0 -0
  367. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/v1/evaluation_pb2.py +0 -0
  368. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/trace/v1/evaluation_pb2.pyi +0 -0
  369. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/utilities/__init__.py +0 -0
  370. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/utilities/client.py +0 -0
  371. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/utilities/deprecation.py +0 -0
  372. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/utilities/error_handling.py +0 -0
  373. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/utilities/json.py +0 -0
  374. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/utilities/logging.py +0 -0
  375. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/utilities/project.py +0 -0
  376. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/utilities/re.py +0 -0
  377. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/utilities/span_store.py +0 -0
  378. {arize_phoenix-8.29.0 → arize_phoenix-8.31.0}/src/phoenix/utilities/template_formatters.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arize-phoenix
3
- Version: 8.29.0
3
+ Version: 8.31.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
@@ -244,6 +244,14 @@ ENV_PHOENIX_TLS_ENABLED = "PHOENIX_TLS_ENABLED"
244
244
  """
245
245
  Whether to enable TLS for Phoenix HTTP and gRPC servers.
246
246
  """
247
+ ENV_PHOENIX_TLS_ENABLED_FOR_HTTP = "PHOENIX_TLS_ENABLED_FOR_HTTP"
248
+ """
249
+ Whether to enable TLS for Phoenix HTTP server. Overrides PHOENIX_TLS_ENABLED.
250
+ """
251
+ ENV_PHOENIX_TLS_ENABLED_FOR_GRPC = "PHOENIX_TLS_ENABLED_FOR_GRPC"
252
+ """
253
+ Whether to enable TLS for Phoenix gRPC server. Overrides PHOENIX_TLS_ENABLED.
254
+ """
247
255
  ENV_PHOENIX_TLS_CERT_FILE = "PHOENIX_TLS_CERT_FILE"
248
256
  """
249
257
  Path to the TLS certificate file for HTTPS connections.
@@ -392,15 +400,32 @@ class TLSConfigVerifyClient(TLSConfig):
392
400
  return self._ca_data
393
401
 
394
402
 
395
- def get_env_tls_enabled() -> bool:
403
+ def get_env_tls_enabled_for_http() -> bool:
404
+ """
405
+ Gets whether TLS is enabled for the HTTP server.
406
+
407
+ This function checks both PHOENIX_TLS_ENABLED_FOR_HTTP and PHOENIX_TLS_ENABLED environment variables.
408
+ If PHOENIX_TLS_ENABLED_FOR_HTTP is set, it takes precedence over PHOENIX_TLS_ENABLED.
409
+
410
+ Returns:
411
+ bool: True if TLS is enabled for HTTP server, False otherwise. Defaults to False if neither
412
+ environment variable is set.
413
+ """ # noqa: E501
414
+ return _bool_val(ENV_PHOENIX_TLS_ENABLED_FOR_HTTP, _bool_val(ENV_PHOENIX_TLS_ENABLED, False))
415
+
416
+
417
+ def get_env_tls_enabled_for_grpc() -> bool:
396
418
  """
397
- Gets the value of the PHOENIX_TLS_ENABLED environment variable.
419
+ Gets whether TLS is enabled for the gRPC server.
420
+
421
+ This function checks both PHOENIX_TLS_ENABLED_FOR_GRPC and PHOENIX_TLS_ENABLED environment variables.
422
+ If PHOENIX_TLS_ENABLED_FOR_GRPC is set, it takes precedence over PHOENIX_TLS_ENABLED.
398
423
 
399
424
  Returns:
400
- bool: True if TLS is enabled, False otherwise. Defaults to False if the environment
401
- variable is not set.
425
+ bool: True if TLS is enabled for gRPC server, False otherwise. Defaults to False if neither
426
+ environment variable is set.
402
427
  """ # noqa: E501
403
- return _bool_val(ENV_PHOENIX_TLS_ENABLED, False)
428
+ return _bool_val(ENV_PHOENIX_TLS_ENABLED_FOR_GRPC, _bool_val(ENV_PHOENIX_TLS_ENABLED, False))
404
429
 
405
430
 
406
431
  def get_env_tls_verify_client() -> bool:
@@ -434,7 +459,7 @@ def get_env_tls_config() -> Optional[TLSConfig]:
434
459
  ValueError: If required files are missing or don't exist when TLS is enabled
435
460
  """ # noqa: E501
436
461
  # Check if TLS is enabled
437
- if not get_env_tls_enabled():
462
+ if not (get_env_tls_enabled_for_http() or get_env_tls_enabled_for_grpc()):
438
463
  return None
439
464
 
440
465
  # Get certificate file path if specified
@@ -1193,7 +1218,7 @@ def get_env_root_url() -> URL:
1193
1218
  host = get_env_host()
1194
1219
  if host == "0.0.0.0":
1195
1220
  host = "127.0.0.1"
1196
- scheme = "https" if get_env_tls_enabled() else "http"
1221
+ scheme = "https" if get_env_tls_enabled_for_http() else "http"
1197
1222
  return URL(urljoin(f"{scheme}://{host}:{get_env_port()}", get_env_host_root_path()))
1198
1223
 
1199
1224
 
@@ -1202,7 +1227,7 @@ def get_base_url() -> str:
1202
1227
  host = get_env_host()
1203
1228
  if host == "0.0.0.0":
1204
1229
  host = "127.0.0.1"
1205
- scheme = "https" if get_env_tls_enabled() else "http"
1230
+ scheme = "https" if get_env_tls_enabled_for_http() else "http"
1206
1231
  base_url = get_env_collector_endpoint() or f"{scheme}://{host}:{get_env_port()}"
1207
1232
  return base_url if base_url.endswith("/") else base_url + "/"
1208
1233
 
@@ -1,4 +1,5 @@
1
1
  import json
2
+ import logging
2
3
  from collections import defaultdict
3
4
  from collections.abc import Mapping
4
5
  from dataclasses import asdict
@@ -54,6 +55,8 @@ ChatCompletionMessage: TypeAlias = tuple[
54
55
  ]
55
56
  ToolCallID: TypeAlias = str
56
57
 
58
+ logger = logging.getLogger(__name__)
59
+
57
60
 
58
61
  class streaming_llm_span:
59
62
  """
@@ -117,6 +120,7 @@ class streaming_llm_span:
117
120
  exception_stacktrace=format_exc(),
118
121
  )
119
122
  )
123
+ logger.exception(exc_value)
120
124
  if self._text_chunks or self._tool_call_chunks:
121
125
  self._attributes.update(
122
126
  chain(
@@ -0,0 +1,53 @@
1
+ """
2
+ Authorization dependencies for FastAPI routes.
3
+
4
+ Usage:
5
+ Use the provided dependencies (e.g., require_admin) with FastAPI's Depends to restrict access to
6
+ certain routes.
7
+
8
+ These dependencies will raise HTTP 403 if the user is not authorized.
9
+
10
+ Example:
11
+
12
+ from fastapi import APIRouter, Depends
13
+ from phoenix.server.authorization import require_admin
14
+
15
+ router = APIRouter()
16
+
17
+ @router.post("/dangerous-thing", dependencies=[Depends(require_admin)])
18
+ async def dangerous_thing(...):
19
+ ...
20
+
21
+ The require_admin dependency allows only admin or system users to access the route.
22
+ It expects authentication to be enabled and the request.user to be set by the authentication.
23
+ """
24
+
25
+ from fastapi import HTTPException, Request
26
+ from fastapi import status as fastapi_status
27
+
28
+ from phoenix.server.bearer_auth import PhoenixUser
29
+
30
+
31
+ def require_admin(request: Request) -> None:
32
+ """
33
+ FastAPI dependency to restrict access to admin or system users only.
34
+
35
+ Usage:
36
+ Add as a dependency to any route that should only be accessible by admin or system users:
37
+
38
+ @router.post("/dangerous-thing", dependencies=[Depends(require_admin)])
39
+ async def dangerous_thing(...):
40
+ ...
41
+
42
+ Behavior:
43
+ - Allows access if the authenticated user is an admin or a system user.
44
+ - Raises HTTP 403 Forbidden if the user is not authorized.
45
+ - Expects authentication to be enabled and request.user to be set by the authentication.
46
+ """
47
+ user = getattr(request, "user", None)
48
+ # System users have all privileges
49
+ if not (isinstance(user, PhoenixUser) and user.is_admin):
50
+ raise HTTPException(
51
+ status_code=fastapi_status.HTTP_403_FORBIDDEN,
52
+ detail="Only admin or system users can perform this action.",
53
+ )
@@ -18,6 +18,7 @@ from phoenix.config import (
18
18
  TLSConfigVerifyClient,
19
19
  get_env_grpc_port,
20
20
  get_env_tls_config,
21
+ get_env_tls_enabled_for_grpc,
21
22
  )
22
23
  from phoenix.server.bearer_auth import ApiKeyInterceptor
23
24
  from phoenix.trace.otel import decode_otlp_span
@@ -90,7 +91,8 @@ class GrpcServer:
90
91
  options=(("grpc.so_reuseport", 0),),
91
92
  interceptors=interceptors,
92
93
  )
93
- if tls_config := get_env_tls_config():
94
+ if get_env_tls_enabled_for_grpc():
95
+ assert (tls_config := get_env_tls_config())
94
96
  private_key_certificate_chain_pairs = [(tls_config.key_data, tls_config.cert_data)]
95
97
  server_credentials = (
96
98
  grpc.ssl_server_credentials(
@@ -42,6 +42,8 @@ from phoenix.config import (
42
42
  get_env_smtp_username,
43
43
  get_env_smtp_validate_certs,
44
44
  get_env_tls_config,
45
+ get_env_tls_enabled_for_grpc,
46
+ get_env_tls_enabled_for_http,
45
47
  get_pids_path,
46
48
  )
47
49
  from phoenix.core.model_schema_adapter import create_model_from_inferences
@@ -101,8 +103,13 @@ _WELCOME_MESSAGE = Environment(loader=BaseLoader()).from_string("""
101
103
  | 🚀 Phoenix Server 🚀
102
104
  | Phoenix UI: {{ ui_path }}
103
105
  | Authentication: {{ auth_enabled }}
104
- {%- if tls_enabled %}
105
- | TLS: Enabled
106
+ {%- if auth_enabled_for_http or auth_enabled_for_grpc %}
107
+ {%- if tls_enabled_for_http %}
108
+ | TLS: Enabled for HTTP
109
+ {%- endif %}
110
+ {%- if tls_enabled_for_grpc %}
111
+ | TLS: Enabled for gRPC
112
+ {%- endif %}
106
113
  {%- if tls_verify_client %}
107
114
  | TLS Client Verification: Enabled
108
115
  {%- endif %}
@@ -367,22 +374,25 @@ def main() -> None:
367
374
  allowed_origins = get_env_allowed_origins()
368
375
 
369
376
  # Get TLS configuration
377
+ tls_enabled_for_http = get_env_tls_enabled_for_http()
378
+ tls_enabled_for_grpc = get_env_tls_enabled_for_grpc()
370
379
  tls_config = get_env_tls_config()
371
- tls_enabled = tls_config is not None
372
- tls_verify_client = tls_enabled and isinstance(tls_config, TLSConfigVerifyClient)
380
+ tls_verify_client = tls_config is not None and isinstance(tls_config, TLSConfigVerifyClient)
373
381
 
374
382
  # Print information about the server
375
- scheme = "https" if tls_enabled else "http"
376
- root_path = urljoin(f"{scheme}://{host}:{port}", host_root_path)
383
+ http_scheme = "https" if tls_enabled_for_http else "http"
384
+ grpc_scheme = "https" if tls_enabled_for_grpc else "http"
385
+ root_path = urljoin(f"{http_scheme}://{host}:{port}", host_root_path)
377
386
  msg = _WELCOME_MESSAGE.render(
378
387
  version=phoenix_version,
379
388
  ui_path=root_path,
380
- grpc_path=f"{scheme}://{host}:{get_env_grpc_port()}",
389
+ grpc_path=f"{grpc_scheme}://{host}:{get_env_grpc_port()}",
381
390
  http_path=urljoin(root_path, "v1/traces"),
382
391
  storage=get_printable_db_url(db_connection_str),
383
392
  schema=get_env_database_schema(),
384
393
  auth_enabled=authentication_enabled,
385
- tls_enabled=tls_enabled,
394
+ tls_enabled_for_http=tls_enabled_for_http,
395
+ tls_enabled_for_grpc=tls_enabled_for_grpc,
386
396
  tls_verify_client=tls_verify_client,
387
397
  allowed_origins=allowed_origins,
388
398
  )
@@ -444,7 +454,8 @@ def main() -> None:
444
454
  root_path=host_root_path,
445
455
  )
446
456
 
447
- if tls_config:
457
+ if tls_enabled_for_http:
458
+ assert tls_config
448
459
  # Configure SSL context with certificate and key
449
460
  server_config.ssl_keyfile = str(tls_config.key_file)
450
461
  server_config.ssl_keyfile_password = tls_config.key_file_password
@@ -1,22 +1,22 @@
1
1
  {
2
- "_components-DepxScNF.js": {
3
- "file": "assets/components-DepxScNF.js",
2
+ "_components-C0W7rSGA.js": {
3
+ "file": "assets/components-C0W7rSGA.js",
4
4
  "name": "components",
5
5
  "imports": [
6
6
  "_vendor-BfhM_F1u.js",
7
- "_pages-CJUakDKi.js",
7
+ "_pages-wYat6c3P.js",
8
8
  "_vendor-arizeai-CxXYQNUl.js",
9
9
  "_vendor-codemirror-B0NIFPOL.js",
10
10
  "_vendor-three-C5WAXd5r.js"
11
11
  ]
12
12
  },
13
- "_pages-CJUakDKi.js": {
14
- "file": "assets/pages-CJUakDKi.js",
13
+ "_pages-wYat6c3P.js": {
14
+ "file": "assets/pages-wYat6c3P.js",
15
15
  "name": "pages",
16
16
  "imports": [
17
17
  "_vendor-BfhM_F1u.js",
18
18
  "_vendor-arizeai-CxXYQNUl.js",
19
- "_components-DepxScNF.js",
19
+ "_components-C0W7rSGA.js",
20
20
  "_vendor-codemirror-B0NIFPOL.js",
21
21
  "_vendor-recharts-CrrDFWK1.js"
22
22
  ]
@@ -69,15 +69,15 @@
69
69
  "name": "vendor-three"
70
70
  },
71
71
  "index.tsx": {
72
- "file": "assets/index-DUj7q3Q4.js",
72
+ "file": "assets/index-BmLpy9qA.js",
73
73
  "name": "index",
74
74
  "src": "index.tsx",
75
75
  "isEntry": true,
76
76
  "imports": [
77
77
  "_vendor-BfhM_F1u.js",
78
78
  "_vendor-arizeai-CxXYQNUl.js",
79
- "_pages-CJUakDKi.js",
80
- "_components-DepxScNF.js",
79
+ "_pages-wYat6c3P.js",
80
+ "_components-C0W7rSGA.js",
81
81
  "_vendor-three-C5WAXd5r.js",
82
82
  "_vendor-codemirror-B0NIFPOL.js",
83
83
  "_vendor-shiki-C5bJ-RPf.js",