arize-phoenix 8.20.0__tar.gz → 8.22.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 (374) hide show
  1. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/PKG-INFO +1 -1
  2. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/config.py +133 -32
  3. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/insertion/helpers.py +1 -1
  4. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/types/identifier.py +3 -0
  5. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/queries.py +6 -0
  6. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/routers/v1/prompts.py +326 -11
  7. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/PromptVersionTag.py +13 -0
  8. arize_phoenix-8.22.0/src/phoenix/server/static/.vite/manifest.json +87 -0
  9. arize_phoenix-8.20.0/src/phoenix/server/static/assets/components-aaAzONZ2.js → arize_phoenix-8.22.0/src/phoenix/server/static/assets/components-BAc4OPED.js +393 -258
  10. arize_phoenix-8.20.0/src/phoenix/server/static/assets/index-D2lXCDzI.js → arize_phoenix-8.22.0/src/phoenix/server/static/assets/index-Du53xkjY.js +8 -3
  11. arize_phoenix-8.20.0/src/phoenix/server/static/assets/pages-Cn9q0Wzi.js → arize_phoenix-8.22.0/src/phoenix/server/static/assets/pages-Dz-gbBPF.js +352 -345
  12. arize_phoenix-8.20.0/src/phoenix/server/static/assets/vendor-BVuUQP12.js → arize_phoenix-8.22.0/src/phoenix/server/static/assets/vendor-CEisxXSv.js +161 -161
  13. arize_phoenix-8.20.0/src/phoenix/server/static/assets/vendor-arizeai-GniwlNtJ.js → arize_phoenix-8.22.0/src/phoenix/server/static/assets/vendor-arizeai-BCTsSnvS.js +2 -2
  14. arize_phoenix-8.20.0/src/phoenix/server/static/assets/vendor-codemirror-B2cYKEnB.js → arize_phoenix-8.22.0/src/phoenix/server/static/assets/vendor-codemirror-DIWnRs_7.js +1 -1
  15. arize_phoenix-8.20.0/src/phoenix/server/static/assets/vendor-recharts-BcoH60nz.js → arize_phoenix-8.22.0/src/phoenix/server/static/assets/vendor-recharts-Bame54mG.js +1 -1
  16. arize_phoenix-8.20.0/src/phoenix/server/static/assets/vendor-shiki-DWx3wasT.js → arize_phoenix-8.22.0/src/phoenix/server/static/assets/vendor-shiki-Cc73E4D-.js +1 -1
  17. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/session/session.py +2 -2
  18. arize_phoenix-8.22.0/src/phoenix/version.py +1 -0
  19. arize_phoenix-8.20.0/src/phoenix/server/static/.vite/manifest.json +0 -87
  20. arize_phoenix-8.20.0/src/phoenix/version.py +0 -1
  21. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/.gitignore +0 -0
  22. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/IP_NOTICE +0 -0
  23. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/LICENSE +0 -0
  24. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/README.md +0 -0
  25. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/pyproject.toml +0 -0
  26. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/__init__.py +0 -0
  27. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/auth.py +0 -0
  28. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/core/__init__.py +0 -0
  29. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/core/embedding_dimension.py +0 -0
  30. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/core/model.py +0 -0
  31. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/core/model_schema.py +0 -0
  32. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/core/model_schema_adapter.py +0 -0
  33. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/datetime_utils.py +0 -0
  34. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/README.md +0 -0
  35. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/__init__.py +0 -0
  36. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/alembic.ini +0 -0
  37. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/bulk_inserter.py +0 -0
  38. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/engines.py +0 -0
  39. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/enums.py +0 -0
  40. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/facilitator.py +0 -0
  41. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/helpers.py +0 -0
  42. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/insertion/__init__.py +0 -0
  43. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/insertion/constants.py +0 -0
  44. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/insertion/dataset.py +0 -0
  45. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/insertion/document_annotation.py +0 -0
  46. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/insertion/evaluation.py +0 -0
  47. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/insertion/span.py +0 -0
  48. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/insertion/span_annotation.py +0 -0
  49. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/insertion/trace_annotation.py +0 -0
  50. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/insertion/types.py +0 -0
  51. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/migrate.py +0 -0
  52. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/migrations/__init__.py +0 -0
  53. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/migrations/data_migration_scripts/__init__.py +0 -0
  54. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/migrations/data_migration_scripts/populate_project_sessions.py +0 -0
  55. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/migrations/env.py +0 -0
  56. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/migrations/script.py.mako +0 -0
  57. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/migrations/versions/10460e46d750_datasets.py +0 -0
  58. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/migrations/versions/3be8647b87d8_add_token_columns_to_spans_table.py +0 -0
  59. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/migrations/versions/4ded9e43755f_create_project_sessions_table.py +0 -0
  60. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/migrations/versions/bc8fea3c2bc8_add_prompt_tables.py +0 -0
  61. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/migrations/versions/cd164e83824f_users_and_tokens.py +0 -0
  62. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/migrations/versions/cf03bd6bae1d_init.py +0 -0
  63. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/models.py +0 -0
  64. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/types/__init__.py +0 -0
  65. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/db/types/model_provider.py +0 -0
  66. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/exceptions.py +0 -0
  67. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/experiments/__init__.py +0 -0
  68. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/experiments/evaluators/__init__.py +0 -0
  69. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/experiments/evaluators/base.py +0 -0
  70. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/experiments/evaluators/code_evaluators.py +0 -0
  71. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/experiments/evaluators/llm_evaluators.py +0 -0
  72. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/experiments/evaluators/utils.py +0 -0
  73. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/experiments/functions.py +0 -0
  74. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/experiments/tracing.py +0 -0
  75. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/experiments/types.py +0 -0
  76. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/experiments/utils.py +0 -0
  77. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/inferences/__init__.py +0 -0
  78. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/inferences/errors.py +0 -0
  79. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/inferences/fixtures.py +0 -0
  80. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/inferences/inferences.py +0 -0
  81. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/inferences/schema.py +0 -0
  82. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/inferences/validation.py +0 -0
  83. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/logging/__init__.py +0 -0
  84. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/logging/_config.py +0 -0
  85. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/logging/_filter.py +0 -0
  86. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/logging/_formatter.py +0 -0
  87. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/metrics/README.md +0 -0
  88. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/metrics/__init__.py +0 -0
  89. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/metrics/binning.py +0 -0
  90. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/metrics/metrics.py +0 -0
  91. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/metrics/mixins.py +0 -0
  92. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/metrics/retrieval_metrics.py +0 -0
  93. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/metrics/timeseries.py +0 -0
  94. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/metrics/wrappers.py +0 -0
  95. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/pointcloud/__init__.py +0 -0
  96. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/pointcloud/clustering.py +0 -0
  97. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/pointcloud/pointcloud.py +0 -0
  98. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/pointcloud/projectors.py +0 -0
  99. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/pointcloud/umap_parameters.py +0 -0
  100. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/py.typed +0 -0
  101. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/__init__.py +0 -0
  102. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/README.md +0 -0
  103. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/__init__.py +0 -0
  104. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/auth.py +0 -0
  105. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/context.py +0 -0
  106. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/__init__.py +0 -0
  107. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/annotation_summaries.py +0 -0
  108. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/average_experiment_run_latency.py +0 -0
  109. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/cache/__init__.py +0 -0
  110. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/cache/two_tier_cache.py +0 -0
  111. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/dataset_example_revisions.py +0 -0
  112. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/dataset_example_spans.py +0 -0
  113. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/document_evaluation_summaries.py +0 -0
  114. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/document_evaluations.py +0 -0
  115. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/document_retrieval_metrics.py +0 -0
  116. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/experiment_annotation_summaries.py +0 -0
  117. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/experiment_error_rates.py +0 -0
  118. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/experiment_run_annotations.py +0 -0
  119. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/experiment_run_counts.py +0 -0
  120. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/experiment_sequence_number.py +0 -0
  121. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/latency_ms_quantile.py +0 -0
  122. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/min_start_or_max_end_times.py +0 -0
  123. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/num_child_spans.py +0 -0
  124. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/num_spans_per_trace.py +0 -0
  125. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/project_by_name.py +0 -0
  126. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/prompt_version_sequence_number.py +0 -0
  127. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/record_counts.py +0 -0
  128. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/session_io.py +0 -0
  129. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/session_num_traces.py +0 -0
  130. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/session_num_traces_with_error.py +0 -0
  131. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/session_token_usages.py +0 -0
  132. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/session_trace_latency_ms_quantile.py +0 -0
  133. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/span_annotations.py +0 -0
  134. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/span_by_id.py +0 -0
  135. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/span_dataset_examples.py +0 -0
  136. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/span_descendants.py +0 -0
  137. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/span_projects.py +0 -0
  138. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/table_fields.py +0 -0
  139. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/token_counts.py +0 -0
  140. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/trace_by_trace_ids.py +0 -0
  141. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/trace_root_spans.py +0 -0
  142. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/user_roles.py +0 -0
  143. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/dataloaders/users.py +0 -0
  144. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/exceptions.py +0 -0
  145. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/helpers/__init__.py +0 -0
  146. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/helpers/dataset_helpers.py +0 -0
  147. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/helpers/experiment_run_filters.py +0 -0
  148. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/helpers/playground_clients.py +0 -0
  149. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/helpers/playground_registry.py +0 -0
  150. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/helpers/playground_spans.py +0 -0
  151. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/helpers/prompts/__init__.py +0 -0
  152. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/helpers/prompts/conversions/__init__.py +0 -0
  153. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/helpers/prompts/conversions/anthropic.py +0 -0
  154. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/helpers/prompts/conversions/openai.py +0 -0
  155. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/helpers/prompts/models.py +0 -0
  156. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/AddExamplesToDatasetInput.py +0 -0
  157. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/AddSpansToDatasetInput.py +0 -0
  158. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/ChatCompletionInput.py +0 -0
  159. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/ChatCompletionMessageInput.py +0 -0
  160. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/ClearProjectInput.py +0 -0
  161. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/ClusterInput.py +0 -0
  162. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/Coordinates.py +0 -0
  163. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/CreateDatasetInput.py +0 -0
  164. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/CreateSpanAnnotationInput.py +0 -0
  165. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/CreateTraceAnnotationInput.py +0 -0
  166. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/DataQualityMetricInput.py +0 -0
  167. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/DatasetExampleInput.py +0 -0
  168. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/DatasetSort.py +0 -0
  169. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/DatasetVersionSort.py +0 -0
  170. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/DeleteAnnotationsInput.py +0 -0
  171. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/DeleteDatasetExamplesInput.py +0 -0
  172. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/DeleteDatasetInput.py +0 -0
  173. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/DeleteExperimentsInput.py +0 -0
  174. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/DimensionFilter.py +0 -0
  175. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/DimensionInput.py +0 -0
  176. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/GenerativeModelInput.py +0 -0
  177. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/Granularity.py +0 -0
  178. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/InvocationParameters.py +0 -0
  179. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/PatchAnnotationInput.py +0 -0
  180. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/PatchDatasetExamplesInput.py +0 -0
  181. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/PatchDatasetInput.py +0 -0
  182. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/PerformanceMetricInput.py +0 -0
  183. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/ProjectSessionSort.py +0 -0
  184. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/PromptTemplateOptions.py +0 -0
  185. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/PromptVersionInput.py +0 -0
  186. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/SpanAnnotationSort.py +0 -0
  187. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/SpanSort.py +0 -0
  188. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/TimeRange.py +0 -0
  189. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/TraceAnnotationSort.py +0 -0
  190. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/UserRoleInput.py +0 -0
  191. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/input_types/__init__.py +0 -0
  192. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/interceptor.py +0 -0
  193. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/mutations/__init__.py +0 -0
  194. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/mutations/api_key_mutations.py +0 -0
  195. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/mutations/chat_mutations.py +0 -0
  196. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/mutations/dataset_mutations.py +0 -0
  197. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/mutations/experiment_mutations.py +0 -0
  198. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/mutations/export_events_mutations.py +0 -0
  199. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/mutations/project_mutations.py +0 -0
  200. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/mutations/prompt_label_mutations.py +0 -0
  201. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/mutations/prompt_mutations.py +0 -0
  202. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/mutations/prompt_version_tag_mutations.py +0 -0
  203. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/mutations/span_annotations_mutations.py +0 -0
  204. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/mutations/trace_annotations_mutations.py +0 -0
  205. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/mutations/trace_mutations.py +0 -0
  206. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/mutations/user_mutations.py +0 -0
  207. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/openapi/__init__.py +0 -0
  208. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/openapi/main.py +0 -0
  209. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/openapi/schema.py +0 -0
  210. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/routers/__init__.py +0 -0
  211. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/routers/auth.py +0 -0
  212. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/routers/embeddings.py +0 -0
  213. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/routers/oauth2.py +0 -0
  214. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/routers/utils.py +0 -0
  215. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/routers/v1/__init__.py +0 -0
  216. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/routers/v1/datasets.py +0 -0
  217. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/routers/v1/evaluations.py +0 -0
  218. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/routers/v1/experiment_evaluations.py +0 -0
  219. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/routers/v1/experiment_runs.py +0 -0
  220. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/routers/v1/experiments.py +0 -0
  221. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/routers/v1/models.py +0 -0
  222. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/routers/v1/spans.py +0 -0
  223. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/routers/v1/traces.py +0 -0
  224. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/routers/v1/utils.py +0 -0
  225. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/schema.py +0 -0
  226. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/subscriptions.py +0 -0
  227. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/Annotation.py +0 -0
  228. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/AnnotationSummary.py +0 -0
  229. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/AnnotatorKind.py +0 -0
  230. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/ApiKey.py +0 -0
  231. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/AuthMethod.py +0 -0
  232. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/ChatCompletionMessageRole.py +0 -0
  233. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/ChatCompletionSubscriptionPayload.py +0 -0
  234. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/Cluster.py +0 -0
  235. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/CreateDatasetPayload.py +0 -0
  236. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/DataQualityMetric.py +0 -0
  237. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/Dataset.py +0 -0
  238. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/DatasetExample.py +0 -0
  239. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/DatasetExampleRevision.py +0 -0
  240. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/DatasetValues.py +0 -0
  241. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/DatasetVersion.py +0 -0
  242. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/Dimension.py +0 -0
  243. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/DimensionDataType.py +0 -0
  244. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/DimensionShape.py +0 -0
  245. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/DimensionType.py +0 -0
  246. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/DimensionWithValue.py +0 -0
  247. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/DocumentEvaluationSummary.py +0 -0
  248. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/DocumentRetrievalMetrics.py +0 -0
  249. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/EmbeddingDimension.py +0 -0
  250. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/EmbeddingMetadata.py +0 -0
  251. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/Evaluation.py +0 -0
  252. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/EvaluationSummary.py +0 -0
  253. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/Event.py +0 -0
  254. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/EventMetadata.py +0 -0
  255. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/ExampleRevisionInterface.py +0 -0
  256. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/Experiment.py +0 -0
  257. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/ExperimentAnnotationSummary.py +0 -0
  258. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/ExperimentComparison.py +0 -0
  259. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/ExperimentRun.py +0 -0
  260. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/ExperimentRunAnnotation.py +0 -0
  261. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/ExportedFile.py +0 -0
  262. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/Functionality.py +0 -0
  263. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/GenerativeModel.py +0 -0
  264. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/GenerativeProvider.py +0 -0
  265. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/Identifier.py +0 -0
  266. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/Inferences.py +0 -0
  267. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/InferencesRole.py +0 -0
  268. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/LabelFraction.py +0 -0
  269. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/MimeType.py +0 -0
  270. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/Model.py +0 -0
  271. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/NumericRange.py +0 -0
  272. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/PerformanceMetric.py +0 -0
  273. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/Project.py +0 -0
  274. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/ProjectSession.py +0 -0
  275. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/Prompt.py +0 -0
  276. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/PromptLabel.py +0 -0
  277. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/PromptResponse.py +0 -0
  278. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/PromptVersion.py +0 -0
  279. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/PromptVersionTemplate.py +0 -0
  280. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/ResponseFormat.py +0 -0
  281. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/Retrieval.py +0 -0
  282. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py +0 -0
  283. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/Segments.py +0 -0
  284. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/SortDir.py +0 -0
  285. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/Span.py +0 -0
  286. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/SpanAnnotation.py +0 -0
  287. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/SpanIOValue.py +0 -0
  288. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/SystemApiKey.py +0 -0
  289. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/TimeSeries.py +0 -0
  290. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/TokenUsage.py +0 -0
  291. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/ToolDefinition.py +0 -0
  292. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/Trace.py +0 -0
  293. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/TraceAnnotation.py +0 -0
  294. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/UMAPPoints.py +0 -0
  295. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/User.py +0 -0
  296. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/UserApiKey.py +0 -0
  297. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/UserRole.py +0 -0
  298. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/ValidationResult.py +0 -0
  299. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/VectorDriftMetricEnum.py +0 -0
  300. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/__init__.py +0 -0
  301. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/node.py +0 -0
  302. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/types/pagination.py +0 -0
  303. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/api/utils.py +0 -0
  304. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/app.py +0 -0
  305. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/bearer_auth.py +0 -0
  306. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/dml_event.py +0 -0
  307. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/dml_event_handler.py +0 -0
  308. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/email/__init__.py +0 -0
  309. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/email/sender.py +0 -0
  310. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/email/templates/__init__.py +0 -0
  311. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/email/templates/password_reset.html +0 -0
  312. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/email/types.py +0 -0
  313. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/grpc_server.py +0 -0
  314. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/jwt_store.py +0 -0
  315. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/main.py +0 -0
  316. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/oauth2.py +0 -0
  317. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/openapi/__init__.py +0 -0
  318. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/prometheus.py +0 -0
  319. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/rate_limiters.py +0 -0
  320. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/static/apple-touch-icon-114x114.png +0 -0
  321. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/static/apple-touch-icon-120x120.png +0 -0
  322. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/static/apple-touch-icon-144x144.png +0 -0
  323. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/static/apple-touch-icon-152x152.png +0 -0
  324. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/static/apple-touch-icon-180x180.png +0 -0
  325. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/static/apple-touch-icon-72x72.png +0 -0
  326. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/static/apple-touch-icon-76x76.png +0 -0
  327. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/static/apple-touch-icon.png +0 -0
  328. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/static/assets/vendor-Cg6lcjUC.css +0 -0
  329. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/static/assets/vendor-three-C5WAXd5r.js +0 -0
  330. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/static/favicon.ico +0 -0
  331. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/static/modernizr.js +0 -0
  332. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/telemetry.py +0 -0
  333. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/templates/__init__.py +0 -0
  334. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/templates/index.html +0 -0
  335. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/thread_server.py +0 -0
  336. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/server/types.py +0 -0
  337. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/services.py +0 -0
  338. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/session/__init__.py +0 -0
  339. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/session/client.py +0 -0
  340. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/session/data_extractor.py +0 -0
  341. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/session/evaluation.py +0 -0
  342. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/settings.py +0 -0
  343. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/__init__.py +0 -0
  344. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/attributes.py +0 -0
  345. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/dsl/README.md +0 -0
  346. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/dsl/__init__.py +0 -0
  347. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/dsl/filter.py +0 -0
  348. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/dsl/helpers.py +0 -0
  349. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/dsl/query.py +0 -0
  350. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/errors.py +0 -0
  351. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/evaluation_conventions.py +0 -0
  352. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/exporter.py +0 -0
  353. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/fixtures.py +0 -0
  354. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/otel.py +0 -0
  355. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/projects.py +0 -0
  356. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/schemas.py +0 -0
  357. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/span_evaluations.py +0 -0
  358. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/span_json_decoder.py +0 -0
  359. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/span_json_encoder.py +0 -0
  360. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/trace_dataset.py +0 -0
  361. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/utils.py +0 -0
  362. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/v1/__init__.py +0 -0
  363. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/v1/evaluation_pb2.py +0 -0
  364. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/trace/v1/evaluation_pb2.pyi +0 -0
  365. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/utilities/__init__.py +0 -0
  366. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/utilities/client.py +0 -0
  367. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/utilities/deprecation.py +0 -0
  368. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/utilities/error_handling.py +0 -0
  369. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/utilities/json.py +0 -0
  370. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/utilities/logging.py +0 -0
  371. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/utilities/project.py +0 -0
  372. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/utilities/re.py +0 -0
  373. {arize_phoenix-8.20.0 → arize_phoenix-8.22.0}/src/phoenix/utilities/span_store.py +0 -0
  374. {arize_phoenix-8.20.0 → arize_phoenix-8.22.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.20.0
3
+ Version: 8.22.0
4
4
  Summary: AI Observability and Evaluation
5
5
  Project-URL: Documentation, https://docs.arize.com/phoenix/
6
6
  Project-URL: Issues, https://github.com/Arize-ai/phoenix/issues
@@ -7,9 +7,10 @@ from datetime import timedelta
7
7
  from enum import Enum
8
8
  from importlib.metadata import version
9
9
  from pathlib import Path
10
- from typing import Optional, cast, overload
10
+ from typing import Any, Optional, Union, cast, overload
11
11
  from urllib.parse import quote_plus, urlparse
12
12
 
13
+ import wrapt
13
14
  from email_validator import EmailNotValidError, validate_email
14
15
 
15
16
  from phoenix.utilities.logging import log_a_list
@@ -144,7 +145,7 @@ ENV_PHOENIX_DISABLE_RATE_LIMIT = "PHOENIX_DISABLE_RATE_LIMIT"
144
145
  ENV_PHOENIX_SECRET = "PHOENIX_SECRET"
145
146
  ENV_PHOENIX_DEFAULT_ADMIN_INITIAL_PASSWORD = "PHOENIX_DEFAULT_ADMIN_INITIAL_PASSWORD"
146
147
  """
147
- The initial password for the default admin account, which defaults to admin if not
148
+ The initial password for the default admin account, which defaults to 'admin' if not
148
149
  explicitly set. Note that changing this value will have no effect if the default admin
149
150
  record already exists in the database. In such cases, the default admin password must
150
151
  be updated manually in the application.
@@ -615,17 +616,138 @@ GENERATED_INFERENCES_NAME_PREFIX = "phoenix_inferences_"
615
616
  WORKING_DIR = get_working_dir()
616
617
  """The work directory for saving, loading, and exporting data."""
617
618
 
618
- ROOT_DIR = WORKING_DIR
619
- EXPORT_DIR = ROOT_DIR / "exports"
620
- INFERENCES_DIR = ROOT_DIR / "inferences"
621
- TRACE_DATASETS_DIR = ROOT_DIR / "trace_datasets"
622
619
 
620
+ class DirectoryError(Exception):
621
+ def __init__(self, message: Optional[str] = None) -> None:
622
+ if message is None:
623
+ message = (
624
+ "Local storage is not configured. Please set the "
625
+ "PHOENIX_WORKING_DIR environment variable to fix this."
626
+ )
627
+ super().__init__(message)
628
+
629
+
630
+ def get_env_postgres_connection_str() -> Optional[str]:
631
+ pg_user = os.getenv(ENV_PHOENIX_POSTGRES_USER)
632
+ pg_password = os.getenv(ENV_PHOENIX_POSTGRES_PASSWORD)
633
+ pg_host = os.getenv(ENV_PHOENIX_POSTGRES_HOST)
634
+ pg_port = os.getenv(ENV_PHOENIX_POSTGRES_PORT)
635
+ pg_db = os.getenv(ENV_PHOENIX_POSTGRES_DB)
636
+
637
+ if pg_host and ":" in pg_host:
638
+ pg_host, parsed_port = pg_host.split(":")
639
+ pg_port = pg_port or parsed_port # use the explicitly set port if provided
640
+
641
+ if pg_host and pg_user and pg_password:
642
+ encoded_password = quote_plus(pg_password)
643
+ connection_str = f"postgresql://{pg_user}:{encoded_password}@{pg_host}"
644
+ if pg_port:
645
+ connection_str = f"{connection_str}:{pg_port}"
646
+ if pg_db:
647
+ connection_str = f"{connection_str}/{pg_db}"
648
+
649
+ return connection_str
650
+ return None
651
+
652
+
653
+ def _no_local_storage() -> bool:
654
+ """
655
+ Check if we're using a postgres database by checking if postgres connection string is set
656
+ and a working directory was not explicitly set.
657
+ """
658
+ return get_env_postgres_connection_str() is not None and getenv(ENV_PHOENIX_WORKING_DIR) is None
659
+
660
+
661
+ class RestrictedPath(wrapt.ObjectProxy): # type: ignore[misc]
662
+ """
663
+ This wraps pathlib.Path and will raise a DirectoryError if no local storage is configured.
664
+
665
+ Users can forego configuring a working directory if they are using a postgres database. If this
666
+ condition is met, the working directory path wrapped by this object will raise an error when
667
+ accessed in any way.
668
+ """
669
+
670
+ def __init__(self, wrapped: Union[str, Path]) -> None:
671
+ super().__init__(Path(wrapped))
672
+ self.__wrapped__: Path
673
+
674
+ def _check_forbidden(self) -> None:
675
+ if _no_local_storage():
676
+ raise DirectoryError()
677
+ return
678
+
679
+ def __getattr__(self, name: str) -> Any:
680
+ attr = getattr(self.__wrapped__, name)
681
+
682
+ if callable(attr):
683
+
684
+ def wrapped_attr(*args: Any, **kwargs: Any) -> Any:
685
+ result = attr(*args, **kwargs)
686
+ if isinstance(result, Path):
687
+ self._check_forbidden()
688
+ return RestrictedPath(result)
689
+ elif hasattr(result, "__iter__") and not isinstance(result, (str, bytes)):
690
+ return (RestrictedPath(p) if isinstance(p, Path) else p for p in result)
691
+ return result
623
692
 
624
- def ensure_working_dir() -> None:
693
+ return wrapped_attr
694
+ else:
695
+ if isinstance(attr, Path):
696
+ self._check_forbidden()
697
+ return RestrictedPath(attr)
698
+ return attr
699
+
700
+ def __str__(self) -> str:
701
+ self._check_forbidden()
702
+ return str(self.__wrapped__)
703
+
704
+ def __repr__(self) -> str:
705
+ return f"<RestrictedPath({repr(self.__wrapped__)})>"
706
+
707
+ def __fspath__(self) -> str:
708
+ self._check_forbidden()
709
+ return str(self.__wrapped__)
710
+
711
+ def __truediv__(self, other: Union[str, Path]) -> Path:
712
+ self._check_forbidden()
713
+ return self.__wrapped__ / other
714
+
715
+ def __itruediv__(self, other: Union[str, Path]) -> Path:
716
+ self.__wrapped__ /= other
717
+ self._check_forbidden()
718
+ return self.__wrapped__
719
+
720
+ def __eq__(self, other: object) -> bool:
721
+ if isinstance(other, RestrictedPath):
722
+ return bool(self.__wrapped__ == other.__wrapped__)
723
+ return bool(self.__wrapped__ == other)
724
+
725
+ def __hash__(self) -> int:
726
+ return hash(self.__wrapped__)
727
+
728
+ def __len__(self) -> int:
729
+ return len(self.__wrapped__.parts)
730
+
731
+ def __contains__(self, item: str) -> bool:
732
+ return item in self.__wrapped__.parts
733
+
734
+
735
+ ROOT_DIR = RestrictedPath(WORKING_DIR)
736
+ EXPORT_DIR = RestrictedPath(WORKING_DIR / "exports")
737
+ INFERENCES_DIR = RestrictedPath(WORKING_DIR / "inferences")
738
+ TRACE_DATASETS_DIR = RestrictedPath(WORKING_DIR / "trace_datasets")
739
+
740
+
741
+ def ensure_working_dir_if_needed() -> None:
625
742
  """
626
743
  Ensure the working directory exists. This is needed because the working directory
627
744
  must exist before certain operations can be performed.
745
+
746
+ This is bypassed if a postgres database is configured and a working directory is not set.
628
747
  """
748
+ if _no_local_storage():
749
+ pass
750
+
629
751
  logger.info(f"📋 Ensuring phoenix working directory: {WORKING_DIR}")
630
752
  try:
631
753
  for path in (
@@ -644,8 +766,8 @@ def ensure_working_dir() -> None:
644
766
  raise
645
767
 
646
768
 
647
- # Invoke ensure_working_dir() to ensure the working directory exists
648
- ensure_working_dir()
769
+ # Invoke ensure_working_dir_if_needed() to ensure the working directory exists
770
+ ensure_working_dir_if_needed()
649
771
 
650
772
 
651
773
  def get_exported_files(directory: Path) -> list[Path]:
@@ -662,6 +784,8 @@ def get_exported_files(directory: Path) -> list[Path]:
662
784
  list: list[Path]
663
785
  List of paths of the exported files.
664
786
  """
787
+ if _no_local_storage():
788
+ return [] # Do not attempt to access local storage
665
789
  return list(directory.glob("*.parquet"))
666
790
 
667
791
 
@@ -734,29 +858,6 @@ def get_env_database_connection_str() -> str:
734
858
  return f"sqlite:///{working_dir}/phoenix.db"
735
859
 
736
860
 
737
- def get_env_postgres_connection_str() -> Optional[str]:
738
- pg_user = os.getenv(ENV_PHOENIX_POSTGRES_USER)
739
- pg_password = os.getenv(ENV_PHOENIX_POSTGRES_PASSWORD)
740
- pg_host = os.getenv(ENV_PHOENIX_POSTGRES_HOST)
741
- pg_port = os.getenv(ENV_PHOENIX_POSTGRES_PORT)
742
- pg_db = os.getenv(ENV_PHOENIX_POSTGRES_DB)
743
-
744
- if pg_host and ":" in pg_host:
745
- pg_host, parsed_port = pg_host.split(":")
746
- pg_port = pg_port or parsed_port # use the explicitly set port if provided
747
-
748
- if pg_host and pg_user and pg_password:
749
- encoded_password = quote_plus(pg_password)
750
- connection_str = f"postgresql://{pg_user}:{encoded_password}@{pg_host}"
751
- if pg_port:
752
- connection_str = f"{connection_str}:{pg_port}"
753
- if pg_db:
754
- connection_str = f"{connection_str}/{pg_db}"
755
-
756
- return connection_str
757
- return None
758
-
759
-
760
861
  def get_env_database_schema() -> Optional[str]:
761
862
  if get_env_database_connection_str().startswith("sqlite"):
762
863
  return None
@@ -78,7 +78,7 @@ def _clean(
78
78
  kv: Iterable[tuple[str, KeyedColumnElement[Any]]],
79
79
  ) -> Iterator[tuple[str, KeyedColumnElement[Any]]]:
80
80
  for k, v in kv:
81
- if v.primary_key or v.foreign_keys or k == "created_at":
81
+ if v.primary_key or k == "created_at":
82
82
  continue
83
83
  if k == "metadata_":
84
84
  yield "metadata", v
@@ -5,3 +5,6 @@ from pydantic import Field, RootModel
5
5
 
6
6
  class Identifier(RootModel[str]):
7
7
  root: Annotated[str, Field(pattern=r"^[a-z0-9]([_a-z0-9-]*[a-z0-9])?$")]
8
+
9
+ def __hash__(self) -> int:
10
+ return hash(self.root)
@@ -69,6 +69,7 @@ from phoenix.server.api.types.ProjectSession import ProjectSession, to_gql_proje
69
69
  from phoenix.server.api.types.Prompt import Prompt, to_gql_prompt_from_orm
70
70
  from phoenix.server.api.types.PromptLabel import PromptLabel, to_gql_prompt_label
71
71
  from phoenix.server.api.types.PromptVersion import PromptVersion, to_gql_prompt_version
72
+ from phoenix.server.api.types.PromptVersionTag import PromptVersionTag, to_gql_prompt_version_tag
72
73
  from phoenix.server.api.types.SortDir import SortDir
73
74
  from phoenix.server.api.types.Span import Span
74
75
  from phoenix.server.api.types.SystemApiKey import SystemApiKey
@@ -596,6 +597,11 @@ class Query:
596
597
  ):
597
598
  raise NotFound(f"Unknown prompt label: {id}")
598
599
  return to_gql_prompt_label(prompt_label)
600
+ elif type_name == PromptVersionTag.__name__:
601
+ async with info.context.db() as session:
602
+ if not (prompt_version_tag := await session.get(models.PromptVersionTag, node_id)):
603
+ raise NotFound(f"Unknown prompt version tag: {id}")
604
+ return to_gql_prompt_version_tag(prompt_version_tag)
599
605
  raise NotFound(f"Unknown node type: {type_name}")
600
606
 
601
607
  @strawberry.field