arize-phoenix 11.15.0__tar.gz → 11.16.1__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 (450) hide show
  1. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/PKG-INFO +1 -1
  2. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/models.py +35 -0
  3. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/chat_mutations.py +10 -6
  4. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/experiments.py +2 -1
  5. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/traces.py +52 -3
  6. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/subscriptions.py +5 -3
  7. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Project.py +2 -2
  8. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/dml_event_handler.py +4 -0
  9. arize_phoenix-11.16.1/src/phoenix/server/experiments/utils.py +14 -0
  10. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/.vite/manifest.json +1 -1
  11. arize_phoenix-11.15.0/src/phoenix/server/static/assets/index-ByWTGseQ.js → arize_phoenix-11.16.1/src/phoenix/server/static/assets/index-UY6kXBX7.js +1 -0
  12. arize_phoenix-11.16.1/src/phoenix/utilities/span_store.py +0 -0
  13. arize_phoenix-11.16.1/src/phoenix/version.py +1 -0
  14. arize_phoenix-11.15.0/src/phoenix/version.py +0 -1
  15. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/.gitignore +0 -0
  16. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/IP_NOTICE +0 -0
  17. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/LICENSE +0 -0
  18. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/README.md +0 -0
  19. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/pyproject.toml +0 -0
  20. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/__init__.py +0 -0
  21. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/auth.py +0 -0
  22. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/config.py +0 -0
  23. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/core/__init__.py +0 -0
  24. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/core/embedding_dimension.py +0 -0
  25. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/core/model.py +0 -0
  26. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/core/model_schema.py +0 -0
  27. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/core/model_schema_adapter.py +0 -0
  28. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/datetime_utils.py +0 -0
  29. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/README.md +0 -0
  30. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/__init__.py +0 -0
  31. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/alembic.ini +0 -0
  32. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/bulk_inserter.py +0 -0
  33. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/constants.py +0 -0
  34. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/engines.py +0 -0
  35. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/enums.py +0 -0
  36. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/facilitator.py +0 -0
  37. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/helpers.py +0 -0
  38. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/__init__.py +0 -0
  39. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/constants.py +0 -0
  40. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/dataset.py +0 -0
  41. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/document_annotation.py +0 -0
  42. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/evaluation.py +0 -0
  43. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/helpers.py +0 -0
  44. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/span.py +0 -0
  45. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/span_annotation.py +0 -0
  46. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/trace_annotation.py +0 -0
  47. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/types.py +0 -0
  48. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrate.py +0 -0
  49. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/__init__.py +0 -0
  50. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/data_migration_scripts/__init__.py +0 -0
  51. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/data_migration_scripts/populate_project_sessions.py +0 -0
  52. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/env.py +0 -0
  53. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/script.py.mako +0 -0
  54. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/10460e46d750_datasets.py +0 -0
  55. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/2f9d1a65945f_annotation_config_migration.py +0 -0
  56. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/3be8647b87d8_add_token_columns_to_spans_table.py +0 -0
  57. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/4ded9e43755f_create_project_sessions_table.py +0 -0
  58. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/6a88424799fe_update_users_with_auth_method.py +0 -0
  59. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/8a3764fe7f1a_change_jsonb_to_json_for_prompts.py +0 -0
  60. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/a20694b15f82_cost.py +0 -0
  61. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/bb8139330879_create_project_trace_retention_policies_table.py +0 -0
  62. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/bc8fea3c2bc8_add_prompt_tables.py +0 -0
  63. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/cd164e83824f_users_and_tokens.py +0 -0
  64. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/cf03bd6bae1d_init.py +0 -0
  65. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/pg_config.py +0 -0
  66. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/types/__init__.py +0 -0
  67. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/types/annotation_configs.py +0 -0
  68. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/types/db_models.py +0 -0
  69. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/types/identifier.py +0 -0
  70. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/types/model_provider.py +0 -0
  71. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/types/token_price_customization.py +0 -0
  72. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/types/trace_retention.py +0 -0
  73. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/exceptions.py +0 -0
  74. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/__init__.py +0 -0
  75. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/evaluators/__init__.py +0 -0
  76. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/evaluators/base.py +0 -0
  77. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/evaluators/code_evaluators.py +0 -0
  78. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/evaluators/llm_evaluators.py +0 -0
  79. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/evaluators/utils.py +0 -0
  80. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/functions.py +0 -0
  81. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/tracing.py +0 -0
  82. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/types.py +0 -0
  83. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/utils.py +0 -0
  84. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/inferences/__init__.py +0 -0
  85. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/inferences/errors.py +0 -0
  86. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/inferences/fixtures.py +0 -0
  87. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/inferences/inferences.py +0 -0
  88. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/inferences/schema.py +0 -0
  89. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/inferences/validation.py +0 -0
  90. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/logging/__init__.py +0 -0
  91. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/logging/_config.py +0 -0
  92. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/logging/_filter.py +0 -0
  93. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/logging/_formatter.py +0 -0
  94. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/metrics/README.md +0 -0
  95. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/metrics/__init__.py +0 -0
  96. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/metrics/binning.py +0 -0
  97. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/metrics/metrics.py +0 -0
  98. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/metrics/mixins.py +0 -0
  99. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/metrics/retrieval_metrics.py +0 -0
  100. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/metrics/timeseries.py +0 -0
  101. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/metrics/wrappers.py +0 -0
  102. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/pointcloud/__init__.py +0 -0
  103. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/pointcloud/clustering.py +0 -0
  104. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/pointcloud/pointcloud.py +0 -0
  105. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/pointcloud/projectors.py +0 -0
  106. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/pointcloud/umap_parameters.py +0 -0
  107. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/py.typed +0 -0
  108. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/__init__.py +0 -0
  109. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/README.md +0 -0
  110. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/__init__.py +0 -0
  111. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/auth.py +0 -0
  112. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/context.py +0 -0
  113. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/__init__.py +0 -0
  114. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/annotation_configs_by_project.py +0 -0
  115. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/annotation_summaries.py +0 -0
  116. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/average_experiment_run_latency.py +0 -0
  117. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/cache/__init__.py +0 -0
  118. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/cache/two_tier_cache.py +0 -0
  119. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/dataset_example_revisions.py +0 -0
  120. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/dataset_example_spans.py +0 -0
  121. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/document_evaluation_summaries.py +0 -0
  122. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/document_evaluations.py +0 -0
  123. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/document_retrieval_metrics.py +0 -0
  124. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/experiment_annotation_summaries.py +0 -0
  125. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/experiment_error_rates.py +0 -0
  126. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/experiment_run_annotations.py +0 -0
  127. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/experiment_run_counts.py +0 -0
  128. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/experiment_sequence_number.py +0 -0
  129. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/last_used_times_by_generative_model_id.py +0 -0
  130. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/latency_ms_quantile.py +0 -0
  131. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/min_start_or_max_end_times.py +0 -0
  132. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/num_child_spans.py +0 -0
  133. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/num_spans_per_trace.py +0 -0
  134. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/project_by_name.py +0 -0
  135. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/project_ids_by_trace_retention_policy_id.py +0 -0
  136. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/prompt_version_sequence_number.py +0 -0
  137. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/record_counts.py +0 -0
  138. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/session_io.py +0 -0
  139. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/session_num_traces.py +0 -0
  140. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/session_num_traces_with_error.py +0 -0
  141. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/session_token_usages.py +0 -0
  142. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/session_trace_latency_ms_quantile.py +0 -0
  143. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_annotations.py +0 -0
  144. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_by_id.py +0 -0
  145. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_by_span.py +0 -0
  146. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_generative_model.py +0 -0
  147. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_project_session.py +0 -0
  148. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_span.py +0 -0
  149. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_trace.py +0 -0
  150. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_details_by_span_cost.py +0 -0
  151. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_summary_by_experiment.py +0 -0
  152. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_summary_by_experiment_run.py +0 -0
  153. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_summary_by_generative_model.py +0 -0
  154. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_summary_by_project.py +0 -0
  155. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_summary_by_project_session.py +0 -0
  156. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_summary_by_trace.py +0 -0
  157. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_costs.py +0 -0
  158. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_dataset_examples.py +0 -0
  159. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_descendants.py +0 -0
  160. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_projects.py +0 -0
  161. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/table_fields.py +0 -0
  162. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/token_counts.py +0 -0
  163. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/trace_by_trace_ids.py +0 -0
  164. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/trace_retention_policy_id_by_project_id.py +0 -0
  165. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/trace_root_spans.py +0 -0
  166. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/types.py +0 -0
  167. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/user_roles.py +0 -0
  168. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/users.py +0 -0
  169. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/exceptions.py +0 -0
  170. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/__init__.py +0 -0
  171. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/annotations.py +0 -0
  172. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/dataset_helpers.py +0 -0
  173. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/experiment_run_filters.py +0 -0
  174. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/playground_clients.py +0 -0
  175. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/playground_registry.py +0 -0
  176. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/playground_spans.py +0 -0
  177. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/prompts/__init__.py +0 -0
  178. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/prompts/conversions/__init__.py +0 -0
  179. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/prompts/conversions/anthropic.py +0 -0
  180. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/prompts/conversions/aws.py +0 -0
  181. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/prompts/conversions/openai.py +0 -0
  182. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/prompts/models.py +0 -0
  183. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/AddExamplesToDatasetInput.py +0 -0
  184. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/AddSpansToDatasetInput.py +0 -0
  185. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/ChatCompletionInput.py +0 -0
  186. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/ChatCompletionMessageInput.py +0 -0
  187. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/ClearProjectInput.py +0 -0
  188. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/ClusterInput.py +0 -0
  189. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/Coordinates.py +0 -0
  190. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/CreateDatasetInput.py +0 -0
  191. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/CreateProjectInput.py +0 -0
  192. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/CreateSpanAnnotationInput.py +0 -0
  193. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/CreateTraceAnnotationInput.py +0 -0
  194. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DataQualityMetricInput.py +0 -0
  195. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DatasetExampleInput.py +0 -0
  196. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DatasetFilter.py +0 -0
  197. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DatasetSort.py +0 -0
  198. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DatasetVersionSort.py +0 -0
  199. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DeleteAnnotationsInput.py +0 -0
  200. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DeleteDatasetExamplesInput.py +0 -0
  201. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DeleteDatasetInput.py +0 -0
  202. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DeleteExperimentsInput.py +0 -0
  203. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DimensionFilter.py +0 -0
  204. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DimensionInput.py +0 -0
  205. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/GenerativeCredentialInput.py +0 -0
  206. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/GenerativeModelInput.py +0 -0
  207. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/Granularity.py +0 -0
  208. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/InvocationParameters.py +0 -0
  209. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/PatchAnnotationInput.py +0 -0
  210. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/PatchDatasetExamplesInput.py +0 -0
  211. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/PatchDatasetInput.py +0 -0
  212. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/PerformanceMetricInput.py +0 -0
  213. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/ProjectFilter.py +0 -0
  214. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/ProjectSessionSort.py +0 -0
  215. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/ProjectSort.py +0 -0
  216. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/PromptFilter.py +0 -0
  217. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/PromptTemplateOptions.py +0 -0
  218. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/PromptVersionInput.py +0 -0
  219. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/SpanAnnotationFilter.py +0 -0
  220. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/SpanAnnotationSort.py +0 -0
  221. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/SpanSort.py +0 -0
  222. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/TimeBinConfig.py +0 -0
  223. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/TimeRange.py +0 -0
  224. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/TraceAnnotationSort.py +0 -0
  225. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/UserRoleInput.py +0 -0
  226. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/__init__.py +0 -0
  227. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/interceptor.py +0 -0
  228. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/__init__.py +0 -0
  229. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/annotation_config_mutations.py +0 -0
  230. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/api_key_mutations.py +0 -0
  231. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/dataset_mutations.py +0 -0
  232. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/experiment_mutations.py +0 -0
  233. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/export_events_mutations.py +0 -0
  234. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/model_mutations.py +0 -0
  235. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/project_mutations.py +0 -0
  236. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/project_trace_retention_policy_mutations.py +0 -0
  237. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/prompt_label_mutations.py +0 -0
  238. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/prompt_mutations.py +0 -0
  239. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/prompt_version_tag_mutations.py +0 -0
  240. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/span_annotations_mutations.py +0 -0
  241. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/trace_annotations_mutations.py +0 -0
  242. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/trace_mutations.py +0 -0
  243. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/user_mutations.py +0 -0
  244. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/openapi/__init__.py +0 -0
  245. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/openapi/main.py +0 -0
  246. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/openapi/schema.py +0 -0
  247. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/queries.py +0 -0
  248. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/__init__.py +0 -0
  249. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/auth.py +0 -0
  250. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/embeddings.py +0 -0
  251. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/oauth2.py +0 -0
  252. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/utils.py +0 -0
  253. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/__init__.py +0 -0
  254. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/annotation_configs.py +0 -0
  255. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/annotations.py +0 -0
  256. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/datasets.py +0 -0
  257. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/evaluations.py +0 -0
  258. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/experiment_evaluations.py +0 -0
  259. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/experiment_runs.py +0 -0
  260. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/models.py +0 -0
  261. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/projects.py +0 -0
  262. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/prompts.py +0 -0
  263. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/spans.py +0 -0
  264. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/users.py +0 -0
  265. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/utils.py +0 -0
  266. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/schema.py +0 -0
  267. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Annotation.py +0 -0
  268. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/AnnotationConfig.py +0 -0
  269. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/AnnotationSource.py +0 -0
  270. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/AnnotationSummary.py +0 -0
  271. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/AnnotatorKind.py +0 -0
  272. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ApiKey.py +0 -0
  273. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/AuthMethod.py +0 -0
  274. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ChatCompletionMessageRole.py +0 -0
  275. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ChatCompletionSubscriptionPayload.py +0 -0
  276. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Cluster.py +0 -0
  277. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/CostBreakdown.py +0 -0
  278. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/CreateDatasetPayload.py +0 -0
  279. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/CronExpression.py +0 -0
  280. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DataQualityMetric.py +0 -0
  281. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Dataset.py +0 -0
  282. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DatasetExample.py +0 -0
  283. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DatasetExampleRevision.py +0 -0
  284. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DatasetValues.py +0 -0
  285. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DatasetVersion.py +0 -0
  286. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Dimension.py +0 -0
  287. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DimensionDataType.py +0 -0
  288. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DimensionShape.py +0 -0
  289. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DimensionType.py +0 -0
  290. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DimensionWithValue.py +0 -0
  291. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DocumentEvaluationSummary.py +0 -0
  292. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DocumentRetrievalMetrics.py +0 -0
  293. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/EmbeddingDimension.py +0 -0
  294. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/EmbeddingMetadata.py +0 -0
  295. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Evaluation.py +0 -0
  296. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/EvaluationSummary.py +0 -0
  297. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Event.py +0 -0
  298. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/EventMetadata.py +0 -0
  299. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ExampleRevisionInterface.py +0 -0
  300. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Experiment.py +0 -0
  301. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ExperimentAnnotationSummary.py +0 -0
  302. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ExperimentComparison.py +0 -0
  303. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ExperimentRun.py +0 -0
  304. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ExperimentRunAnnotation.py +0 -0
  305. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ExportedFile.py +0 -0
  306. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Functionality.py +0 -0
  307. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/GenerativeModel.py +0 -0
  308. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/GenerativeProvider.py +0 -0
  309. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Identifier.py +0 -0
  310. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/InferenceModel.py +0 -0
  311. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Inferences.py +0 -0
  312. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/InferencesRole.py +0 -0
  313. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/LabelFraction.py +0 -0
  314. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/MimeType.py +0 -0
  315. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ModelInterface.py +0 -0
  316. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/NumericRange.py +0 -0
  317. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/PerformanceMetric.py +0 -0
  318. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/PlaygroundModel.py +0 -0
  319. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ProjectSession.py +0 -0
  320. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ProjectTraceRetentionPolicy.py +0 -0
  321. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Prompt.py +0 -0
  322. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/PromptLabel.py +0 -0
  323. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/PromptResponse.py +0 -0
  324. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/PromptVersion.py +0 -0
  325. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/PromptVersionTag.py +0 -0
  326. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/PromptVersionTemplate.py +0 -0
  327. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ResponseFormat.py +0 -0
  328. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Retrieval.py +0 -0
  329. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py +0 -0
  330. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Segments.py +0 -0
  331. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ServerStatus.py +0 -0
  332. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/SortDir.py +0 -0
  333. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Span.py +0 -0
  334. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/SpanAnnotation.py +0 -0
  335. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/SpanCostDetailSummaryEntry.py +0 -0
  336. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/SpanCostSummary.py +0 -0
  337. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/SpanIOValue.py +0 -0
  338. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/SystemApiKey.py +0 -0
  339. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/TimeSeries.py +0 -0
  340. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/TokenCountPromptDetails.py +0 -0
  341. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/TokenPrice.py +0 -0
  342. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/TokenUsage.py +0 -0
  343. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ToolDefinition.py +0 -0
  344. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Trace.py +0 -0
  345. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/TraceAnnotation.py +0 -0
  346. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/UMAPPoints.py +0 -0
  347. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/User.py +0 -0
  348. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/UserApiKey.py +0 -0
  349. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/UserRole.py +0 -0
  350. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ValidationResult.py +0 -0
  351. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/VectorDriftMetricEnum.py +0 -0
  352. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/__init__.py +0 -0
  353. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/node.py +0 -0
  354. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/pagination.py +0 -0
  355. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/utils.py +0 -0
  356. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/app.py +0 -0
  357. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/authorization.py +0 -0
  358. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/bearer_auth.py +0 -0
  359. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/cost_tracking/__init__.py +0 -0
  360. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/cost_tracking/cost_details_calculator.py +0 -0
  361. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/cost_tracking/cost_model_lookup.py +0 -0
  362. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/cost_tracking/helpers.py +0 -0
  363. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/cost_tracking/model_cost_manifest.json +0 -0
  364. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/cost_tracking/regex_specificity.py +0 -0
  365. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/cost_tracking/token_cost_calculator.py +0 -0
  366. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/daemons/__init__.py +0 -0
  367. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/daemons/db_disk_usage_monitor.py +0 -0
  368. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/daemons/generative_model_store.py +0 -0
  369. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/daemons/span_cost_calculator.py +0 -0
  370. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/dml_event.py +0 -0
  371. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/email/__init__.py +0 -0
  372. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/email/sender.py +0 -0
  373. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/email/templates/__init__.py +0 -0
  374. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/email/templates/db_disk_usage_notification.html +0 -0
  375. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/email/templates/password_reset.html +0 -0
  376. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/email/templates/welcome.html +0 -0
  377. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/email/types.py +0 -0
  378. {arize_phoenix-11.15.0/src/phoenix/server/middleware → arize_phoenix-11.16.1/src/phoenix/server/experiments}/__init__.py +0 -0
  379. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/grpc_server.py +0 -0
  380. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/jwt_store.py +0 -0
  381. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/main.py +0 -0
  382. {arize_phoenix-11.15.0/src/phoenix/server/openapi → arize_phoenix-11.16.1/src/phoenix/server/middleware}/__init__.py +0 -0
  383. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/middleware/gzip.py +0 -0
  384. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/oauth2.py +0 -0
  385. {arize_phoenix-11.15.0/src/phoenix/server/templates → arize_phoenix-11.16.1/src/phoenix/server/openapi}/__init__.py +0 -0
  386. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/prometheus.py +0 -0
  387. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/rate_limiters.py +0 -0
  388. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/retention.py +0 -0
  389. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/apple-touch-icon-114x114.png +0 -0
  390. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/apple-touch-icon-120x120.png +0 -0
  391. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/apple-touch-icon-144x144.png +0 -0
  392. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/apple-touch-icon-152x152.png +0 -0
  393. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/apple-touch-icon-180x180.png +0 -0
  394. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/apple-touch-icon-72x72.png +0 -0
  395. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/apple-touch-icon-76x76.png +0 -0
  396. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/apple-touch-icon.png +0 -0
  397. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/assets/components-CK8hwrPx.js +0 -0
  398. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/assets/pages-D8Hgmz1V.js +0 -0
  399. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/assets/vendor-CqDb5u4o.css +0 -0
  400. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/assets/vendor-_6rG8OMg.js +0 -0
  401. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/assets/vendor-arizeai-BznCmJFh.js +0 -0
  402. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/assets/vendor-codemirror-29fWLPAy.js +0 -0
  403. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/assets/vendor-recharts-Cu431IpB.js +0 -0
  404. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/assets/vendor-shiki-Ce9e01lU.js +0 -0
  405. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/assets/vendor-three-C5WAXd5r.js +0 -0
  406. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/favicon.ico +0 -0
  407. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/modernizr.js +0 -0
  408. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/telemetry.py +0 -0
  409. {arize_phoenix-11.15.0/src/phoenix/session → arize_phoenix-11.16.1/src/phoenix/server/templates}/__init__.py +0 -0
  410. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/templates/index.html +0 -0
  411. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/thread_server.py +0 -0
  412. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/types.py +0 -0
  413. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/services.py +0 -0
  414. /arize_phoenix-11.15.0/src/phoenix/utilities/span_store.py → /arize_phoenix-11.16.1/src/phoenix/session/__init__.py +0 -0
  415. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/session/client.py +0 -0
  416. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/session/data_extractor.py +0 -0
  417. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/session/evaluation.py +0 -0
  418. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/session/session.py +0 -0
  419. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/settings.py +0 -0
  420. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/__init__.py +0 -0
  421. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/attributes.py +0 -0
  422. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/dsl/README.md +0 -0
  423. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/dsl/__init__.py +0 -0
  424. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/dsl/filter.py +0 -0
  425. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/dsl/helpers.py +0 -0
  426. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/dsl/query.py +0 -0
  427. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/errors.py +0 -0
  428. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/evaluation_conventions.py +0 -0
  429. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/exporter.py +0 -0
  430. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/fixtures.py +0 -0
  431. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/otel.py +0 -0
  432. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/projects.py +0 -0
  433. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/schemas.py +0 -0
  434. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/span_evaluations.py +0 -0
  435. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/span_json_decoder.py +0 -0
  436. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/span_json_encoder.py +0 -0
  437. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/trace_dataset.py +0 -0
  438. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/utils.py +0 -0
  439. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/v1/__init__.py +0 -0
  440. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/v1/evaluation_pb2.py +0 -0
  441. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/v1/evaluation_pb2.pyi +0 -0
  442. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/utilities/__init__.py +0 -0
  443. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/utilities/client.py +0 -0
  444. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/utilities/deprecation.py +0 -0
  445. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/utilities/error_handling.py +0 -0
  446. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/utilities/json.py +0 -0
  447. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/utilities/logging.py +0 -0
  448. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/utilities/project.py +0 -0
  449. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/utilities/re.py +0 -0
  450. {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/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: 11.15.0
3
+ Version: 11.16.1
4
4
  Summary: AI Observability and Evaluation
5
5
  Project-URL: Documentation, https://arize.com/docs/phoenix/
6
6
  Project-URL: Issues, https://github.com/Arize-ai/phoenix/issues
@@ -841,6 +841,41 @@ def _(element: Any, compiler: Any, **kw: Any) -> Any:
841
841
  return compiler.process(func.text_contains(string, substring) > 0, **kw)
842
842
 
843
843
 
844
+ class CaseInsensitiveContains(expression.FunctionElement[bool]):
845
+ # See https://docs.sqlalchemy.org/en/20/core/compiler.html
846
+ inherit_cache = True
847
+ type = Boolean()
848
+ name = "case_insensitive_contains"
849
+
850
+
851
+ @compiles(CaseInsensitiveContains)
852
+ def _(element: Any, compiler: Any, **kw: Any) -> Any:
853
+ string, substring = list(element.clauses)
854
+ result = compiler.process(func.lower(string).contains(func.lower(substring)), **kw)
855
+ return result
856
+
857
+
858
+ @compiles(CaseInsensitiveContains, "postgresql")
859
+ def _(element: Any, compiler: Any, **kw: Any) -> Any:
860
+ string, substring = list(element.clauses)
861
+ escaped = func.replace(
862
+ func.replace(func.replace(substring, "\\", "\\\\"), "%", "\\%"), "_", "\\_"
863
+ )
864
+ pattern = func.concat("%", escaped, "%")
865
+ result = compiler.process(string.ilike(pattern), **kw)
866
+ return result
867
+
868
+
869
+ @compiles(CaseInsensitiveContains, "sqlite")
870
+ def _(element: Any, compiler: Any, **kw: Any) -> Any:
871
+ # Use sqlean's `text_lower` to handle non-ASCII characters
872
+ string, substring = list(element.clauses)
873
+ result = compiler.process(
874
+ func.text_contains(func.text_lower(string), func.text_lower(substring)), **kw
875
+ )
876
+ return result
877
+
878
+
844
879
  async def init_models(engine: AsyncEngine) -> None:
845
880
  async with engine.begin() as conn:
846
881
  await conn.run_sync(Base.metadata.create_all)
@@ -23,6 +23,7 @@ from strawberry.relay import GlobalID
23
23
  from strawberry.types import Info
24
24
  from typing_extensions import assert_never
25
25
 
26
+ from phoenix.config import PLAYGROUND_PROJECT_NAME
26
27
  from phoenix.datetime_utils import local_now, normalize_datetime
27
28
  from phoenix.db import models
28
29
  from phoenix.db.helpers import get_dataset_example_revisions
@@ -64,6 +65,7 @@ from phoenix.server.api.types.DatasetVersion import DatasetVersion
64
65
  from phoenix.server.api.types.node import from_global_id_with_expected_type
65
66
  from phoenix.server.api.types.Span import Span
66
67
  from phoenix.server.dml_event import SpanInsertEvent
68
+ from phoenix.server.experiments.utils import generate_experiment_project_name
67
69
  from phoenix.trace.attributes import unflatten
68
70
  from phoenix.trace.schemas import SpanException
69
71
  from phoenix.utilities.json import jsonify
@@ -163,6 +165,7 @@ class ChatCompletionMutationMixin:
163
165
  if input.dataset_version_id
164
166
  else None
165
167
  )
