arize-phoenix 11.14.0__tar.gz → 11.16.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of arize-phoenix might be problematic. Click here for more details.
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/PKG-INFO +1 -1
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/pyproject.toml +1 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/config.py +13 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/models.py +35 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/experiments/evaluators/utils.py +3 -3
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/experiments/functions.py +6 -6
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/experiments/types.py +1 -1
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/mutations/trace_annotations_mutations.py +1 -2
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/v1/datasets.py +4 -4
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/v1/evaluations.py +1 -2
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/v1/spans.py +2 -3
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/v1/traces.py +52 -3
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/Project.py +2 -2
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/Span.py +1 -2
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/app.py +5 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/daemons/db_disk_usage_monitor.py +1 -2
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/dml_event_handler.py +4 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/templates/index.html +3 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/session/client.py +1 -2
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/dsl/query.py +6 -6
- arize_phoenix-11.16.0/src/phoenix/version.py +1 -0
- arize_phoenix-11.14.0/src/phoenix/version.py +0 -1
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/.gitignore +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/IP_NOTICE +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/LICENSE +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/README.md +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/auth.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/core/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/core/embedding_dimension.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/core/model.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/core/model_schema.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/core/model_schema_adapter.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/datetime_utils.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/README.md +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/alembic.ini +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/bulk_inserter.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/constants.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/engines.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/enums.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/facilitator.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/helpers.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/insertion/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/insertion/constants.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/insertion/dataset.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/insertion/document_annotation.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/insertion/evaluation.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/insertion/helpers.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/insertion/span.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/insertion/span_annotation.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/insertion/trace_annotation.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/insertion/types.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/migrate.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/migrations/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/migrations/data_migration_scripts/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/migrations/data_migration_scripts/populate_project_sessions.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/migrations/env.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/migrations/script.py.mako +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/migrations/versions/10460e46d750_datasets.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/migrations/versions/2f9d1a65945f_annotation_config_migration.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/migrations/versions/3be8647b87d8_add_token_columns_to_spans_table.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/migrations/versions/4ded9e43755f_create_project_sessions_table.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/migrations/versions/6a88424799fe_update_users_with_auth_method.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/migrations/versions/8a3764fe7f1a_change_jsonb_to_json_for_prompts.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/migrations/versions/a20694b15f82_cost.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/migrations/versions/bb8139330879_create_project_trace_retention_policies_table.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/migrations/versions/bc8fea3c2bc8_add_prompt_tables.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/migrations/versions/cd164e83824f_users_and_tokens.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/migrations/versions/cf03bd6bae1d_init.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/pg_config.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/types/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/types/annotation_configs.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/types/db_models.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/types/identifier.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/types/model_provider.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/types/token_price_customization.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/types/trace_retention.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/exceptions.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/experiments/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/experiments/evaluators/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/experiments/evaluators/base.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/experiments/evaluators/code_evaluators.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/experiments/evaluators/llm_evaluators.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/experiments/tracing.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/experiments/utils.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/inferences/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/inferences/errors.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/inferences/fixtures.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/inferences/inferences.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/inferences/schema.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/inferences/validation.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/logging/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/logging/_config.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/logging/_filter.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/logging/_formatter.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/metrics/README.md +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/metrics/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/metrics/binning.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/metrics/metrics.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/metrics/mixins.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/metrics/retrieval_metrics.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/metrics/timeseries.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/metrics/wrappers.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/pointcloud/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/pointcloud/clustering.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/pointcloud/pointcloud.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/pointcloud/projectors.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/pointcloud/umap_parameters.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/py.typed +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/README.md +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/auth.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/context.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/annotation_configs_by_project.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/annotation_summaries.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/average_experiment_run_latency.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/cache/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/cache/two_tier_cache.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/dataset_example_revisions.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/dataset_example_spans.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/document_evaluation_summaries.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/document_evaluations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/document_retrieval_metrics.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/experiment_annotation_summaries.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/experiment_error_rates.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/experiment_run_annotations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/experiment_run_counts.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/experiment_sequence_number.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/last_used_times_by_generative_model_id.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/latency_ms_quantile.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/min_start_or_max_end_times.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/num_child_spans.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/num_spans_per_trace.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/project_by_name.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/project_ids_by_trace_retention_policy_id.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/prompt_version_sequence_number.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/record_counts.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/session_io.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/session_num_traces.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/session_num_traces_with_error.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/session_token_usages.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/session_trace_latency_ms_quantile.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/span_annotations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/span_by_id.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/span_cost_by_span.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_generative_model.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_project_session.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_span.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_trace.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/span_cost_details_by_span_cost.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/span_cost_summary_by_experiment.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/span_cost_summary_by_experiment_run.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/span_cost_summary_by_generative_model.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/span_cost_summary_by_project.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/span_cost_summary_by_project_session.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/span_cost_summary_by_trace.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/span_costs.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/span_dataset_examples.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/span_descendants.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/span_projects.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/table_fields.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/token_counts.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/trace_by_trace_ids.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/trace_retention_policy_id_by_project_id.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/trace_root_spans.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/types.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/user_roles.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/dataloaders/users.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/exceptions.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/helpers/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/helpers/annotations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/helpers/dataset_helpers.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/helpers/experiment_run_filters.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/helpers/playground_clients.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/helpers/playground_registry.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/helpers/playground_spans.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/helpers/prompts/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/helpers/prompts/conversions/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/helpers/prompts/conversions/anthropic.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/helpers/prompts/conversions/aws.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/helpers/prompts/conversions/openai.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/helpers/prompts/models.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/AddExamplesToDatasetInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/AddSpansToDatasetInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/ChatCompletionInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/ChatCompletionMessageInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/ClearProjectInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/ClusterInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/Coordinates.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/CreateDatasetInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/CreateProjectInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/CreateSpanAnnotationInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/CreateTraceAnnotationInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/DataQualityMetricInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/DatasetExampleInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/DatasetFilter.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/DatasetSort.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/DatasetVersionSort.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/DeleteAnnotationsInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/DeleteDatasetExamplesInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/DeleteDatasetInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/DeleteExperimentsInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/DimensionFilter.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/DimensionInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/GenerativeCredentialInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/GenerativeModelInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/Granularity.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/InvocationParameters.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/PatchAnnotationInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/PatchDatasetExamplesInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/PatchDatasetInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/PerformanceMetricInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/ProjectFilter.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/ProjectSessionSort.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/ProjectSort.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/PromptFilter.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/PromptTemplateOptions.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/PromptVersionInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/SpanAnnotationFilter.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/SpanAnnotationSort.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/SpanSort.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/TimeBinConfig.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/TimeRange.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/TraceAnnotationSort.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/UserRoleInput.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/input_types/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/interceptor.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/mutations/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/mutations/annotation_config_mutations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/mutations/api_key_mutations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/mutations/chat_mutations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/mutations/dataset_mutations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/mutations/experiment_mutations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/mutations/export_events_mutations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/mutations/model_mutations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/mutations/project_mutations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/mutations/project_trace_retention_policy_mutations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/mutations/prompt_label_mutations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/mutations/prompt_mutations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/mutations/prompt_version_tag_mutations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/mutations/span_annotations_mutations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/mutations/trace_mutations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/mutations/user_mutations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/openapi/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/openapi/main.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/openapi/schema.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/queries.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/auth.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/embeddings.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/oauth2.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/utils.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/v1/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/v1/annotation_configs.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/v1/annotations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/v1/experiment_evaluations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/v1/experiment_runs.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/v1/experiments.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/v1/models.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/v1/projects.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/v1/prompts.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/v1/users.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/v1/utils.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/schema.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/subscriptions.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/Annotation.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/AnnotationConfig.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/AnnotationSource.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/AnnotationSummary.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/AnnotatorKind.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/ApiKey.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/AuthMethod.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/ChatCompletionMessageRole.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/ChatCompletionSubscriptionPayload.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/Cluster.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/CostBreakdown.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/CreateDatasetPayload.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/CronExpression.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/DataQualityMetric.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/Dataset.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/DatasetExample.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/DatasetExampleRevision.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/DatasetValues.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/DatasetVersion.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/Dimension.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/DimensionDataType.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/DimensionShape.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/DimensionType.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/DimensionWithValue.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/DocumentEvaluationSummary.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/DocumentRetrievalMetrics.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/EmbeddingDimension.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/EmbeddingMetadata.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/Evaluation.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/EvaluationSummary.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/Event.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/EventMetadata.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/ExampleRevisionInterface.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/Experiment.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/ExperimentAnnotationSummary.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/ExperimentComparison.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/ExperimentRun.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/ExperimentRunAnnotation.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/ExportedFile.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/Functionality.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/GenerativeModel.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/GenerativeProvider.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/Identifier.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/InferenceModel.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/Inferences.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/InferencesRole.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/LabelFraction.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/MimeType.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/ModelInterface.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/NumericRange.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/PerformanceMetric.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/PlaygroundModel.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/ProjectSession.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/ProjectTraceRetentionPolicy.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/Prompt.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/PromptLabel.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/PromptResponse.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/PromptVersion.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/PromptVersionTag.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/PromptVersionTemplate.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/ResponseFormat.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/Retrieval.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/Segments.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/ServerStatus.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/SortDir.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/SpanAnnotation.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/SpanCostDetailSummaryEntry.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/SpanCostSummary.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/SpanIOValue.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/SystemApiKey.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/TimeSeries.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/TokenCountPromptDetails.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/TokenPrice.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/TokenUsage.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/ToolDefinition.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/Trace.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/TraceAnnotation.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/UMAPPoints.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/User.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/UserApiKey.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/UserRole.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/ValidationResult.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/VectorDriftMetricEnum.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/node.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/types/pagination.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/utils.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/authorization.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/bearer_auth.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/cost_tracking/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/cost_tracking/cost_details_calculator.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/cost_tracking/cost_model_lookup.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/cost_tracking/helpers.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/cost_tracking/model_cost_manifest.json +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/cost_tracking/regex_specificity.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/cost_tracking/token_cost_calculator.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/daemons/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/daemons/generative_model_store.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/daemons/span_cost_calculator.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/dml_event.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/email/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/email/sender.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/email/templates/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/email/templates/db_disk_usage_notification.html +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/email/templates/password_reset.html +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/email/templates/welcome.html +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/email/types.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/grpc_server.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/jwt_store.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/main.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/middleware/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/middleware/gzip.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/oauth2.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/openapi/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/prometheus.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/rate_limiters.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/retention.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/.vite/manifest.json +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/apple-touch-icon-114x114.png +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/apple-touch-icon-120x120.png +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/apple-touch-icon-144x144.png +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/apple-touch-icon-152x152.png +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/apple-touch-icon-180x180.png +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/apple-touch-icon-72x72.png +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/apple-touch-icon-76x76.png +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/apple-touch-icon.png +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/assets/components-CK8hwrPx.js +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/assets/index-ByWTGseQ.js +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/assets/pages-D8Hgmz1V.js +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/assets/vendor-CqDb5u4o.css +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/assets/vendor-_6rG8OMg.js +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/assets/vendor-arizeai-BznCmJFh.js +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/assets/vendor-codemirror-29fWLPAy.js +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/assets/vendor-recharts-Cu431IpB.js +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/assets/vendor-shiki-Ce9e01lU.js +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/assets/vendor-three-C5WAXd5r.js +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/favicon.ico +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/static/modernizr.js +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/telemetry.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/templates/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/thread_server.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/types.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/services.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/session/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/session/data_extractor.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/session/evaluation.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/session/session.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/settings.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/attributes.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/dsl/README.md +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/dsl/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/dsl/filter.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/dsl/helpers.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/errors.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/evaluation_conventions.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/exporter.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/fixtures.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/otel.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/projects.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/schemas.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/span_evaluations.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/span_json_decoder.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/span_json_encoder.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/trace_dataset.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/utils.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/v1/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/v1/evaluation_pb2.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/trace/v1/evaluation_pb2.pyi +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/utilities/__init__.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/utilities/client.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/utilities/deprecation.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/utilities/error_handling.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/utilities/json.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/utilities/logging.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/utilities/project.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/utilities/re.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/utilities/span_store.py +0 -0
- {arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/utilities/template_formatters.py +0 -0
|
@@ -57,6 +57,11 @@ ENV_PHOENIX_FULLSTORY_ORG = "PHOENIX_FULLSTORY_ORG"
|
|
|
57
57
|
The FullStory organization ID for web analytics tracking. When set, FullStory tracking
|
|
58
58
|
will be enabled in the Phoenix web interface.
|
|
59
59
|
"""
|
|
60
|
+
ENV_PHOENIX_ALLOW_EXTERNAL_RESOURCES = "PHOENIX_ALLOW_EXTERNAL_RESOURCES"
|
|
61
|
+
"""
|
|
62
|
+
Allows calls to external resources, like Google Fonts in the web interface
|
|
63
|
+
Defaults to True. Set to False in air-gapped environments to prevent external requests.
|
|
64
|
+
"""
|
|
60
65
|
ENV_PHOENIX_SQL_DATABASE_URL = "PHOENIX_SQL_DATABASE_URL"
|
|
61
66
|
"""
|
|
62
67
|
The SQL database URL to use when logging traces and evals.
|
|
@@ -1690,3 +1695,11 @@ def _validate_file_exists_and_is_readable(
|
|
|
1690
1695
|
f.read(1) # Read just one byte to verify readability
|
|
1691
1696
|
except Exception as e:
|
|
1692
1697
|
raise ValueError(f"{description} file is not readable: {e}")
|
|
1698
|
+
|
|
1699
|
+
|
|
1700
|
+
def get_env_allow_external_resources() -> bool:
|
|
1701
|
+
"""
|
|
1702
|
+
Gets the value of the PHOENIX_ALLOW_EXTERNAL_RESOURCES environment variable.
|
|
1703
|
+
Defaults to True if not set.
|
|
1704
|
+
"""
|
|
1705
|
+
return _bool_val(ENV_PHOENIX_ALLOW_EXTERNAL_RESOURCES, True)
|
|
@@ -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)
|
|
@@ -19,9 +19,9 @@ def unwrap_json(obj: JSONSerializable) -> JSONSerializable:
|
|
|
19
19
|
if len(obj) == 1:
|
|
20
20
|
key = next(iter(obj.keys()))
|
|
21
21
|
output = obj[key]
|
|
22
|
-
assert isinstance(
|
|
23
|
-
|
|
24
|
-
)
|
|
22
|
+
assert isinstance(output, (dict, list, str, int, float, bool, type(None))), (
|
|
23
|
+
"Output must be JSON serializable"
|
|
24
|
+
)
|
|
25
25
|
return output
|
|
26
26
|
return obj
|
|
27
27
|
|
|
@@ -363,9 +363,9 @@ def run_experiment(
|
|
|
363
363
|
span.set_attribute(SpanAttributes.OPENINFERENCE_SPAN_KIND, root_span_kind)
|
|
364
364
|
span.set_status(status)
|
|
365
365
|
|
|
366
|
-
assert isinstance(
|
|
367
|
-
|
|
368
|
-
)
|
|
366
|
+
assert isinstance(output, (dict, list, str, int, float, bool, type(None))), (
|
|
367
|
+
"Output must be JSON serializable"
|
|
368
|
+
)
|
|
369
369
|
|
|
370
370
|
exp_run = ExperimentRun(
|
|
371
371
|
start_time=_decode_unix_nano(cast(int, span.start_time)),
|
|
@@ -477,9 +477,9 @@ def run_experiment(
|
|
|
477
477
|
span.set_attribute(OPENINFERENCE_SPAN_KIND, root_span_kind)
|
|
478
478
|
span.set_status(status)
|
|
479
479
|
|
|
480
|
-
assert isinstance(
|
|
481
|
-
|
|
482
|
-
)
|
|
480
|
+
assert isinstance(output, (dict, list, str, int, float, bool, type(None))), (
|
|
481
|
+
"Output must be JSON serializable"
|
|
482
|
+
)
|
|
483
483
|
|
|
484
484
|
exp_run = ExperimentRun(
|
|
485
485
|
start_time=_decode_unix_nano(cast(int, span.start_time)),
|
|
@@ -322,7 +322,7 @@ class _HasStats:
|
|
|
322
322
|
text = self.stats.__str__()
|
|
323
323
|
else:
|
|
324
324
|
text = self.stats.to_markdown(index=False)
|
|
325
|
-
return f"{self.title}\n{'-'*len(self.title)}\n" + text
|
|
325
|
+
return f"{self.title}\n{'-' * len(self.title)}\n" + text
|
|
326
326
|
|
|
327
327
|
|
|
328
328
|
@dataclass(frozen=True)
|
|
@@ -49,8 +49,7 @@ class TraceAnnotationMutationMixin:
|
|
|
49
49
|
trace_rowid = from_global_id_with_expected_type(annotation_input.trace_id, "Trace")
|
|
50
50
|
except ValueError:
|
|
51
51
|
raise BadRequest(
|
|
52
|
-
f"Invalid trace ID for annotation at index {idx}: "
|
|
53
|
-
f"{annotation_input.trace_id}"
|
|
52
|
+
f"Invalid trace ID for annotation at index {idx}: {annotation_input.trace_id}"
|
|
54
53
|
)
|
|
55
54
|
trace_rowids.append(trace_rowid)
|
|
56
55
|
|
{arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/v1/datasets.py
RENAMED
|
@@ -714,7 +714,7 @@ async def get_dataset_examples(
|
|
|
714
714
|
version_id: Optional[str] = Query(
|
|
715
715
|
default=None,
|
|
716
716
|
description=(
|
|
717
|
-
"The ID of the dataset version
|
|
717
|
+
"The ID of the dataset version (if omitted, returns data from the latest version)"
|
|
718
718
|
),
|
|
719
719
|
),
|
|
720
720
|
) -> ListDatasetExamplesResponseBody:
|
|
@@ -833,7 +833,7 @@ async def get_dataset_csv(
|
|
|
833
833
|
version_id: Optional[str] = Query(
|
|
834
834
|
default=None,
|
|
835
835
|
description=(
|
|
836
|
-
"The ID of the dataset version
|
|
836
|
+
"The ID of the dataset version (if omitted, returns data from the latest version)"
|
|
837
837
|
),
|
|
838
838
|
),
|
|
839
839
|
) -> Response:
|
|
@@ -876,7 +876,7 @@ async def get_dataset_jsonl_openai_ft(
|
|
|
876
876
|
version_id: Optional[str] = Query(
|
|
877
877
|
default=None,
|
|
878
878
|
description=(
|
|
879
|
-
"The ID of the dataset version
|
|
879
|
+
"The ID of the dataset version (if omitted, returns data from the latest version)"
|
|
880
880
|
),
|
|
881
881
|
),
|
|
882
882
|
) -> bytes:
|
|
@@ -916,7 +916,7 @@ async def get_dataset_jsonl_openai_evals(
|
|
|
916
916
|
version_id: Optional[str] = Query(
|
|
917
917
|
default=None,
|
|
918
918
|
description=(
|
|
919
|
-
"The ID of the dataset version
|
|
919
|
+
"The ID of the dataset version (if omitted, returns data from the latest version)"
|
|
920
920
|
),
|
|
921
921
|
),
|
|
922
922
|
) -> bytes:
|
{arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/api/routers/v1/evaluations.py
RENAMED
|
@@ -55,8 +55,7 @@ router = APIRouter(tags=["traces"], include_in_schema=True)
|
|
|
55
55
|
{
|
|
56
56
|
"status_code": HTTP_415_UNSUPPORTED_MEDIA_TYPE,
|
|
57
57
|
"description": (
|
|
58
|
-
"Unsupported content type, "
|
|
59
|
-
"only gzipped protobuf and pandas-arrow are supported"
|
|
58
|
+
"Unsupported content type, only gzipped protobuf and pandas-arrow are supported"
|
|
60
59
|
),
|
|
61
60
|
},
|
|
62
61
|
HTTP_422_UNPROCESSABLE_ENTITY,
|
|
@@ -205,8 +205,7 @@ class OtlpEvent(BaseModel):
|
|
|
205
205
|
name: Optional[str] = Field(
|
|
206
206
|
None,
|
|
207
207
|
description=(
|
|
208
|
-
"name of the event. "
|
|
209
|
-
"This field is semantically required to be set to non-empty string."
|
|
208
|
+
"name of the event. This field is semantically required to be set to non-empty string."
|
|
210
209
|
),
|
|
211
210
|
)
|
|
212
211
|
time_unix_nano: Optional[
|
|
@@ -282,7 +281,7 @@ class OtlpSpan(BaseModel):
|
|
|
282
281
|
)
|
|
283
282
|
events: Optional[list[OtlpEvent]] = Field(
|
|
284
283
|
None,
|
|
285
|
-
description=("events is a collection of Event items.
|
|
284
|
+
description=("events is a collection of Event items. A span with no events is valid."),
|
|
286
285
|
)
|
|
287
286
|
flags: Optional[Annotated[int, Field(ge=0, le=4294967295)]] = Field(
|
|
288
287
|
None,
|
|
@@ -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
|
|
@@ -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
|
),
|
|
@@ -537,8 +537,7 @@ class Span(Node):
|
|
|
537
537
|
|
|
538
538
|
@strawberry.field(
|
|
539
539
|
description=(
|
|
540
|
-
"Annotations associated with the span. This encompasses both "
|
|
541
|
-
"LLM and human annotations."
|
|
540
|
+
"Annotations associated with the span. This encompasses both LLM and human annotations."
|
|
542
541
|
)
|
|
543
542
|
) # type: ignore
|
|
544
543
|
async def span_annotations(
|
|
@@ -55,6 +55,7 @@ from phoenix.config import (
|
|
|
55
55
|
ENV_PHOENIX_CSRF_TRUSTED_ORIGINS,
|
|
56
56
|
SERVER_DIR,
|
|
57
57
|
OAuth2ClientConfig,
|
|
58
|
+
get_env_allow_external_resources,
|
|
58
59
|
get_env_csrf_trusted_origins,
|
|
59
60
|
get_env_database_allocated_storage_capacity_gibibytes,
|
|
60
61
|
get_env_database_usage_insertion_blocking_threshold_percentage,
|
|
@@ -245,6 +246,8 @@ class AppConfig(NamedTuple):
|
|
|
245
246
|
""" Support email address for user assistance """
|
|
246
247
|
has_db_threshold: bool = False
|
|
247
248
|
""" Whether the database has a threshold for usage """
|
|
249
|
+
allow_external_resources: bool = True
|
|
250
|
+
""" Whether to allow external resources like Google Fonts in the web interface """
|
|
248
251
|
|
|
249
252
|
|
|
250
253
|
class Static(StaticFiles):
|
|
@@ -314,6 +317,7 @@ class Static(StaticFiles):
|
|
|
314
317
|
"management_url": self._app_config.management_url,
|
|
315
318
|
"support_email": self._app_config.support_email,
|
|
316
319
|
"has_db_threshold": self._app_config.has_db_threshold,
|
|
320
|
+
"allow_external_resources": self._app_config.allow_external_resources,
|
|
317
321
|
},
|
|
318
322
|
)
|
|
319
323
|
except Exception as e:
|
|
@@ -1085,6 +1089,7 @@ def create_app(
|
|
|
1085
1089
|
get_env_database_allocated_storage_capacity_gibibytes()
|
|
1086
1090
|
and get_env_database_usage_insertion_blocking_threshold_percentage()
|
|
1087
1091
|
),
|
|
1092
|
+
allow_external_resources=get_env_allow_external_resources(),
|
|
1088
1093
|
),
|
|
1089
1094
|
),
|
|
1090
1095
|
name="static",
|
{arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/server/daemons/db_disk_usage_monitor.py
RENAMED
|
@@ -159,8 +159,7 @@ class DbDiskUsageMonitor(DaemonTask):
|
|
|
159
159
|
admin_emails = (await session.scalars(stmt)).all()
|
|
160
160
|
except Exception:
|
|
161
161
|
logger.exception(
|
|
162
|
-
"Failed to fetch admin emails from database, "
|
|
163
|
-
"skipping database usage warning emails"
|
|
162
|
+
"Failed to fetch admin emails from database, skipping database usage warning emails"
|
|
164
163
|
)
|
|
165
164
|
return
|
|
166
165
|
|
|
@@ -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
|
|
|
@@ -55,9 +55,11 @@
|
|
|
55
55
|
<meta property="og:description" content="AI Observability & Evaluation" />
|
|
56
56
|
<meta property="og:image" content="https://raw.githubusercontent.com/Arize-ai/phoenix-assets/main/images/socal/social-preview-horizontal.jpg" />
|
|
57
57
|
<meta name="theme-color" content="#ffffff" />
|
|
58
|
+
{% if allow_external_resources %}
|
|
58
59
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
59
60
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
60
61
|
<link href="https://fonts.googleapis.com/css2?family=Geist:wght@100..900&display=swap" rel="stylesheet">
|
|
62
|
+
{% endif %}
|
|
61
63
|
{% if not is_development -%}
|
|
62
64
|
{% set _ = collect_assets('index.tsx') -%}
|
|
63
65
|
{{- render_css() -}}
|
|
@@ -111,6 +113,7 @@
|
|
|
111
113
|
managementUrl: {{management_url | tojson}},
|
|
112
114
|
supportEmail: {{support_email | tojson}},
|
|
113
115
|
hasDbThreshold: Boolean("{{has_db_threshold}}" == "True"),
|
|
116
|
+
allowExternalResources: Boolean("{{allow_external_resources}}" == "True"),
|
|
114
117
|
}),
|
|
115
118
|
writable: false
|
|
116
119
|
});
|
|
@@ -68,8 +68,7 @@ class Client(TraceDataExtractor):
|
|
|
68
68
|
"""
|
|
69
69
|
if kwargs.pop("use_active_session_if_available", None) is not None:
|
|
70
70
|
print(
|
|
71
|
-
"`use_active_session_if_available` is deprecated "
|
|
72
|
-
"and will be removed in the future."
|
|
71
|
+
"`use_active_session_if_available` is deprecated and will be removed in the future."
|
|
73
72
|
)
|
|
74
73
|
if kwargs:
|
|
75
74
|
raise TypeError(f"Unexpected keyword arguments: {', '.join(kwargs)}")
|
|
@@ -456,16 +456,16 @@ class SpanQuery(_HasTmpSuffix):
|
|
|
456
456
|
return replace(self, _filter=_filter)
|
|
457
457
|
|
|
458
458
|
def explode(self, key: str, **kwargs: str) -> "SpanQuery":
|
|
459
|
-
assert (
|
|
460
|
-
|
|
461
|
-
)
|
|
459
|
+
assert isinstance(key, str) and key, (
|
|
460
|
+
"The field name for explosion must be a non-empty string."
|
|
461
|
+
)
|
|
462
462
|
_explode = Explosion(key=key, kwargs=kwargs, primary_index_key=self._index.key)
|
|
463
463
|
return replace(self, _explode=_explode)
|
|
464
464
|
|
|
465
465
|
def concat(self, key: str, **kwargs: str) -> "SpanQuery":
|
|
466
|
-
assert (
|
|
467
|
-
|
|
468
|
-
)
|
|
466
|
+
assert isinstance(key, str) and key, (
|
|
467
|
+
"The field name for concatenation must be a non-empty string."
|
|
468
|
+
)
|
|
469
469
|
_concat = (
|
|
470
470
|
Concatenation(key=key, kwargs=kwargs, separator=self._concat.separator)
|
|
471
471
|
if self._concat
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "11.16.0"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "11.14.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
|
{arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/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.14.0 → arize_phoenix-11.16.0}/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.14.0 → arize_phoenix-11.16.0}/src/phoenix/db/types/token_price_customization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/src/phoenix/experiments/evaluators/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-11.14.0 → arize_phoenix-11.16.0}/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
|