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.
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/PKG-INFO +1 -1
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/models.py +35 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/chat_mutations.py +10 -6
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/experiments.py +2 -1
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/traces.py +52 -3
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/subscriptions.py +5 -3
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Project.py +2 -2
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/dml_event_handler.py +4 -0
- arize_phoenix-11.16.1/src/phoenix/server/experiments/utils.py +14 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/.vite/manifest.json +1 -1
- 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
- arize_phoenix-11.16.1/src/phoenix/utilities/span_store.py +0 -0
- arize_phoenix-11.16.1/src/phoenix/version.py +1 -0
- arize_phoenix-11.15.0/src/phoenix/version.py +0 -1
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/.gitignore +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/IP_NOTICE +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/LICENSE +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/README.md +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/pyproject.toml +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/auth.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/config.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/core/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/core/embedding_dimension.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/core/model.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/core/model_schema.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/core/model_schema_adapter.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/datetime_utils.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/README.md +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/alembic.ini +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/bulk_inserter.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/constants.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/engines.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/enums.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/facilitator.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/helpers.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/constants.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/dataset.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/document_annotation.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/evaluation.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/helpers.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/span.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/span_annotation.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/trace_annotation.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/types.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrate.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/data_migration_scripts/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/data_migration_scripts/populate_project_sessions.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/env.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/script.py.mako +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/10460e46d750_datasets.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/2f9d1a65945f_annotation_config_migration.py +0 -0
- {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
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/4ded9e43755f_create_project_sessions_table.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/6a88424799fe_update_users_with_auth_method.py +0 -0
- {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
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/a20694b15f82_cost.py +0 -0
- {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
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/bc8fea3c2bc8_add_prompt_tables.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/cd164e83824f_users_and_tokens.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/migrations/versions/cf03bd6bae1d_init.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/pg_config.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/types/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/types/annotation_configs.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/types/db_models.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/types/identifier.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/types/model_provider.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/types/token_price_customization.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/types/trace_retention.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/exceptions.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/evaluators/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/evaluators/base.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/evaluators/code_evaluators.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/evaluators/llm_evaluators.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/evaluators/utils.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/functions.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/tracing.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/types.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/utils.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/inferences/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/inferences/errors.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/inferences/fixtures.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/inferences/inferences.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/inferences/schema.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/inferences/validation.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/logging/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/logging/_config.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/logging/_filter.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/logging/_formatter.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/metrics/README.md +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/metrics/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/metrics/binning.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/metrics/metrics.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/metrics/mixins.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/metrics/retrieval_metrics.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/metrics/timeseries.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/metrics/wrappers.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/pointcloud/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/pointcloud/clustering.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/pointcloud/pointcloud.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/pointcloud/projectors.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/pointcloud/umap_parameters.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/py.typed +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/README.md +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/auth.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/context.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/annotation_configs_by_project.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/annotation_summaries.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/average_experiment_run_latency.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/cache/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/cache/two_tier_cache.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/dataset_example_revisions.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/dataset_example_spans.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/document_evaluation_summaries.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/document_evaluations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/document_retrieval_metrics.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/experiment_annotation_summaries.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/experiment_error_rates.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/experiment_run_annotations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/experiment_run_counts.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/experiment_sequence_number.py +0 -0
- {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
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/latency_ms_quantile.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/min_start_or_max_end_times.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/num_child_spans.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/num_spans_per_trace.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/project_by_name.py +0 -0
- {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
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/prompt_version_sequence_number.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/record_counts.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/session_io.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/session_num_traces.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/session_num_traces_with_error.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/session_token_usages.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/session_trace_latency_ms_quantile.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_annotations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_by_id.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_by_span.py +0 -0
- {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
- {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
- {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
- {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
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_details_by_span_cost.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_summary_by_experiment.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_summary_by_experiment_run.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_summary_by_generative_model.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_summary_by_project.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_summary_by_project_session.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_cost_summary_by_trace.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_costs.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_dataset_examples.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_descendants.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/span_projects.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/table_fields.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/token_counts.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/trace_by_trace_ids.py +0 -0
- {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
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/trace_root_spans.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/types.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/user_roles.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/users.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/exceptions.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/annotations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/dataset_helpers.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/experiment_run_filters.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/playground_clients.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/playground_registry.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/playground_spans.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/prompts/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/prompts/conversions/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/prompts/conversions/anthropic.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/prompts/conversions/aws.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/prompts/conversions/openai.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/helpers/prompts/models.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/AddExamplesToDatasetInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/AddSpansToDatasetInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/ChatCompletionInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/ChatCompletionMessageInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/ClearProjectInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/ClusterInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/Coordinates.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/CreateDatasetInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/CreateProjectInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/CreateSpanAnnotationInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/CreateTraceAnnotationInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DataQualityMetricInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DatasetExampleInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DatasetFilter.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DatasetSort.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DatasetVersionSort.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DeleteAnnotationsInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DeleteDatasetExamplesInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DeleteDatasetInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DeleteExperimentsInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DimensionFilter.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/DimensionInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/GenerativeCredentialInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/GenerativeModelInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/Granularity.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/InvocationParameters.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/PatchAnnotationInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/PatchDatasetExamplesInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/PatchDatasetInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/PerformanceMetricInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/ProjectFilter.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/ProjectSessionSort.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/ProjectSort.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/PromptFilter.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/PromptTemplateOptions.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/PromptVersionInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/SpanAnnotationFilter.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/SpanAnnotationSort.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/SpanSort.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/TimeBinConfig.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/TimeRange.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/TraceAnnotationSort.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/UserRoleInput.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/input_types/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/interceptor.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/annotation_config_mutations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/api_key_mutations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/dataset_mutations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/experiment_mutations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/export_events_mutations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/model_mutations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/project_mutations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/project_trace_retention_policy_mutations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/prompt_label_mutations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/prompt_mutations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/prompt_version_tag_mutations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/span_annotations_mutations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/trace_annotations_mutations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/trace_mutations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/user_mutations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/openapi/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/openapi/main.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/openapi/schema.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/queries.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/auth.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/embeddings.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/oauth2.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/utils.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/annotation_configs.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/annotations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/datasets.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/evaluations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/experiment_evaluations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/experiment_runs.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/models.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/projects.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/prompts.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/spans.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/users.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/utils.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/schema.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Annotation.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/AnnotationConfig.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/AnnotationSource.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/AnnotationSummary.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/AnnotatorKind.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ApiKey.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/AuthMethod.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ChatCompletionMessageRole.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ChatCompletionSubscriptionPayload.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Cluster.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/CostBreakdown.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/CreateDatasetPayload.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/CronExpression.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DataQualityMetric.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Dataset.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DatasetExample.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DatasetExampleRevision.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DatasetValues.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DatasetVersion.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Dimension.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DimensionDataType.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DimensionShape.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DimensionType.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DimensionWithValue.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DocumentEvaluationSummary.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/DocumentRetrievalMetrics.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/EmbeddingDimension.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/EmbeddingMetadata.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Evaluation.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/EvaluationSummary.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Event.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/EventMetadata.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ExampleRevisionInterface.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Experiment.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ExperimentAnnotationSummary.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ExperimentComparison.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ExperimentRun.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ExperimentRunAnnotation.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ExportedFile.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Functionality.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/GenerativeModel.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/GenerativeProvider.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Identifier.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/InferenceModel.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Inferences.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/InferencesRole.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/LabelFraction.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/MimeType.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ModelInterface.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/NumericRange.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/PerformanceMetric.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/PlaygroundModel.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ProjectSession.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ProjectTraceRetentionPolicy.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Prompt.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/PromptLabel.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/PromptResponse.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/PromptVersion.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/PromptVersionTag.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/PromptVersionTemplate.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ResponseFormat.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Retrieval.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Segments.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ServerStatus.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/SortDir.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Span.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/SpanAnnotation.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/SpanCostDetailSummaryEntry.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/SpanCostSummary.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/SpanIOValue.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/SystemApiKey.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/TimeSeries.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/TokenCountPromptDetails.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/TokenPrice.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/TokenUsage.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ToolDefinition.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/Trace.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/TraceAnnotation.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/UMAPPoints.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/User.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/UserApiKey.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/UserRole.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/ValidationResult.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/VectorDriftMetricEnum.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/node.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/types/pagination.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/utils.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/app.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/authorization.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/bearer_auth.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/cost_tracking/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/cost_tracking/cost_details_calculator.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/cost_tracking/cost_model_lookup.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/cost_tracking/helpers.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/cost_tracking/model_cost_manifest.json +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/cost_tracking/regex_specificity.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/cost_tracking/token_cost_calculator.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/daemons/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/daemons/db_disk_usage_monitor.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/daemons/generative_model_store.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/daemons/span_cost_calculator.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/dml_event.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/email/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/email/sender.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/email/templates/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/email/templates/db_disk_usage_notification.html +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/email/templates/password_reset.html +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/email/templates/welcome.html +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/email/types.py +0 -0
- {arize_phoenix-11.15.0/src/phoenix/server/middleware → arize_phoenix-11.16.1/src/phoenix/server/experiments}/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/grpc_server.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/jwt_store.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/main.py +0 -0
- {arize_phoenix-11.15.0/src/phoenix/server/openapi → arize_phoenix-11.16.1/src/phoenix/server/middleware}/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/middleware/gzip.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/oauth2.py +0 -0
- {arize_phoenix-11.15.0/src/phoenix/server/templates → arize_phoenix-11.16.1/src/phoenix/server/openapi}/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/prometheus.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/rate_limiters.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/retention.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/apple-touch-icon-114x114.png +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/apple-touch-icon-120x120.png +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/apple-touch-icon-144x144.png +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/apple-touch-icon-152x152.png +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/apple-touch-icon-180x180.png +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/apple-touch-icon-72x72.png +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/apple-touch-icon-76x76.png +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/apple-touch-icon.png +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/assets/components-CK8hwrPx.js +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/assets/pages-D8Hgmz1V.js +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/assets/vendor-CqDb5u4o.css +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/assets/vendor-_6rG8OMg.js +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/assets/vendor-arizeai-BznCmJFh.js +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/assets/vendor-codemirror-29fWLPAy.js +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/assets/vendor-recharts-Cu431IpB.js +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/assets/vendor-shiki-Ce9e01lU.js +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/assets/vendor-three-C5WAXd5r.js +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/favicon.ico +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/static/modernizr.js +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/telemetry.py +0 -0
- {arize_phoenix-11.15.0/src/phoenix/session → arize_phoenix-11.16.1/src/phoenix/server/templates}/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/templates/index.html +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/thread_server.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/types.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/services.py +0 -0
- /arize_phoenix-11.15.0/src/phoenix/utilities/span_store.py → /arize_phoenix-11.16.1/src/phoenix/session/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/session/client.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/session/data_extractor.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/session/evaluation.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/session/session.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/settings.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/attributes.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/dsl/README.md +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/dsl/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/dsl/filter.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/dsl/helpers.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/dsl/query.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/errors.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/evaluation_conventions.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/exporter.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/fixtures.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/otel.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/projects.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/schemas.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/span_evaluations.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/span_json_decoder.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/span_json_encoder.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/trace_dataset.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/utils.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/v1/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/v1/evaluation_pb2.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/trace/v1/evaluation_pb2.pyi +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/utilities/__init__.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/utilities/client.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/utilities/deprecation.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/utilities/error_handling.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/utilities/json.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/utilities/logging.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/utilities/project.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/utilities/re.py +0 -0
- {arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/utilities/template_formatters.py +0 -0
|
@@ -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)
|
{arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/mutations/chat_mutations.py
RENAMED
|
@@ -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=
|
|
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 ==
|
|
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=
|
|
425
|
-
description=
|
|
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"
|
{arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/routers/v1/experiments.py
RENAMED
|
@@ -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 =
|
|
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 ==
|
|
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=
|
|
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=
|
|
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.
|
|
407
|
+
models.CaseInsensitiveContains(
|
|
408
408
|
models.Span.attributes[INPUT_VALUE].as_string(),
|
|
409
409
|
filter_io_substring,
|
|
410
410
|
),
|
|
411
|
-
models.
|
|
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))
|
|
@@ -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);
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "11.16.1"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "11.15.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/document_annotation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/insertion/trace_annotation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/db/types/token_price_customization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/evaluators/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/experiments/evaluators/llm_evaluators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-11.15.0 → arize_phoenix-11.16.1}/src/phoenix/server/api/dataloaders/cache/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|