168
+ project_name = generate_experiment_project_name()
166
169
  async with info.context.db() as session:
167
170
  dataset = await session.scalar(select(models.Dataset).filter_by(id=dataset_id))
168
171
  if dataset is None:
@@ -196,7 +199,7 @@ class ChatCompletionMutationMixin:
196
199
  description=input.experiment_description,
197
200
  repetitions=1,
198
201
  metadata_=input.experiment_metadata or dict(),
199
- project_name=PLAYGROUND_PROJECT_NAME,
202
+ project_name=project_name,
200
203
  )
201
204
  session.add(experiment)
202
205
  await session.flush()
@@ -222,6 +225,7 @@ class ChatCompletionMutationMixin:
222
225
  ),
223
226
  prompt_name=input.prompt_name,
224
227
  ),
228
+ project_name=project_name,
225
229
  )
226
230
  for revision in batch
227
231
  ),
@@ -320,6 +324,8 @@ class ChatCompletionMutationMixin:
320
324
  info: Info[Context, None],
321
325
  llm_client: PlaygroundStreamingClient,
322
326
  input: ChatCompletionInput,
327
+ project_name: str = PLAYGROUND_PROJECT_NAME,
328
+ project_description: str = "Traces from prompt playground",
323
329
  ) -> ChatCompletionMutationPayload:
