arize-phoenix 8.3.0__tar.gz → 8.4.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 (372) hide show
  1. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/PKG-INFO +2 -1
  2. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/README.md +1 -0
  3. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/context.py +2 -0
  4. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/__init__.py +2 -0
  5. arize_phoenix-8.4.0/src/phoenix/server/api/dataloaders/num_child_spans.py +35 -0
  6. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/queries.py +72 -3
  7. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/Span.py +4 -0
  8. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/app.py +2 -0
  9. arize_phoenix-8.4.0/src/phoenix/server/static/.vite/manifest.json +87 -0
  10. arize_phoenix-8.3.0/src/phoenix/server/static/assets/components-T5K9z49d.js → arize_phoenix-8.4.0/src/phoenix/server/static/assets/components-BgFPI6sn.js +166 -167
  11. arize_phoenix-8.3.0/src/phoenix/server/static/assets/index-DvHwFF8e.js → arize_phoenix-8.4.0/src/phoenix/server/static/assets/index-CIkk8uHr.js +9 -9
  12. arize_phoenix-8.3.0/src/phoenix/server/static/assets/pages-CY3ZXSHj.js → arize_phoenix-8.4.0/src/phoenix/server/static/assets/pages-CmDiPH1A.js +603 -585
  13. arize_phoenix-8.3.0/src/phoenix/server/static/assets/vendor-Cqfydjep.js → arize_phoenix-8.4.0/src/phoenix/server/static/assets/vendor-CRRq3WgM.js +116 -116
  14. arize_phoenix-8.3.0/src/phoenix/server/static/assets/vendor-arizeai-WnerlUPN.js → arize_phoenix-8.4.0/src/phoenix/server/static/assets/vendor-arizeai-Dq64X_0o.js +1 -1
  15. arize_phoenix-8.3.0/src/phoenix/server/static/assets/vendor-codemirror-D-ZZKLFq.js → arize_phoenix-8.4.0/src/phoenix/server/static/assets/vendor-codemirror-C1oevlym.js +1 -1
  16. arize_phoenix-8.3.0/src/phoenix/server/static/assets/vendor-recharts-KY97ZPfK.js → arize_phoenix-8.4.0/src/phoenix/server/static/assets/vendor-recharts-CPj01S89.js +1 -1
  17. arize_phoenix-8.3.0/src/phoenix/server/static/assets/vendor-shiki-D5K9GnFn.js → arize_phoenix-8.4.0/src/phoenix/server/static/assets/vendor-shiki-aY7rz1pm.js +1 -1
  18. arize_phoenix-8.4.0/src/phoenix/version.py +1 -0
  19. arize_phoenix-8.3.0/src/phoenix/server/static/.vite/manifest.json +0 -87
  20. arize_phoenix-8.3.0/src/phoenix/version.py +0 -1
  21. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/.gitignore +0 -0
  22. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/IP_NOTICE +0 -0
  23. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/LICENSE +0 -0
  24. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/pyproject.toml +0 -0
  25. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/__init__.py +0 -0
  26. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/auth.py +0 -0
  27. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/config.py +0 -0
  28. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/core/__init__.py +0 -0
  29. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/core/embedding_dimension.py +0 -0
  30. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/core/model.py +0 -0
  31. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/core/model_schema.py +0 -0
  32. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/core/model_schema_adapter.py +0 -0
  33. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/datetime_utils.py +0 -0
  34. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/README.md +0 -0
  35. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/__init__.py +0 -0
  36. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/alembic.ini +0 -0
  37. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/bulk_inserter.py +0 -0
  38. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/engines.py +0 -0
  39. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/enums.py +0 -0
  40. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/facilitator.py +0 -0
  41. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/helpers.py +0 -0
  42. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/insertion/__init__.py +0 -0
  43. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/insertion/constants.py +0 -0
  44. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/insertion/dataset.py +0 -0
  45. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/insertion/document_annotation.py +0 -0
  46. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/insertion/evaluation.py +0 -0
  47. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/insertion/helpers.py +0 -0
  48. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/insertion/span.py +0 -0
  49. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/insertion/span_annotation.py +0 -0
  50. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/insertion/trace_annotation.py +0 -0
  51. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/insertion/types.py +0 -0
  52. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/migrate.py +0 -0
  53. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/migrations/__init__.py +0 -0
  54. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/migrations/data_migration_scripts/__init__.py +0 -0
  55. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/migrations/data_migration_scripts/populate_project_sessions.py +0 -0
  56. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/migrations/env.py +0 -0
  57. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/migrations/script.py.mako +0 -0
  58. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/migrations/versions/10460e46d750_datasets.py +0 -0
  59. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/migrations/versions/3be8647b87d8_add_token_columns_to_spans_table.py +0 -0
  60. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/migrations/versions/4ded9e43755f_create_project_sessions_table.py +0 -0
  61. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/migrations/versions/bc8fea3c2bc8_add_prompt_tables.py +0 -0
  62. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/migrations/versions/cd164e83824f_users_and_tokens.py +0 -0
  63. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/migrations/versions/cf03bd6bae1d_init.py +0 -0
  64. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/models.py +0 -0
  65. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/types/__init__.py +0 -0
  66. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/types/identifier.py +0 -0
  67. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/db/types/model_provider.py +0 -0
  68. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/exceptions.py +0 -0
  69. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/experiments/__init__.py +0 -0
  70. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/experiments/evaluators/__init__.py +0 -0
  71. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/experiments/evaluators/base.py +0 -0
  72. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/experiments/evaluators/code_evaluators.py +0 -0
  73. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/experiments/evaluators/llm_evaluators.py +0 -0
  74. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/experiments/evaluators/utils.py +0 -0
  75. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/experiments/functions.py +0 -0
  76. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/experiments/tracing.py +0 -0
  77. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/experiments/types.py +0 -0
  78. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/experiments/utils.py +0 -0
  79. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/inferences/__init__.py +0 -0
  80. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/inferences/errors.py +0 -0
  81. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/inferences/fixtures.py +0 -0
  82. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/inferences/inferences.py +0 -0
  83. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/inferences/schema.py +0 -0
  84. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/inferences/validation.py +0 -0
  85. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/logging/__init__.py +0 -0
  86. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/logging/_config.py +0 -0
  87. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/logging/_filter.py +0 -0
  88. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/logging/_formatter.py +0 -0
  89. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/metrics/README.md +0 -0
  90. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/metrics/__init__.py +0 -0
  91. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/metrics/binning.py +0 -0
  92. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/metrics/metrics.py +0 -0
  93. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/metrics/mixins.py +0 -0
  94. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/metrics/retrieval_metrics.py +0 -0
  95. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/metrics/timeseries.py +0 -0
  96. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/metrics/wrappers.py +0 -0
  97. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/pointcloud/__init__.py +0 -0
  98. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/pointcloud/clustering.py +0 -0
  99. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/pointcloud/pointcloud.py +0 -0
  100. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/pointcloud/projectors.py +0 -0
  101. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/pointcloud/umap_parameters.py +0 -0
  102. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/py.typed +0 -0
  103. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/__init__.py +0 -0
  104. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/README.md +0 -0
  105. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/__init__.py +0 -0
  106. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/auth.py +0 -0
  107. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/annotation_summaries.py +0 -0
  108. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/average_experiment_run_latency.py +0 -0
  109. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/cache/__init__.py +0 -0
  110. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/cache/two_tier_cache.py +0 -0
  111. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/dataset_example_revisions.py +0 -0
  112. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/dataset_example_spans.py +0 -0
  113. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/document_evaluation_summaries.py +0 -0
  114. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/document_evaluations.py +0 -0
  115. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/document_retrieval_metrics.py +0 -0
  116. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/experiment_annotation_summaries.py +0 -0
  117. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/experiment_error_rates.py +0 -0
  118. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/experiment_run_annotations.py +0 -0
  119. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/experiment_run_counts.py +0 -0
  120. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/experiment_sequence_number.py +0 -0
  121. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/latency_ms_quantile.py +0 -0
  122. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/min_start_or_max_end_times.py +0 -0
  123. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/project_by_name.py +0 -0
  124. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/prompt_version_sequence_number.py +0 -0
  125. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/record_counts.py +0 -0
  126. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/session_io.py +0 -0
  127. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/session_num_traces.py +0 -0
  128. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/session_num_traces_with_error.py +0 -0
  129. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/session_token_usages.py +0 -0
  130. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/session_trace_latency_ms_quantile.py +0 -0
  131. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/span_annotations.py +0 -0
  132. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/span_by_id.py +0 -0
  133. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/span_dataset_examples.py +0 -0
  134. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/span_descendants.py +0 -0
  135. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/span_projects.py +0 -0
  136. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/table_fields.py +0 -0
  137. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/token_counts.py +0 -0
  138. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/trace_by_trace_ids.py +0 -0
  139. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/trace_root_spans.py +0 -0
  140. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/user_roles.py +0 -0
  141. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/dataloaders/users.py +0 -0
  142. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/exceptions.py +0 -0
  143. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/helpers/__init__.py +0 -0
  144. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/helpers/dataset_helpers.py +0 -0
  145. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/helpers/experiment_run_filters.py +0 -0
  146. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/helpers/playground_clients.py +0 -0
  147. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/helpers/playground_registry.py +0 -0
  148. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/helpers/playground_spans.py +0 -0
  149. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/helpers/prompts/__init__.py +0 -0
  150. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/helpers/prompts/conversions/__init__.py +0 -0
  151. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/helpers/prompts/conversions/anthropic.py +0 -0
  152. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/helpers/prompts/conversions/openai.py +0 -0
  153. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/helpers/prompts/models.py +0 -0
  154. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/AddExamplesToDatasetInput.py +0 -0
  155. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/AddSpansToDatasetInput.py +0 -0
  156. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/ChatCompletionInput.py +0 -0
  157. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/ChatCompletionMessageInput.py +0 -0
  158. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/ClearProjectInput.py +0 -0
  159. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/ClusterInput.py +0 -0
  160. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/Coordinates.py +0 -0
  161. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/CreateDatasetInput.py +0 -0
  162. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/CreateSpanAnnotationInput.py +0 -0
  163. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/CreateTraceAnnotationInput.py +0 -0
  164. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/DataQualityMetricInput.py +0 -0
  165. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/DatasetExampleInput.py +0 -0
  166. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/DatasetSort.py +0 -0
  167. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/DatasetVersionSort.py +0 -0
  168. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/DeleteAnnotationsInput.py +0 -0
  169. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/DeleteDatasetExamplesInput.py +0 -0
  170. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/DeleteDatasetInput.py +0 -0
  171. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/DeleteExperimentsInput.py +0 -0
  172. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/DimensionFilter.py +0 -0
  173. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/DimensionInput.py +0 -0
  174. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/GenerativeModelInput.py +0 -0
  175. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/Granularity.py +0 -0
  176. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/InvocationParameters.py +0 -0
  177. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/PatchAnnotationInput.py +0 -0
  178. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/PatchDatasetExamplesInput.py +0 -0
  179. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/PatchDatasetInput.py +0 -0
  180. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/PerformanceMetricInput.py +0 -0
  181. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/ProjectSessionSort.py +0 -0
  182. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/PromptTemplateOptions.py +0 -0
  183. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/PromptVersionInput.py +0 -0
  184. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/SpanAnnotationSort.py +0 -0
  185. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/SpanSort.py +0 -0
  186. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/TimeRange.py +0 -0
  187. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/TraceAnnotationSort.py +0 -0
  188. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/UserRoleInput.py +0 -0
  189. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/input_types/__init__.py +0 -0
  190. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/interceptor.py +0 -0
  191. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/mutations/__init__.py +0 -0
  192. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/mutations/api_key_mutations.py +0 -0
  193. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/mutations/chat_mutations.py +0 -0
  194. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/mutations/dataset_mutations.py +0 -0
  195. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/mutations/experiment_mutations.py +0 -0
  196. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/mutations/export_events_mutations.py +0 -0
  197. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/mutations/project_mutations.py +0 -0
  198. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/mutations/prompt_label_mutations.py +0 -0
  199. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/mutations/prompt_mutations.py +0 -0
  200. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/mutations/prompt_version_tag_mutations.py +0 -0
  201. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/mutations/span_annotations_mutations.py +0 -0
  202. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/mutations/trace_annotations_mutations.py +0 -0
  203. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/mutations/user_mutations.py +0 -0
  204. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/openapi/__init__.py +0 -0
  205. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/openapi/main.py +0 -0
  206. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/openapi/schema.py +0 -0
  207. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/routers/__init__.py +0 -0
  208. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/routers/auth.py +0 -0
  209. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/routers/embeddings.py +0 -0
  210. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/routers/oauth2.py +0 -0
  211. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/routers/utils.py +0 -0
  212. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/routers/v1/__init__.py +0 -0
  213. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/routers/v1/datasets.py +0 -0
  214. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/routers/v1/evaluations.py +0 -0
  215. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/routers/v1/experiment_evaluations.py +0 -0
  216. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/routers/v1/experiment_runs.py +0 -0
  217. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/routers/v1/experiments.py +0 -0
  218. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/routers/v1/models.py +0 -0
  219. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/routers/v1/prompts.py +0 -0
  220. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/routers/v1/spans.py +0 -0
  221. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/routers/v1/traces.py +0 -0
  222. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/routers/v1/utils.py +0 -0
  223. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/schema.py +0 -0
  224. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/subscriptions.py +0 -0
  225. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/Annotation.py +0 -0
  226. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/AnnotationSummary.py +0 -0
  227. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/AnnotatorKind.py +0 -0
  228. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/ApiKey.py +0 -0
  229. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/AuthMethod.py +0 -0
  230. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/ChatCompletionMessageRole.py +0 -0
  231. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/ChatCompletionSubscriptionPayload.py +0 -0
  232. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/Cluster.py +0 -0
  233. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/CreateDatasetPayload.py +0 -0
  234. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/DataQualityMetric.py +0 -0
  235. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/Dataset.py +0 -0
  236. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/DatasetExample.py +0 -0
  237. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/DatasetExampleRevision.py +0 -0
  238. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/DatasetValues.py +0 -0
  239. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/DatasetVersion.py +0 -0
  240. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/Dimension.py +0 -0
  241. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/DimensionDataType.py +0 -0
  242. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/DimensionShape.py +0 -0
  243. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/DimensionType.py +0 -0
  244. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/DimensionWithValue.py +0 -0
  245. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/DocumentEvaluationSummary.py +0 -0
  246. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/DocumentRetrievalMetrics.py +0 -0
  247. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/EmbeddingDimension.py +0 -0
  248. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/EmbeddingMetadata.py +0 -0
  249. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/Evaluation.py +0 -0
  250. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/EvaluationSummary.py +0 -0
  251. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/Event.py +0 -0
  252. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/EventMetadata.py +0 -0
  253. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/ExampleRevisionInterface.py +0 -0
  254. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/Experiment.py +0 -0
  255. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/ExperimentAnnotationSummary.py +0 -0
  256. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/ExperimentComparison.py +0 -0
  257. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/ExperimentRun.py +0 -0
  258. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/ExperimentRunAnnotation.py +0 -0
  259. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/ExportedFile.py +0 -0
  260. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/Functionality.py +0 -0
  261. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/GenerativeModel.py +0 -0
  262. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/GenerativeProvider.py +0 -0
  263. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/Identifier.py +0 -0
  264. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/Inferences.py +0 -0
  265. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/InferencesRole.py +0 -0
  266. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/LabelFraction.py +0 -0
  267. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/MimeType.py +0 -0
  268. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/Model.py +0 -0
  269. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/NumericRange.py +0 -0
  270. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/PerformanceMetric.py +0 -0
  271. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/Project.py +0 -0
  272. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/ProjectSession.py +0 -0
  273. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/Prompt.py +0 -0
  274. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/PromptLabel.py +0 -0
  275. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/PromptResponse.py +0 -0
  276. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/PromptVersion.py +0 -0
  277. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/PromptVersionTag.py +0 -0
  278. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/PromptVersionTemplate.py +0 -0
  279. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/ResponseFormat.py +0 -0
  280. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/Retrieval.py +0 -0
  281. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py +0 -0
  282. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/Segments.py +0 -0
  283. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/SortDir.py +0 -0
  284. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/SpanAnnotation.py +0 -0
  285. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/SpanIOValue.py +0 -0
  286. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/SystemApiKey.py +0 -0
  287. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/TimeSeries.py +0 -0
  288. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/TokenUsage.py +0 -0
  289. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/ToolDefinition.py +0 -0
  290. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/Trace.py +0 -0
  291. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/TraceAnnotation.py +0 -0
  292. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/UMAPPoints.py +0 -0
  293. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/User.py +0 -0
  294. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/UserApiKey.py +0 -0
  295. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/UserRole.py +0 -0
  296. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/ValidationResult.py +0 -0
  297. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/VectorDriftMetricEnum.py +0 -0
  298. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/__init__.py +0 -0
  299. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/node.py +0 -0
  300. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/types/pagination.py +0 -0
  301. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/api/utils.py +0 -0
  302. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/bearer_auth.py +0 -0
  303. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/dml_event.py +0 -0
  304. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/dml_event_handler.py +0 -0
  305. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/email/__init__.py +0 -0
  306. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/email/sender.py +0 -0
  307. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/email/templates/__init__.py +0 -0
  308. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/email/templates/password_reset.html +0 -0
  309. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/email/types.py +0 -0
  310. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/grpc_server.py +0 -0
  311. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/jwt_store.py +0 -0
  312. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/main.py +0 -0
  313. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/oauth2.py +0 -0
  314. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/openapi/__init__.py +0 -0
  315. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/prometheus.py +0 -0
  316. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/rate_limiters.py +0 -0
  317. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/static/apple-touch-icon-114x114.png +0 -0
  318. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/static/apple-touch-icon-120x120.png +0 -0
  319. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/static/apple-touch-icon-144x144.png +0 -0
  320. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/static/apple-touch-icon-152x152.png +0 -0
  321. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/static/apple-touch-icon-180x180.png +0 -0
  322. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/static/apple-touch-icon-72x72.png +0 -0
  323. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/static/apple-touch-icon-76x76.png +0 -0
  324. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/static/apple-touch-icon.png +0 -0
  325. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/static/assets/vendor-Cg6lcjUC.css +0 -0
  326. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/static/assets/vendor-three-C-AGeJYv.js +0 -0
  327. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/static/favicon.ico +0 -0
  328. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/static/modernizr.js +0 -0
  329. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/telemetry.py +0 -0
  330. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/templates/__init__.py +0 -0
  331. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/templates/index.html +0 -0
  332. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/thread_server.py +0 -0
  333. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/server/types.py +0 -0
  334. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/services.py +0 -0
  335. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/session/__init__.py +0 -0
  336. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/session/client.py +0 -0
  337. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/session/data_extractor.py +0 -0
  338. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/session/evaluation.py +0 -0
  339. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/session/session.py +0 -0
  340. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/settings.py +0 -0
  341. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/__init__.py +0 -0
  342. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/attributes.py +0 -0
  343. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/dsl/README.md +0 -0
  344. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/dsl/__init__.py +0 -0
  345. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/dsl/filter.py +0 -0
  346. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/dsl/helpers.py +0 -0
  347. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/dsl/query.py +0 -0
  348. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/errors.py +0 -0
  349. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/evaluation_conventions.py +0 -0
  350. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/exporter.py +0 -0
  351. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/fixtures.py +0 -0
  352. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/otel.py +0 -0
  353. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/projects.py +0 -0
  354. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/schemas.py +0 -0
  355. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/span_evaluations.py +0 -0
  356. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/span_json_decoder.py +0 -0
  357. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/span_json_encoder.py +0 -0
  358. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/trace_dataset.py +0 -0
  359. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/utils.py +0 -0
  360. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/v1/__init__.py +0 -0
  361. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/v1/evaluation_pb2.py +0 -0
  362. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/trace/v1/evaluation_pb2.pyi +0 -0
  363. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/utilities/__init__.py +0 -0
  364. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/utilities/client.py +0 -0
  365. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/utilities/deprecation.py +0 -0
  366. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/utilities/error_handling.py +0 -0
  367. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/utilities/json.py +0 -0
  368. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/utilities/logging.py +0 -0
  369. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/utilities/project.py +0 -0
  370. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/utilities/re.py +0 -0
  371. {arize_phoenix-8.3.0 → arize_phoenix-8.4.0}/src/phoenix/utilities/span_store.py +0 -0
  372. {arize_phoenix-8.3.0 → arize_phoenix-8.4.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.3.0
3
+ Version: 8.4.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
@@ -162,6 +162,7 @@ Phoenix is an open-source AI observability platform designed for experimentation
162
162
  - [**_Datasets_**](https://docs.arize.com/phoenix/datasets-and-experiments/overview-datasets) - Create versioned datasets of examples for experimentation, evaluation, and fine-tuning.
163
163
  - [**_Experiments_**](https://docs.arize.com/phoenix/datasets-and-experiments/overview-datasets#experiments) - Track and evaluate changes to prompts, LLMs, and retrieval.
164
164
  - [**_Playground_**](https://docs.arize.com/phoenix/prompt-engineering/overview-prompts)- Optimize prompts, compare models, adjust parameters, and replay traced LLM calls.
165
+ - [**_Prompt Mangement_**](https://docs.arize.com/phoenix/prompt-engineering/overview-prompts/prompt-management)- Manage and test prompt changes systematically using version control, tagging, and experimentation.
165
166
 
166
167
  Phoenix is vendor and language agnostic with out-of-the-box support for popular frameworks (🦙[LlamaIndex](https://docs.arize.com/phoenix/tracing/integrations-tracing/llamaindex), 🦜⛓[LangChain](https://docs.arize.com/phoenix/tracing/integrations-tracing/langchain), [Haystack](https://docs.arize.com/phoenix/tracing/integrations-tracing/haystack), 🧩[DSPy](https://docs.arize.com/phoenix/tracing/integrations-tracing/dspy)) and LLM providers ([OpenAI](https://docs.arize.com/phoenix/tracing/integrations-tracing/openai), [Bedrock](https://docs.arize.com/phoenix/tracing/integrations-tracing/bedrock), [MistralAI](https://docs.arize.com/phoenix/tracing/integrations-tracing/mistralai), [VertexAI](https://docs.arize.com/phoenix/tracing/integrations-tracing/vertexai), [LiteLLM](https://docs.arize.com/phoenix/tracing/integrations-tracing/litellm), and more). For details on auto-instrumentation, check out the [OpenInference](https://github.com/Arize-ai/openinference) project.
167
168
 
@@ -34,6 +34,7 @@ Phoenix is an open-source AI observability platform designed for experimentation
34
34
  - [**_Datasets_**](https://docs.arize.com/phoenix/datasets-and-experiments/overview-datasets) - Create versioned datasets of examples for experimentation, evaluation, and fine-tuning.
35
35
  - [**_Experiments_**](https://docs.arize.com/phoenix/datasets-and-experiments/overview-datasets#experiments) - Track and evaluate changes to prompts, LLMs, and retrieval.
36
36
  - [**_Playground_**](https://docs.arize.com/phoenix/prompt-engineering/overview-prompts)- Optimize prompts, compare models, adjust parameters, and replay traced LLM calls.
37
+ - [**_Prompt Mangement_**](https://docs.arize.com/phoenix/prompt-engineering/overview-prompts/prompt-management)- Manage and test prompt changes systematically using version control, tagging, and experimentation.
37
38
 
38
39
  Phoenix is vendor and language agnostic with out-of-the-box support for popular frameworks (🦙[LlamaIndex](https://docs.arize.com/phoenix/tracing/integrations-tracing/llamaindex), 🦜⛓[LangChain](https://docs.arize.com/phoenix/tracing/integrations-tracing/langchain), [Haystack](https://docs.arize.com/phoenix/tracing/integrations-tracing/haystack), 🧩[DSPy](https://docs.arize.com/phoenix/tracing/integrations-tracing/dspy)) and LLM providers ([OpenAI](https://docs.arize.com/phoenix/tracing/integrations-tracing/openai), [Bedrock](https://docs.arize.com/phoenix/tracing/integrations-tracing/bedrock), [MistralAI](https://docs.arize.com/phoenix/tracing/integrations-tracing/mistralai), [VertexAI](https://docs.arize.com/phoenix/tracing/integrations-tracing/vertexai), [LiteLLM](https://docs.arize.com/phoenix/tracing/integrations-tracing/litellm), and more). For details on auto-instrumentation, check out the [OpenInference](https://github.com/Arize-ai/openinference) project.
39
40
 
@@ -29,6 +29,7 @@ from phoenix.server.api.dataloaders import (
29
29
  ExperimentSequenceNumberDataLoader,
30
30
  LatencyMsQuantileDataLoader,
31
31
  MinStartOrMaxEndTimeDataLoader,
32
+ NumChildSpansDataLoader,
32
33
  ProjectByNameDataLoader,
33
34
  PromptVersionSequenceNumberDataLoader,
34
35
  RecordCountDataLoader,
@@ -76,6 +77,7 @@ class DataLoaders:
76
77
  experiment_sequence_number: ExperimentSequenceNumberDataLoader
77
78
  latency_ms_quantile: LatencyMsQuantileDataLoader
78
79
  min_start_or_max_end_times: MinStartOrMaxEndTimeDataLoader
80
+ num_child_spans: NumChildSpansDataLoader
79
81
  project_fields: TableFieldsDataLoader
80
82
  prompt_version_sequence_number: PromptVersionSequenceNumberDataLoader
81
83
  record_counts: RecordCountDataLoader
@@ -17,6 +17,7 @@ from .experiment_run_counts import ExperimentRunCountsDataLoader
17
17
  from .experiment_sequence_number import ExperimentSequenceNumberDataLoader
18
18
  from .latency_ms_quantile import LatencyMsQuantileCache, LatencyMsQuantileDataLoader
19
19
  from .min_start_or_max_end_times import MinStartOrMaxEndTimeCache, MinStartOrMaxEndTimeDataLoader
20
+ from .num_child_spans import NumChildSpansDataLoader
20
21
  from .project_by_name import ProjectByNameDataLoader
21
22
  from .prompt_version_sequence_number import PromptVersionSequenceNumberDataLoader
22
23
  from .record_counts import RecordCountCache, RecordCountDataLoader
@@ -53,6 +54,7 @@ __all__ = [
53
54
  "ExperimentSequenceNumberDataLoader",
54
55
  "LatencyMsQuantileDataLoader",
55
56
  "MinStartOrMaxEndTimeDataLoader",
57
+ "NumChildSpansDataLoader",
56
58
  "PromptVersionSequenceNumberDataLoader",
57
59
  "RecordCountDataLoader",
58
60
  "SessionIODataLoader",
@@ -0,0 +1,35 @@
1
+ from typing import Iterable
2
+
3
+ from sqlalchemy import func, select
4
+ from strawberry.dataloader import DataLoader
5
+ from typing_extensions import TypeAlias
6
+
7
+ from phoenix.db import models
8
+ from phoenix.server.types import DbSessionFactory
9
+
10
+ SpanRowId: TypeAlias = int
11
+
12
+ Key: TypeAlias = SpanRowId
13
+ Result: TypeAlias = int
14
+
15
+
16
+ class NumChildSpansDataLoader(DataLoader[Key, Result]):
17
+ def __init__(self, db: DbSessionFactory) -> None:
18
+ super().__init__(load_fn=self._load_fn)
19
+ self._db = db
20
+
21
+ async def _load_fn(self, keys: Iterable[Key]) -> list[Result]:
22
+ span_rowids = list(set(keys))
23
+ result: dict[Key, Result] = {}
24
+ children = select(models.Span).alias("children")
25
+ stmt = (
26
+ select(models.Span.id, func.count())
27
+ .where(models.Span.id.in_(span_rowids))
28
+ .join(children, children.c.parent_id == models.Span.span_id)
29
+ .group_by(models.Span.id)
30
+ )
31
+ async with self._db() as session:
32
+ data = await session.stream(stmt)
33
+ async for span_rowid, num_child_spans in data:
34
+ result[span_rowid] = num_child_spans
35
+ return [result.get(span_rowid, 0) for span_rowid in keys]
@@ -1,19 +1,21 @@
1
1
  from collections import defaultdict
2
2
  from datetime import datetime
3
- from typing import Optional, Union
3
+ from typing import Iterable, Iterator, Optional, Union, cast
4
4
 
5
5
  import numpy as np
6
6
  import numpy.typing as npt
7
7
  import strawberry
8
- from sqlalchemy import and_, distinct, func, select
8
+ from sqlalchemy import and_, distinct, func, select, text
9
9
  from sqlalchemy.orm import joinedload
10
10
  from starlette.authentication import UnauthenticatedUser
11
11
  from strawberry import ID, UNSET
12
12
  from strawberry.relay import Connection, GlobalID, Node
13
13
  from strawberry.types import Info
14
- from typing_extensions import Annotated, TypeAlias
14
+ from typing_extensions import Annotated, TypeAlias, assert_never
15
15
 
16
+ from phoenix.config import ENV_PHOENIX_SQL_DATABASE_SCHEMA, getenv
16
17
  from phoenix.db import enums, models
18
+ from phoenix.db.helpers import SupportedSQLDialect
17
19
  from phoenix.db.models import DatasetExample as OrmExample
18
20
  from phoenix.db.models import DatasetExampleRevision as OrmRevision
19
21
  from phoenix.db.models import DatasetVersion as OrmVersion
@@ -81,6 +83,12 @@ class ModelsInput:
81
83
  model_name: Optional[str] = None
82
84
 
83
85
 
86
+ @strawberry.type
87
+ class DbTableStats:
88
+ table_name: str
89
+ num_bytes: int
90
+
91
+
84
92
  @strawberry.type
85
93
  class Query:
86
94
  @strawberry.field
@@ -780,3 +788,64 @@ class Query:
780
788
  return to_gql_clusters(
781
789
  clustered_events=clustered_events,
782
790
  )
791
+
792
+ @strawberry.field
793
+ async def db_table_stats(
794
+ self,
795
+ info: Info[Context, None],
796
+ ) -> list[DbTableStats]:
797
+ if info.context.db.dialect is SupportedSQLDialect.SQLITE:
798
+ stmt = text("SELECT name, sum(pgsize) FROM dbstat group by name;")
799
+ async with info.context.db() as session:
800
+ stats = cast(Iterable[tuple[str, int]], await session.execute(stmt))
801
+ stats = _consolidate_sqlite_db_table_stats(stats)
802
+ elif info.context.db.dialect is SupportedSQLDialect.POSTGRESQL:
803
+ stmt = text(f"""\
804
+ SELECT c.relname, pg_total_relation_size(c.oid)
805
+ FROM pg_class as c
806
+ INNER JOIN pg_namespace as n ON n.oid = c.relnamespace
807
+ WHERE c.relkind = 'r'
808
+ AND n.nspname = '{getenv(ENV_PHOENIX_SQL_DATABASE_SCHEMA) or "public"}';
809
+ """)
810
+ async with info.context.db() as session:
811
+ stats = cast(Iterable[tuple[str, int]], await session.execute(stmt))
812
+ else:
813
+ assert_never(info.context.db.dialect)
814
+ return [
815
+ DbTableStats(table_name=table_name, num_bytes=num_bytes)
816
+ for table_name, num_bytes in stats
817
+ ]
818
+
819
+
820
+ def _consolidate_sqlite_db_table_stats(
821
+ stats: Iterable[tuple[str, int]],
822
+ ) -> Iterator[tuple[str, int]]:
823
+ """
824
+ Consolidate SQLite database stats by combining indexes with their respective tables.
825
+ """
826
+ aggregate: dict[str, int] = {}
827
+ for name, num_bytes in stats:
828
+ # Skip internal SQLite tables and indexes.
829
+ if name.startswith("ix_") or name.startswith("sqlite_"):
830
+ continue
831
+ aggregate[name] = num_bytes
832
+ for name, num_bytes in stats:
833
+ # Combine indexes with their respective tables.
834
+ for flag in ["sqlite_autoindex_", "ix_"]:
835
+ if not name.startswith(flag):
836
+ continue
837
+ if parent := _longest_matching_prefix(name[len(flag) :], aggregate.keys()):
838
+ aggregate[parent] += num_bytes
839
+ break
840
+ yield from aggregate.items()
841
+
842
+
843
+ def _longest_matching_prefix(s: str, prefixes: Iterable[str]) -> str:
844
+ """
845
+ Return the longest prefix of s that matches any of the given prefixes.
846
+ """
847
+ longest = ""
848
+ for prefix in prefixes:
849
+ if s.startswith(prefix) and len(prefix) > len(longest):
850
+ longest = prefix
851
+ return longest
@@ -537,6 +537,10 @@ class Span(Node):
537
537
  (self.span_rowid, evaluation_name or None, num_documents),
538
538
  )
539
539
 
540
+ @strawberry.field
541
+ async def num_child_spans(self, info: Info[Context, None]) -> int:
542
+ return await info.context.data_loaders.num_child_spans.load(self.span_rowid)
543
+
540
544
  @strawberry.field(
541
545
  description="All descendant spans (children, grandchildren, etc.)",
542
546
  ) # type: ignore
@@ -85,6 +85,7 @@ from phoenix.server.api.dataloaders import (
85
85
  ExperimentSequenceNumberDataLoader,
86
86
  LatencyMsQuantileDataLoader,
87
87
  MinStartOrMaxEndTimeDataLoader,
88
+ NumChildSpansDataLoader,
88
89
  ProjectByNameDataLoader,
89
90
  PromptVersionSequenceNumberDataLoader,
90
91
  RecordCountDataLoader,
@@ -614,6 +615,7 @@ def create_graphql_router(
614
615
  else None
615
616
  ),
616
617
  ),
618
+ num_child_spans=NumChildSpansDataLoader(db),
617
619
  project_fields=TableFieldsDataLoader(db, models.Project),
618
620
  prompt_version_sequence_number=PromptVersionSequenceNumberDataLoader(db),
619
621
  record_counts=RecordCountDataLoader(
@@ -0,0 +1,87 @@
1
+ {
2
+ "_components-BgFPI6sn.js": {
3
+ "file": "assets/components-BgFPI6sn.js",
4
+ "name": "components",
5
+ "imports": [
6
+ "_vendor-CRRq3WgM.js",
7
+ "_pages-CmDiPH1A.js",
8
+ "_vendor-arizeai-Dq64X_0o.js",
9
+ "_vendor-codemirror-C1oevlym.js",
10
+ "_vendor-three-C-AGeJYv.js"
11
+ ]
12
+ },
13
+ "_pages-CmDiPH1A.js": {
14
+ "file": "assets/pages-CmDiPH1A.js",
15
+ "name": "pages",
16
+ "imports": [
17
+ "_vendor-CRRq3WgM.js",
18
+ "_vendor-arizeai-Dq64X_0o.js",
19
+ "_components-BgFPI6sn.js",
20
+ "_vendor-codemirror-C1oevlym.js",
21
+ "_vendor-recharts-CPj01S89.js"
22
+ ]
23
+ },
24
+ "_vendor-CRRq3WgM.js": {
25
+ "file": "assets/vendor-CRRq3WgM.js",
26
+ "name": "vendor",
27
+ "imports": [
28
+ "_vendor-three-C-AGeJYv.js"
29
+ ],
30
+ "css": [
31
+ "assets/vendor-Cg6lcjUC.css"
32
+ ]
33
+ },
34
+ "_vendor-Cg6lcjUC.css": {
35
+ "file": "assets/vendor-Cg6lcjUC.css",
36
+ "src": "_vendor-Cg6lcjUC.css"
37
+ },
38
+ "_vendor-arizeai-Dq64X_0o.js": {
39
+ "file": "assets/vendor-arizeai-Dq64X_0o.js",
40
+ "name": "vendor-arizeai",
41
+ "imports": [
42
+ "_vendor-CRRq3WgM.js"
43
+ ]
44
+ },
45
+ "_vendor-codemirror-C1oevlym.js": {
46
+ "file": "assets/vendor-codemirror-C1oevlym.js",
47
+ "name": "vendor-codemirror",
48
+ "imports": [
49
+ "_vendor-CRRq3WgM.js",
50
+ "_vendor-shiki-aY7rz1pm.js"
51
+ ]
52
+ },
53
+ "_vendor-recharts-CPj01S89.js": {
54
+ "file": "assets/vendor-recharts-CPj01S89.js",
55
+ "name": "vendor-recharts",
56
+ "imports": [
57
+ "_vendor-CRRq3WgM.js"
58
+ ]
59
+ },
60
+ "_vendor-shiki-aY7rz1pm.js": {
61
+ "file": "assets/vendor-shiki-aY7rz1pm.js",
62
+ "name": "vendor-shiki",
63
+ "imports": [
64
+ "_vendor-CRRq3WgM.js"
65
+ ]
66
+ },
67
+ "_vendor-three-C-AGeJYv.js": {
68
+ "file": "assets/vendor-three-C-AGeJYv.js",
69
+ "name": "vendor-three"
70
+ },
71
+ "index.tsx": {
72
+ "file": "assets/index-CIkk8uHr.js",
73
+ "name": "index",
74
+ "src": "index.tsx",
75
+ "isEntry": true,
76
+ "imports": [
77
+ "_vendor-CRRq3WgM.js",
78
+ "_vendor-arizeai-Dq64X_0o.js",
79
+ "_pages-CmDiPH1A.js",
80
+ "_components-BgFPI6sn.js",
81
+ "_vendor-three-C-AGeJYv.js",
82
+ "_vendor-codemirror-C1oevlym.js",
83
+ "_vendor-shiki-aY7rz1pm.js",
84
+ "_vendor-recharts-CPj01S89.js"
85
+ ]
86
+ }
87
+ }