324
330
  attributes: dict[str, Any] = {}
325
331
  attributes.update(dict(prompt_metadata(input.prompt_name)))
@@ -414,15 +420,15 @@ class ChatCompletionMutationMixin:
414
420
  # Get or create the project ID
415
421
  if (
416
422
  project_id := await session.scalar(
417
- select(models.Project.id).where(models.Project.name == PLAYGROUND_PROJECT_NAME)
423
+ select(models.Project.id).where(models.Project.name == project_name)
418
424
  )
419
425
  ) is None:
420
426
  project_id = await session.scalar(
421
427
  insert(models.Project)
422
428
  .returning(models.Project.id)
423
429
  .values(
424
- name=PLAYGROUND_PROJECT_NAME,
425
- description="Traces from prompt playground",
430
+ name=project_name,
431
+ description=project_description,
426
432
  )
427
433
  )
428
434
  trace = models.Trace(
@@ -622,5 +628,3 @@ TOOL_JSON_SCHEMA = ToolAttributes.TOOL_JSON_SCHEMA
622
628
  PROMPT_TEMPLATE_VARIABLES = SpanAttributes.LLM_PROMPT_TEMPLATE_VARIABLES
623
629
 
624
630
  LLM_PROVIDER = SpanAttributes.LLM_PROVIDER
625
-
626
- PLAYGROUND_PROJECT_NAME = "playground"
@@ -20,6 +20,7 @@ from phoenix.db.insertion.helpers import insert_on_conflict
20
20
  from phoenix.server.api.types.node import from_global_id_with_expected_type
21
21
  from phoenix.server.authorization import is_not_locked
22
22
  from phoenix.server.dml_event import ExperimentInsertEvent
23
+ from phoenix.server.experiments.utils import generate_experiment_project_name
23
24
 
24
25
  from .models import V1RoutesBaseModel
25
26
  from .utils import ResponseBody, add_errors_to_responses, add_text_csv_content_to_responses
@@ -159,7 +160,7 @@ async def create_experiment(
159
160
 
160
161
  # generate a semi-unique name for the experiment
161
162
  experiment_name = request_body.name or _generate_experiment_name(dataset_name)
162
- project_name = f"Experiment-{getrandbits(96).to_bytes(12, 'big').hex()}"
163
+ project_name = generate_experiment_project_name()
163
164
  project_description = (
164
165
  f"dataset_id: {dataset_globalid}\ndataset_version_id: {dataset_version_globalid}"
165
166
  )
@@ -2,14 +2,14 @@ import gzip
2
2
  import zlib
3
3
  from typing import Any, Literal, Optional
4
4
 
5
- from fastapi import APIRouter, BackgroundTasks, Depends, Header, HTTPException, Query
5
+ from fastapi import APIRouter, BackgroundTasks, Depends, Header, HTTPException, Path, Query
6
6
  from google.protobuf.message import DecodeError
7
7
  from opentelemetry.proto.collector.trace.v1.trace_service_pb2 import (
8
8
  ExportTraceServiceRequest,
9
9
  ExportTraceServiceResponse,
10
10
  )
11
11
  from pydantic import Field
12
- from sqlalchemy import insert, select
12
+ from sqlalchemy import delete, insert, select
13
13
  from starlette.concurrency import run_in_threadpool
14
14
  from starlette.datastructures import State
15
15
  from starlette.requests import Request
@@ -26,7 +26,7 @@ from phoenix.db.insertion.helpers import as_kv
26
26
  from phoenix.db.insertion.types import Precursors
27
27
  from phoenix.server.authorization import is_not_locked
28
28
  from phoenix.server.bearer_auth import PhoenixUser
29
- from phoenix.server.dml_event import TraceAnnotationInsertEvent
29
+ from phoenix.server.dml_event import SpanDeleteEvent, TraceAnnotationInsertEvent
30
30
  from phoenix.trace.otel import decode_otlp_span
31
31
  from phoenix.utilities.project import get_project_name
32
32
 
@@ -225,3 +225,52 @@ async def _add_spans(req: ExportTraceServiceRequest, state: State) -> None:
225
225
  for otlp_span in scope_span.spans:
226
226
  span = await run_in_threadpool(decode_otlp_span, otlp_span)
227
227
  await state.queue_span_for_bulk_insert(span, project_name)
228
+
229
+
230
+ @router.delete(
231
+ "/traces/{trace_id}",
232
+ operation_id="deleteTrace",
233
+ summary="Delete a trace by trace_id",
234
+ description=(
235
+ "Delete an entire trace by its OpenTelemetry trace_id. "
236
+ "This will permanently remove all spans in the trace and their associated data."
237
+ ),
238
+ responses=add_errors_to_responses([HTTP_404_NOT_FOUND]),
239
+ status_code=204, # No Content for successful deletion
240
+ )
241
+ async def delete_trace(
242
+ request: Request,
243
+ trace_id: str = Path(description="The OpenTelemetry trace_id of the trace to delete"),
244
+ ) -> None:
245
+ """
246
+ Delete a trace by trace_id.
247
+
248
+ This endpoint will:
249
+ 1. Find and delete the trace with the given trace_id (and all its spans via CASCADE)
250
+ 2. Trigger cache invalidation events
251
+ 3. Return 204 No Content on success
252
+
253
+ Note: This deletes the entire trace, including all spans, which maintains data consistency
254
+ and avoids orphaned spans or inconsistent cached cumulative fields.
255
+ """
256
+ async with request.app.state.db() as session:
257
+ # Delete the trace directly and get project_id for cache invalidation
258
+ delete_stmt = (
259
+ delete(models.Trace)
260
+ .where(models.Trace.trace_id == trace_id)
261
+ .returning(models.Trace.project_rowid)
262
+ )
263
+
264
+ project_id = await session.scalar(delete_stmt)
265
+
266
+ if project_id is None:
267
+ raise HTTPException(
268
+ status_code=HTTP_404_NOT_FOUND,
269
+ detail=f"Trace with trace_id '{trace_id}' not found",
270
+ )
271
+
272
+ # Trigger cache invalidation event
273
+ request.state.event_queue.put(SpanDeleteEvent((project_id,)))
274
+
275
+ # Return 204 No Content (successful deletion with no response body)
276
+ return None
@@ -64,6 +64,7 @@ from phoenix.server.api.types.node import from_global_id_with_expected_type
64
64
  from phoenix.server.api.types.Span import Span
65
65
  from phoenix.server.daemons.span_cost_calculator import SpanCostCalculator
66
66
  from phoenix.server.dml_event import SpanInsertEvent
67
+ from phoenix.server.experiments.utils import generate_experiment_project_name
67
68
  from phoenix.server.types import DbSessionFactory
68
69
  from phoenix.utilities.template_formatters import (
69
70
  FStringTemplateFormatter,
@@ -287,16 +288,17 @@ class Subscription:
287
288
  ]
288
289
  ):
289
290
  raise NotFound("No examples found for the given dataset and version")
291
+ project_name = generate_experiment_project_name()
290
292
  if (
291
293
  playground_project_id := await session.scalar(
292
- select(models.Project.id).where(models.Project.name == PLAYGROUND_PROJECT_NAME)
294
+ select(models.Project.id).where(models.Project.name == project_name)
293
295
  )
294
296
  ) is None:
295
297
  playground_project_id = await session.scalar(
296
298
  insert(models.Project)
297
299
  .returning(models.Project.id)
298
300
  .values(
299
- name=PLAYGROUND_PROJECT_NAME,
301
+ name=project_name,
300
302
  description="Traces from prompt playground",
301
303
  )
302
304
  )
@@ -308,7 +310,7 @@ class Subscription:
308
310
  description=input.experiment_description,
309
311
  repetitions=1,
310
312
  metadata_=input.experiment_metadata or dict(),
311
- project_name=PLAYGROUND_PROJECT_NAME,
313
+ project_name=project_name,
312
314
  )
313
315
  session.add(experiment)
314
316
  await session.flush()
@@ -404,11 +404,11 @@ class Project(Node):
404
404
  .where(models.Span.parent_id.is_(None))
405
405
  .where(
406
406
  or_(
407
- models.TextContains(
407
+ models.CaseInsensitiveContains(
408
408
  models.Span.attributes[INPUT_VALUE].as_string(),
409
409
  filter_io_substring,
410
410
  ),
411
- models.TextContains(
411
+ models.CaseInsensitiveContains(
412
412
  models.Span.attributes[OUTPUT_VALUE].as_string(),
413
413
  filter_io_substring,
414
414
  ),
@@ -128,6 +128,10 @@ class _SpanDmlEventHandler(_DmlEventHandler[SpanDmlEvent]):
128
128
  class _SpanDeleteEventHandler(_SpanDmlEventHandler):
129
129
  @staticmethod
130
130
  def _clear(cache: CacheForDataLoaders, project_id: int) -> None:
131
+ # Call parent's cache invalidation first (core span caches)
132
+ _SpanDmlEventHandler._clear(cache, project_id)
133
+
134
+ # Then invalidate annotation-specific caches
131
135
  cache.annotation_summary.invalidate_project(project_id)
132
136
  cache.document_evaluation_summary.invalidate_project(project_id)
133
137
 
@@ -0,0 +1,14 @@
1
+ from __future__ import annotations
2
+
3
+ import re
4
+ from secrets import token_hex
5
+
6
+ EXPERIMENT_PROJECT_NAME_PATTERN = re.compile(r"^Experiment-[0-9a-f]{24}$")
7
+
8
+
9
+ def generate_experiment_project_name() -> str:
10
+ return f"Experiment-{token_hex(12)}"
11
+
12
+
13
+ def is_experiment_project_name(name: str) -> bool:
14
+ return bool(EXPERIMENT_PROJECT_NAME_PATTERN.match(name))
@@ -69,7 +69,7 @@
69
69
  "name": "vendor-three"
70
70
  },
71
71
  "index.tsx": {
72
- "file": "assets/index-ByWTGseQ.js",
72
+ "file": "assets/index-UY6kXBX7.js",
73
73
  "name": "index",
74
74
  "src": "index.tsx",
75
75
  "isEntry": true,
@@ -1084,6 +1084,7 @@ import{G as g,j as o,cL as h,eo as v,ep as y,eq as x,l as r,c7 as z,er as a,r as
1084
1084
  font-optical-sizing: auto;
1085
1085
  font-weight: 400;
1086
1086
  font-style: normal;
1087
+ color: var(--ac-global-text-color-900);
1087
1088
  }
1088
1089
  .ac-theme {
1089
1090
  color: var(--ac-global-text-color-900);
@@ -0,0 +1 @@
1
+ __version__ = "11.16.1"
@@ -1 +0,0 @@
1
- __version__ = "11.15.0"
File without changes