arize-phoenix 7.0.1__tar.gz → 7.1.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-7.0.1 → arize_phoenix-7.1.1}/PKG-INFO +9 -8
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/README.md +1 -1
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/pyproject.toml +8 -7
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/auth.py +12 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/context.py +1 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/helpers/playground_clients.py +1 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/DataQualityMetricInput.py +5 -2
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/PerformanceMetricInput.py +5 -2
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/mutations/api_key_mutations.py +3 -3
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/mutations/chat_mutations.py +3 -3
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/mutations/dataset_mutations.py +8 -8
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/mutations/span_annotations_mutations.py +3 -3
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/mutations/trace_annotations_mutations.py +3 -3
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/mutations/user_mutations.py +5 -5
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/subscriptions.py +3 -3
- arize_phoenix-7.1.1/src/phoenix/server/api/types/DataQualityMetric.py +40 -0
- arize_phoenix-7.1.1/src/phoenix/server/api/types/PerformanceMetric.py +16 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/TimeSeries.py +5 -2
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/Trace.py +13 -0
- arize_phoenix-7.1.1/src/phoenix/server/static/.vite/manifest.json +87 -0
- arize_phoenix-7.0.1/src/phoenix/server/static/assets/components-DKH6AzJw.js → arize_phoenix-7.1.1/src/phoenix/server/static/assets/components-DaxEPah8.js +206 -117
- arize_phoenix-7.0.1/src/phoenix/server/static/assets/index-DLV87qiO.js → arize_phoenix-7.1.1/src/phoenix/server/static/assets/index-DxfKd3lv.js +2 -2
- arize_phoenix-7.0.1/src/phoenix/server/static/assets/pages-CVY3Nv4Z.js → arize_phoenix-7.1.1/src/phoenix/server/static/assets/pages-CY7Swxhi.js +292 -291
- arize_phoenix-7.1.1/src/phoenix/server/static/assets/vendor-DwOx_a-2.js +894 -0
- arize_phoenix-7.0.1/src/phoenix/server/static/assets/vendor-arizeai-Buo4e1A6.js → arize_phoenix-7.1.1/src/phoenix/server/static/assets/vendor-arizeai-BWSsCZNG.js +1 -1
- arize_phoenix-7.0.1/src/phoenix/server/static/assets/vendor-codemirror-BuAQiUVf.js → arize_phoenix-7.1.1/src/phoenix/server/static/assets/vendor-codemirror-WrxmCiOZ.js +1 -1
- arize_phoenix-7.0.1/src/phoenix/server/static/assets/vendor-recharts-Cl9dK5tC.js → arize_phoenix-7.1.1/src/phoenix/server/static/assets/vendor-recharts-Bj7q9ORc.js +1 -1
- arize_phoenix-7.0.1/src/phoenix/server/static/assets/vendor-shiki-CazYUixL.js → arize_phoenix-7.1.1/src/phoenix/server/static/assets/vendor-shiki-RnWcZtzE.js +1 -1
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/types.py +5 -5
- arize_phoenix-7.1.1/src/phoenix/version.py +1 -0
- arize_phoenix-7.0.1/src/phoenix/server/api/types/DataQualityMetric.py +0 -22
- arize_phoenix-7.0.1/src/phoenix/server/api/types/PerformanceMetric.py +0 -13
- arize_phoenix-7.0.1/src/phoenix/server/static/.vite/manifest.json +0 -87
- arize_phoenix-7.0.1/src/phoenix/server/static/assets/vendor-Cb3zlNNd.js +0 -894
- arize_phoenix-7.0.1/src/phoenix/version.py +0 -1
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/.gitignore +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/IP_NOTICE +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/LICENSE +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/auth.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/config.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/core/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/core/embedding_dimension.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/core/model.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/core/model_schema.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/core/model_schema_adapter.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/datetime_utils.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/README.md +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/alembic.ini +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/bulk_inserter.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/engines.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/enums.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/facilitator.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/helpers.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/insertion/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/insertion/constants.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/insertion/dataset.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/insertion/document_annotation.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/insertion/evaluation.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/insertion/helpers.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/insertion/span.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/insertion/span_annotation.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/insertion/trace_annotation.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/insertion/types.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/migrate.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/migrations/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/migrations/data_migration_scripts/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/migrations/data_migration_scripts/populate_project_sessions.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/migrations/env.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/migrations/script.py.mako +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/migrations/versions/10460e46d750_datasets.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/migrations/versions/3be8647b87d8_add_token_columns_to_spans_table.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/migrations/versions/4ded9e43755f_create_project_sessions_table.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/migrations/versions/cd164e83824f_users_and_tokens.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/migrations/versions/cf03bd6bae1d_init.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/db/models.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/exceptions.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/experiments/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/experiments/evaluators/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/experiments/evaluators/base.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/experiments/evaluators/code_evaluators.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/experiments/evaluators/llm_evaluators.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/experiments/evaluators/utils.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/experiments/functions.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/experiments/tracing.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/experiments/types.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/experiments/utils.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/inferences/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/inferences/errors.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/inferences/fixtures.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/inferences/inferences.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/inferences/schema.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/inferences/validation.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/logging/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/logging/_config.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/logging/_filter.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/logging/_formatter.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/metrics/README.md +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/metrics/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/metrics/binning.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/metrics/metrics.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/metrics/mixins.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/metrics/retrieval_metrics.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/metrics/timeseries.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/metrics/wrappers.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/pointcloud/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/pointcloud/clustering.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/pointcloud/pointcloud.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/pointcloud/projectors.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/pointcloud/umap_parameters.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/py.typed +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/README.md +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/annotation_summaries.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/average_experiment_run_latency.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/cache/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/cache/two_tier_cache.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/dataset_example_revisions.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/dataset_example_spans.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/document_evaluation_summaries.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/document_evaluations.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/document_retrieval_metrics.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/experiment_annotation_summaries.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/experiment_error_rates.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/experiment_run_annotations.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/experiment_run_counts.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/experiment_sequence_number.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/latency_ms_quantile.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/min_start_or_max_end_times.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/project_by_name.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/record_counts.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/session_io.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/session_num_traces.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/session_num_traces_with_error.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/session_token_usages.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/session_trace_latency_ms_quantile.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/span_annotations.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/span_dataset_examples.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/span_descendants.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/span_projects.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/token_counts.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/trace_by_trace_ids.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/trace_root_spans.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/user_roles.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/dataloaders/users.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/exceptions.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/helpers/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/helpers/dataset_helpers.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/helpers/playground_registry.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/helpers/playground_spans.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/AddExamplesToDatasetInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/AddSpansToDatasetInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/ChatCompletionInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/ChatCompletionMessageInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/ClearProjectInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/ClusterInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/Coordinates.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/CreateDatasetInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/CreateSpanAnnotationInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/CreateTraceAnnotationInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/DatasetExampleInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/DatasetSort.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/DatasetVersionSort.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/DeleteAnnotationsInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/DeleteDatasetExamplesInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/DeleteDatasetInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/DeleteExperimentsInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/DimensionFilter.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/DimensionInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/GenerativeModelInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/Granularity.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/InvocationParameters.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/PatchAnnotationInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/PatchDatasetExamplesInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/PatchDatasetInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/ProjectSessionSort.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/SpanAnnotationSort.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/SpanSort.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/TemplateOptions.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/TimeRange.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/TraceAnnotationSort.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/UserRoleInput.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/input_types/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/interceptor.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/mutations/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/mutations/experiment_mutations.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/mutations/export_events_mutations.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/mutations/project_mutations.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/openapi/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/openapi/main.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/openapi/schema.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/queries.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/routers/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/routers/auth.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/routers/embeddings.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/routers/oauth2.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/routers/utils.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/routers/v1/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/routers/v1/datasets.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/routers/v1/evaluations.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/routers/v1/experiment_evaluations.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/routers/v1/experiment_runs.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/routers/v1/experiments.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/routers/v1/pydantic_compat.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/routers/v1/spans.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/routers/v1/traces.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/routers/v1/utils.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/schema.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/Annotation.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/AnnotationSummary.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/AnnotatorKind.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/ApiKey.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/AuthMethod.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/ChatCompletionMessageRole.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/ChatCompletionSubscriptionPayload.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/Cluster.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/CreateDatasetPayload.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/Dataset.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/DatasetExample.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/DatasetExampleRevision.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/DatasetValues.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/DatasetVersion.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/Dimension.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/DimensionDataType.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/DimensionShape.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/DimensionType.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/DimensionWithValue.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/DocumentEvaluationSummary.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/DocumentRetrievalMetrics.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/EmbeddingDimension.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/EmbeddingMetadata.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/Evaluation.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/EvaluationSummary.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/Event.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/EventMetadata.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/ExampleRevisionInterface.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/Experiment.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/ExperimentAnnotationSummary.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/ExperimentComparison.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/ExperimentRun.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/ExperimentRunAnnotation.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/ExportedFile.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/Functionality.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/GenerativeModel.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/GenerativeProvider.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/Inferences.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/InferencesRole.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/LabelFraction.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/MimeType.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/Model.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/NumericRange.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/Project.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/ProjectSession.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/PromptResponse.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/Retrieval.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/Segments.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/SortDir.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/Span.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/SpanAnnotation.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/SpanIOValue.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/SystemApiKey.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/TemplateLanguage.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/TokenUsage.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/TraceAnnotation.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/UMAPPoints.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/User.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/UserApiKey.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/UserRole.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/ValidationResult.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/VectorDriftMetricEnum.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/node.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/types/pagination.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/utils.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/app.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/bearer_auth.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/dml_event.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/dml_event_handler.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/email/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/email/sender.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/email/templates/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/email/templates/password_reset.html +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/email/types.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/grpc_server.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/jwt_store.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/main.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/oauth2.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/openapi/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/prometheus.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/rate_limiters.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/static/apple-touch-icon-114x114.png +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/static/apple-touch-icon-120x120.png +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/static/apple-touch-icon-144x144.png +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/static/apple-touch-icon-152x152.png +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/static/apple-touch-icon-180x180.png +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/static/apple-touch-icon-72x72.png +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/static/apple-touch-icon-76x76.png +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/static/apple-touch-icon.png +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/static/assets/vendor-DxkFTwjz.css +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/static/assets/vendor-three-DwGkEfCM.js +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/static/favicon.ico +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/static/modernizr.js +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/telemetry.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/templates/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/templates/index.html +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/thread_server.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/services.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/session/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/session/client.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/session/data_extractor.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/session/evaluation.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/session/session.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/settings.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/attributes.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/dsl/README.md +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/dsl/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/dsl/filter.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/dsl/helpers.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/dsl/query.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/errors.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/evaluation_conventions.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/exporter.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/fixtures.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/otel.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/projects.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/schemas.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/span_evaluations.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/span_json_decoder.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/span_json_encoder.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/trace_dataset.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/utils.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/v1/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/v1/evaluation_pb2.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/trace/v1/evaluation_pb2.pyi +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/utilities/__init__.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/utilities/client.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/utilities/deprecation.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/utilities/error_handling.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/utilities/json.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/utilities/logging.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/utilities/project.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/utilities/re.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/utilities/span_store.py +0 -0
- {arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/utilities/template_formatters.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: arize-phoenix
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.1.1
|
|
4
4
|
Summary: AI Observability and Evaluation
|
|
5
5
|
Project-URL: Documentation, https://docs.arize.com/phoenix/
|
|
6
6
|
Project-URL: Issues, https://github.com/Arize-ai/phoenix/issues
|
|
@@ -13,7 +13,8 @@ Classifier: Programming Language :: Python :: 3.9
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.10
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.11
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
-
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Requires-Python: <3.14,>=3.9
|
|
17
18
|
Requires-Dist: aioitertools
|
|
18
19
|
Requires-Dist: aiosqlite
|
|
19
20
|
Requires-Dist: alembic<2,>=1.3.0
|
|
@@ -44,13 +45,13 @@ Requires-Dist: scipy
|
|
|
44
45
|
Requires-Dist: sqlalchemy[asyncio]<3,>=2.0.4
|
|
45
46
|
Requires-Dist: sqlean-py>=3.45.1
|
|
46
47
|
Requires-Dist: starlette
|
|
47
|
-
Requires-Dist: strawberry-graphql==0.
|
|
48
|
+
Requires-Dist: strawberry-graphql==0.253.1
|
|
48
49
|
Requires-Dist: tqdm
|
|
49
50
|
Requires-Dist: typing-extensions>=4.6
|
|
50
51
|
Requires-Dist: uvicorn
|
|
51
52
|
Requires-Dist: websockets
|
|
52
|
-
Requires-Dist: wrapt; sys_platform
|
|
53
|
-
Requires-Dist: wrapt
|
|
53
|
+
Requires-Dist: wrapt<1.17; sys_platform == 'darwin' and platform_machine == 'x86_64'
|
|
54
|
+
Requires-Dist: wrapt>=1.17; sys_platform != 'darwin' or platform_machine != 'x86_64'
|
|
54
55
|
Provides-Extra: container
|
|
55
56
|
Requires-Dist: anthropic; extra == 'container'
|
|
56
57
|
Requires-Dist: fast-hdbscan>=0.2.0; extra == 'container'
|
|
@@ -66,7 +67,7 @@ Requires-Dist: opentelemetry-sdk; extra == 'container'
|
|
|
66
67
|
Requires-Dist: opentelemetry-semantic-conventions; extra == 'container'
|
|
67
68
|
Requires-Dist: prometheus-client; extra == 'container'
|
|
68
69
|
Requires-Dist: py-grpc-prometheus; extra == 'container'
|
|
69
|
-
Requires-Dist: strawberry-graphql[opentelemetry]==0.
|
|
70
|
+
Requires-Dist: strawberry-graphql[opentelemetry]==0.253.1; extra == 'container'
|
|
70
71
|
Requires-Dist: umap-learn; extra == 'container'
|
|
71
72
|
Requires-Dist: uvloop; (platform_system != 'Windows') and extra == 'container'
|
|
72
73
|
Provides-Extra: dev
|
|
@@ -97,7 +98,7 @@ Requires-Dist: pytest-postgresql; extra == 'dev'
|
|
|
97
98
|
Requires-Dist: pytest-xdist; extra == 'dev'
|
|
98
99
|
Requires-Dist: pytest==8.3.3; extra == 'dev'
|
|
99
100
|
Requires-Dist: ruff==0.6.9; extra == 'dev'
|
|
100
|
-
Requires-Dist: strawberry-graphql[debug-server,opentelemetry]==0.
|
|
101
|
+
Requires-Dist: strawberry-graphql[debug-server,opentelemetry]==0.253.1; extra == 'dev'
|
|
101
102
|
Requires-Dist: tabulate; extra == 'dev'
|
|
102
103
|
Requires-Dist: tox-uv==1.11.3; extra == 'dev'
|
|
103
104
|
Requires-Dist: tox==4.18.1; extra == 'dev'
|
|
@@ -198,7 +199,7 @@ Phoenix container images are available via [Docker Hub](https://hub.docker.com/r
|
|
|
198
199
|
| [Self-Hosting](https://docs.arize.com/phoenix/deployment) | ✅ |
|
|
199
200
|
| Jupyter Notebooks | ✅ |
|
|
200
201
|
| [Prompt Playground](https://docs.arize.com/phoenix/prompt-engineering/overview-prompts) | ✅ |
|
|
201
|
-
| [Sessions](https://
|
|
202
|
+
| [Sessions](https://docs.arize.com/phoenix/tracing/how-to-tracing/setup-sessions) | ✅ |
|
|
202
203
|
| Prompt Management | Coming soon ⏱️ |
|
|
203
204
|
|
|
204
205
|
## Tracing Integrations
|
|
@@ -74,7 +74,7 @@ Phoenix container images are available via [Docker Hub](https://hub.docker.com/r
|
|
|
74
74
|
| [Self-Hosting](https://docs.arize.com/phoenix/deployment) | ✅ |
|
|
75
75
|
| Jupyter Notebooks | ✅ |
|
|
76
76
|
| [Prompt Playground](https://docs.arize.com/phoenix/prompt-engineering/overview-prompts) | ✅ |
|
|
77
|
-
| [Sessions](https://
|
|
77
|
+
| [Sessions](https://docs.arize.com/phoenix/tracing/how-to-tracing/setup-sessions) | ✅ |
|
|
78
78
|
| Prompt Management | Coming soon ⏱️ |
|
|
79
79
|
|
|
80
80
|
## Tracing Integrations
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name = "arize-phoenix"
|
|
3
3
|
description = "AI Observability and Evaluation"
|
|
4
4
|
readme = "README.md"
|
|
5
|
-
requires-python = ">=3.9, <3.
|
|
5
|
+
requires-python = ">=3.9, <3.14"
|
|
6
6
|
license = {text="Elastic-2.0"}
|
|
7
7
|
license-files = { paths = ["LICENSE", "IP_NOTICE"] }
|
|
8
8
|
keywords = [
|
|
@@ -19,6 +19,7 @@ classifiers = [
|
|
|
19
19
|
"Programming Language :: Python :: 3.10",
|
|
20
20
|
"Programming Language :: Python :: 3.11",
|
|
21
21
|
"Programming Language :: Python :: 3.12",
|
|
22
|
+
"Programming Language :: Python :: 3.13",
|
|
22
23
|
]
|
|
23
24
|
dependencies = [
|
|
24
25
|
"scikit-learn",
|
|
@@ -28,12 +29,12 @@ dependencies = [
|
|
|
28
29
|
"starlette",
|
|
29
30
|
"uvicorn",
|
|
30
31
|
"psutil",
|
|
31
|
-
"strawberry-graphql==0.
|
|
32
|
+
"strawberry-graphql==0.253.1", # need to pin version because we're monkey-patching
|
|
32
33
|
"pyarrow",
|
|
33
34
|
"typing-extensions>=4.6",
|
|
34
35
|
"scipy",
|
|
35
|
-
"wrapt<1.17; sys_platform == 'darwin'",
|
|
36
|
-
"wrapt; sys_platform != 'darwin'",
|
|
36
|
+
"wrapt<1.17; sys_platform == 'darwin' and platform_machine == 'x86_64'",
|
|
37
|
+
"wrapt>=1.17; sys_platform != 'darwin' or platform_machine != 'x86_64'",
|
|
37
38
|
"protobuf>=3.20.2, <6.0",
|
|
38
39
|
"grpcio",
|
|
39
40
|
"grpc-interceptor",
|
|
@@ -87,7 +88,7 @@ dev = [
|
|
|
87
88
|
"pytest-postgresql",
|
|
88
89
|
"asyncpg",
|
|
89
90
|
"psycopg[binary,pool]",
|
|
90
|
-
"strawberry-graphql[debug-server,opentelemetry]==0.
|
|
91
|
+
"strawberry-graphql[debug-server,opentelemetry]==0.253.1", # need to pin version because we're monkey-patching
|
|
91
92
|
"pre-commit",
|
|
92
93
|
"arize[AutoEmbeddings, LLM_Evaluation]",
|
|
93
94
|
"llama-index>=0.10.3",
|
|
@@ -133,7 +134,7 @@ container = [
|
|
|
133
134
|
"opentelemetry-instrumentation-sqlalchemy",
|
|
134
135
|
"opentelemetry-instrumentation-grpc",
|
|
135
136
|
"py-grpc-prometheus",
|
|
136
|
-
"strawberry-graphql[opentelemetry]==0.
|
|
137
|
+
"strawberry-graphql[opentelemetry]==0.253.1", # need to pin version because we're monkey-patching
|
|
137
138
|
"uvloop; platform_system != 'Windows'",
|
|
138
139
|
"fast-hdbscan>=0.2.0",
|
|
139
140
|
"numba>=0.60.0", # https://github.com/astral-sh/uv/issues/6281
|
|
@@ -229,7 +230,7 @@ dependencies = [
|
|
|
229
230
|
"py-grpc-prometheus",
|
|
230
231
|
"pypistats", # this is needed to type-check third-party packages
|
|
231
232
|
"requests", # this is needed to type-check third-party packages
|
|
232
|
-
"strawberry-graphql[opentelemetry]==0.
|
|
233
|
+
"strawberry-graphql[opentelemetry]==0.253.1", # need to pin version because we're monkey-patching
|
|
233
234
|
"tenacity",
|
|
234
235
|
"types-cachetools",
|
|
235
236
|
"types-protobuf",
|
|
@@ -20,6 +20,18 @@ class IsNotReadOnly(Authorization):
|
|
|
20
20
|
return not info.context.read_only
|
|
21
21
|
|
|
22
22
|
|
|
23
|
+
class IsLocked(Authorization):
|
|
24
|
+
"""
|
|
25
|
+
Disables mutations and subscriptions that create or update data but allows
|
|
26
|
+
queries and delete mutations.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
message = "Operations that write or modify data are locked"
|
|
30
|
+
|
|
31
|
+
def has_permission(self, source: Any, info: Info, **kwargs: Any) -> bool:
|
|
32
|
+
return not info.context.locked
|
|
33
|
+
|
|
34
|
+
|
|
23
35
|
MSG_ADMIN_ONLY = "Only admin can perform this action"
|
|
24
36
|
|
|
25
37
|
|
|
@@ -108,6 +108,7 @@ class Context(BaseContext):
|
|
|
108
108
|
event_queue: CanPutItem[DmlEvent] = _NoOp()
|
|
109
109
|
corpus: Optional[Model] = None
|
|
110
110
|
read_only: bool = False
|
|
111
|
+
locked: bool = False
|
|
111
112
|
auth_enabled: bool = False
|
|
112
113
|
secret: Optional[str] = None
|
|
113
114
|
token_store: Optional[TokenStore] = None
|
|
@@ -8,7 +8,10 @@ from typing_extensions import Annotated
|
|
|
8
8
|
from phoenix.core.model_schema import Column
|
|
9
9
|
from phoenix.metrics import Metric
|
|
10
10
|
from phoenix.metrics.mixins import UnaryOperator
|
|
11
|
-
from phoenix.server.api.types.DataQualityMetric import
|
|
11
|
+
from phoenix.server.api.types.DataQualityMetric import (
|
|
12
|
+
DATA_QUALITY_METRIC_FACTORIES,
|
|
13
|
+
DataQualityMetric,
|
|
14
|
+
)
|
|
12
15
|
|
|
13
16
|
|
|
14
17
|
@strawberry.input
|
|
@@ -26,7 +29,7 @@ class DataQualityMetricInput:
|
|
|
26
29
|
metric_instance: strawberry.Private[Metric] = field(init=False)
|
|
27
30
|
|
|
28
31
|
def __post_init__(self) -> None:
|
|
29
|
-
metric_instance = self.metric
|
|
32
|
+
metric_instance = DATA_QUALITY_METRIC_FACTORIES[self.metric]()
|
|
30
33
|
if isinstance(metric_instance, UnaryOperator):
|
|
31
34
|
if not isinstance(self.column_name, str):
|
|
32
35
|
raise ValueError(f"column name must not be null for {self.metric.name}")
|
|
@@ -3,7 +3,10 @@ import strawberry
|
|
|
3
3
|
from phoenix.core.model_schema import ACTUAL_LABEL, PREDICTION_LABEL, Column, Model
|
|
4
4
|
from phoenix.metrics import Metric
|
|
5
5
|
from phoenix.metrics.mixins import EvaluationMetric
|
|
6
|
-
from phoenix.server.api.types.PerformanceMetric import
|
|
6
|
+
from phoenix.server.api.types.PerformanceMetric import (
|
|
7
|
+
PERFORMANCE_METRIC_FUNCTIONS,
|
|
8
|
+
PerformanceMetric,
|
|
9
|
+
)
|
|
7
10
|
|
|
8
11
|
|
|
9
12
|
@strawberry.input
|
|
@@ -14,5 +17,5 @@ class PerformanceMetricInput:
|
|
|
14
17
|
return EvaluationMetric(
|
|
15
18
|
actual=Column(model[ACTUAL_LABEL].name),
|
|
16
19
|
predicted=Column(model[PREDICTION_LABEL].name),
|
|
17
|
-
eval=self.metric
|
|
20
|
+
eval=PERFORMANCE_METRIC_FUNCTIONS[self.metric],
|
|
18
21
|
)
|
{arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/mutations/api_key_mutations.py
RENAMED
|
@@ -8,7 +8,7 @@ from strawberry.relay import GlobalID
|
|
|
8
8
|
from strawberry.types import Info
|
|
9
9
|
|
|
10
10
|
from phoenix.db import enums, models
|
|
11
|
-
from phoenix.server.api.auth import IsAdmin, IsNotReadOnly
|
|
11
|
+
from phoenix.server.api.auth import IsAdmin, IsLocked, IsNotReadOnly
|
|
12
12
|
from phoenix.server.api.context import Context
|
|
13
13
|
from phoenix.server.api.exceptions import Unauthorized
|
|
14
14
|
from phoenix.server.api.queries import Query
|
|
@@ -60,7 +60,7 @@ class DeleteApiKeyMutationPayload:
|
|
|
60
60
|
|
|
61
61
|
@strawberry.type
|
|
62
62
|
class ApiKeyMutationMixin:
|
|
63
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsAdmin]) # type: ignore
|
|
63
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsAdmin, IsLocked]) # type: ignore
|
|
64
64
|
async def create_system_api_key(
|
|
65
65
|
self, info: Info[Context, None], input: CreateApiKeyInput
|
|
66
66
|
) -> CreateSystemApiKeyMutationPayload:
|
|
@@ -101,7 +101,7 @@ class ApiKeyMutationMixin:
|
|
|
101
101
|
query=Query(),
|
|
102
102
|
)
|
|
103
103
|
|
|
104
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly]) # type: ignore
|
|
104
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsLocked]) # type: ignore
|
|
105
105
|
async def create_user_api_key(
|
|
106
106
|
self, info: Info[Context, None], input: CreateUserApiKeyInput
|
|
107
107
|
) -> CreateUserApiKeyMutationPayload:
|
{arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/mutations/chat_mutations.py
RENAMED
|
@@ -25,7 +25,7 @@ from typing_extensions import assert_never
|
|
|
25
25
|
from phoenix.datetime_utils import local_now, normalize_datetime
|
|
26
26
|
from phoenix.db import models
|
|
27
27
|
from phoenix.db.helpers import get_dataset_example_revisions
|
|
28
|
-
from phoenix.server.api.auth import IsNotReadOnly
|
|
28
|
+
from phoenix.server.api.auth import IsLocked, IsNotReadOnly
|
|
29
29
|
from phoenix.server.api.context import Context
|
|
30
30
|
from phoenix.server.api.exceptions import BadRequest, CustomGraphQLError, NotFound
|
|
31
31
|
from phoenix.server.api.helpers.dataset_helpers import get_dataset_example_output
|
|
@@ -120,7 +120,7 @@ class ChatCompletionOverDatasetMutationPayload:
|
|
|
120
120
|
|
|
121
121
|
@strawberry.type
|
|
122
122
|
class ChatCompletionMutationMixin:
|
|
123
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly]) # type: ignore
|
|
123
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsLocked]) # type: ignore
|
|
124
124
|
@classmethod
|
|
125
125
|
async def chat_completion_over_dataset(
|
|
126
126
|
cls,
|
|
@@ -275,7 +275,7 @@ class ChatCompletionMutationMixin:
|
|
|
275
275
|
payload.examples.append(example_payload)
|
|
276
276
|
return payload
|
|
277
277
|
|
|
278
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly]) # type: ignore
|
|
278
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsLocked]) # type: ignore
|
|
279
279
|
@classmethod
|
|
280
280
|
async def chat_completion(
|
|
281
281
|
cls, info: Info[Context, None], input: ChatCompletionInput
|
{arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/mutations/dataset_mutations.py
RENAMED
|
@@ -12,7 +12,7 @@ from strawberry.types import Info
|
|
|
12
12
|
|
|
13
13
|
from phoenix.db import models
|
|
14
14
|
from phoenix.db.helpers import get_eval_trace_ids_for_datasets, get_project_names_for_datasets
|
|
15
|
-
from phoenix.server.api.auth import IsNotReadOnly
|
|
15
|
+
from phoenix.server.api.auth import IsLocked, IsNotReadOnly
|
|
16
16
|
from phoenix.server.api.context import Context
|
|
17
17
|
from phoenix.server.api.exceptions import BadRequest, NotFound
|
|
18
18
|
from phoenix.server.api.helpers.dataset_helpers import (
|
|
@@ -44,7 +44,7 @@ class DatasetMutationPayload:
|
|
|
44
44
|
|
|
45
45
|
@strawberry.type
|
|
46
46
|
class DatasetMutationMixin:
|
|
47
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly]) # type: ignore
|
|
47
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsLocked]) # type: ignore
|
|
48
48
|
async def create_dataset(
|
|
49
49
|
self,
|
|
50
50
|
info: Info[Context, None],
|
|
@@ -67,7 +67,7 @@ class DatasetMutationMixin:
|
|
|
67
67
|
info.context.event_queue.put(DatasetInsertEvent((dataset.id,)))
|
|
68
68
|
return DatasetMutationPayload(dataset=to_gql_dataset(dataset))
|
|
69
69
|
|
|
70
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly]) # type: ignore
|
|
70
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsLocked]) # type: ignore
|
|
71
71
|
async def patch_dataset(
|
|
72
72
|
self,
|
|
73
73
|
info: Info[Context, None],
|
|
@@ -96,7 +96,7 @@ class DatasetMutationMixin:
|
|
|
96
96
|
info.context.event_queue.put(DatasetInsertEvent((dataset.id,)))
|
|
97
97
|
return DatasetMutationPayload(dataset=to_gql_dataset(dataset))
|
|
98
98
|
|
|
99
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly]) # type: ignore
|
|
99
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsLocked]) # type: ignore
|
|
100
100
|
async def add_spans_to_dataset(
|
|
101
101
|
self,
|
|
102
102
|
info: Info[Context, None],
|
|
@@ -205,7 +205,7 @@ class DatasetMutationMixin:
|
|
|
205
205
|
info.context.event_queue.put(DatasetInsertEvent((dataset.id,)))
|
|
206
206
|
return DatasetMutationPayload(dataset=to_gql_dataset(dataset))
|
|
207
207
|
|
|
208
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly]) # type: ignore
|
|
208
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsLocked]) # type: ignore
|
|
209
209
|
async def add_examples_to_dataset(
|
|
210
210
|
self, info: Info[Context, None], input: AddExamplesToDatasetInput
|
|
211
211
|
) -> DatasetMutationPayload:
|
|
@@ -331,7 +331,7 @@ class DatasetMutationMixin:
|
|
|
331
331
|
info.context.event_queue.put(DatasetInsertEvent((dataset.id,)))
|
|
332
332
|
return DatasetMutationPayload(dataset=to_gql_dataset(dataset))
|
|
333
333
|
|
|
334
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly]) # type: ignore
|
|
334
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsLocked]) # type: ignore
|
|
335
335
|
async def delete_dataset(
|
|
336
336
|
self,
|
|
337
337
|
info: Info[Context, None],
|
|
@@ -362,7 +362,7 @@ class DatasetMutationMixin:
|
|
|
362
362
|
info.context.event_queue.put(DatasetDeleteEvent((dataset.id,)))
|
|
363
363
|
return DatasetMutationPayload(dataset=to_gql_dataset(dataset))
|
|
364
364
|
|
|
365
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly]) # type: ignore
|
|
365
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsLocked]) # type: ignore
|
|
366
366
|
async def patch_dataset_examples(
|
|
367
367
|
self,
|
|
368
368
|
info: Info[Context, None],
|
|
@@ -454,7 +454,7 @@ class DatasetMutationMixin:
|
|
|
454
454
|
info.context.event_queue.put(DatasetInsertEvent((dataset.id,)))
|
|
455
455
|
return DatasetMutationPayload(dataset=to_gql_dataset(dataset))
|
|
456
456
|
|
|
457
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly]) # type: ignore
|
|
457
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsLocked]) # type: ignore
|
|
458
458
|
async def delete_dataset_examples(
|
|
459
459
|
self, info: Info[Context, None], input: DeleteDatasetExamplesInput
|
|
460
460
|
) -> DatasetMutationPayload:
|
|
@@ -6,7 +6,7 @@ from strawberry import UNSET
|
|
|
6
6
|
from strawberry.types import Info
|
|
7
7
|
|
|
8
8
|
from phoenix.db import models
|
|
9
|
-
from phoenix.server.api.auth import IsNotReadOnly
|
|
9
|
+
from phoenix.server.api.auth import IsLocked, IsNotReadOnly
|
|
10
10
|
from phoenix.server.api.context import Context
|
|
11
11
|
from phoenix.server.api.input_types.CreateSpanAnnotationInput import CreateSpanAnnotationInput
|
|
12
12
|
from phoenix.server.api.input_types.DeleteAnnotationsInput import DeleteAnnotationsInput
|
|
@@ -25,7 +25,7 @@ class SpanAnnotationMutationPayload:
|
|
|
25
25
|
|
|
26
26
|
@strawberry.type
|
|
27
27
|
class SpanAnnotationMutationMixin:
|
|
28
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly]) # type: ignore
|
|
28
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsLocked]) # type: ignore
|
|
29
29
|
async def create_span_annotations(
|
|
30
30
|
self, info: Info[Context, None], input: list[CreateSpanAnnotationInput]
|
|
31
31
|
) -> SpanAnnotationMutationPayload:
|
|
@@ -59,7 +59,7 @@ class SpanAnnotationMutationMixin:
|
|
|
59
59
|
query=Query(),
|
|
60
60
|
)
|
|
61
61
|
|
|
62
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly]) # type: ignore
|
|
62
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsLocked]) # type: ignore
|
|
63
63
|
async def patch_span_annotations(
|
|
64
64
|
self, info: Info[Context, None], input: list[PatchAnnotationInput]
|
|
65
65
|
) -> SpanAnnotationMutationPayload:
|
|
@@ -6,7 +6,7 @@ from strawberry import UNSET
|
|
|
6
6
|
from strawberry.types import Info
|
|
7
7
|
|
|
8
8
|
from phoenix.db import models
|
|
9
|
-
from phoenix.server.api.auth import IsNotReadOnly
|
|
9
|
+
from phoenix.server.api.auth import IsLocked, IsNotReadOnly
|
|
10
10
|
from phoenix.server.api.context import Context
|
|
11
11
|
from phoenix.server.api.input_types.CreateTraceAnnotationInput import CreateTraceAnnotationInput
|
|
12
12
|
from phoenix.server.api.input_types.DeleteAnnotationsInput import DeleteAnnotationsInput
|
|
@@ -25,7 +25,7 @@ class TraceAnnotationMutationPayload:
|
|
|
25
25
|
|
|
26
26
|
@strawberry.type
|
|
27
27
|
class TraceAnnotationMutationMixin:
|
|
28
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly]) # type: ignore
|
|
28
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsLocked]) # type: ignore
|
|
29
29
|
async def create_trace_annotations(
|
|
30
30
|
self, info: Info[Context, None], input: list[CreateTraceAnnotationInput]
|
|
31
31
|
) -> TraceAnnotationMutationPayload:
|
|
@@ -59,7 +59,7 @@ class TraceAnnotationMutationMixin:
|
|
|
59
59
|
query=Query(),
|
|
60
60
|
)
|
|
61
61
|
|
|
62
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly]) # type: ignore
|
|
62
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsLocked]) # type: ignore
|
|
63
63
|
async def patch_trace_annotations(
|
|
64
64
|
self, info: Info[Context, None], input: list[PatchAnnotationInput]
|
|
65
65
|
) -> TraceAnnotationMutationPayload:
|
{arize_phoenix-7.0.1 → arize_phoenix-7.1.1}/src/phoenix/server/api/mutations/user_mutations.py
RENAMED
|
@@ -22,7 +22,7 @@ from phoenix.auth import (
|
|
|
22
22
|
validate_password_format,
|
|
23
23
|
)
|
|
24
24
|
from phoenix.db import enums, models
|
|
25
|
-
from phoenix.server.api.auth import IsAdmin, IsNotReadOnly
|
|
25
|
+
from phoenix.server.api.auth import IsAdmin, IsLocked, IsNotReadOnly
|
|
26
26
|
from phoenix.server.api.context import Context
|
|
27
27
|
from phoenix.server.api.exceptions import Conflict, NotFound, Unauthorized
|
|
28
28
|
from phoenix.server.api.input_types.UserRoleInput import UserRoleInput
|
|
@@ -81,7 +81,7 @@ class UserMutationPayload:
|
|
|
81
81
|
|
|
82
82
|
@strawberry.type
|
|
83
83
|
class UserMutationMixin:
|
|
84
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsAdmin]) # type: ignore
|
|
84
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsAdmin, IsLocked]) # type: ignore
|
|
85
85
|
async def create_user(
|
|
86
86
|
self,
|
|
87
87
|
info: Info[Context, None],
|
|
@@ -112,7 +112,7 @@ class UserMutationMixin:
|
|
|
112
112
|
raise Conflict(_user_operation_error_message(error))
|
|
113
113
|
return UserMutationPayload(user=to_gql_user(user))
|
|
114
114
|
|
|
115
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsAdmin]) # type: ignore
|
|
115
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsAdmin, IsLocked]) # type: ignore
|
|
116
116
|
async def patch_user(
|
|
117
117
|
self,
|
|
118
118
|
info: Info[Context, None],
|
|
@@ -155,7 +155,7 @@ class UserMutationMixin:
|
|
|
155
155
|
await info.context.log_out(user.id)
|
|
156
156
|
return UserMutationPayload(user=to_gql_user(user))
|
|
157
157
|
|
|
158
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly]) # type: ignore
|
|
158
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsLocked]) # type: ignore
|
|
159
159
|
async def patch_viewer(
|
|
160
160
|
self,
|
|
161
161
|
info: Info[Context, None],
|
|
@@ -196,7 +196,7 @@ class UserMutationMixin:
|
|
|
196
196
|
response.delete_cookie(PHOENIX_ACCESS_TOKEN_COOKIE_NAME)
|
|
197
197
|
return UserMutationPayload(user=to_gql_user(user))
|
|
198
198
|
|
|
199
|
-
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsAdmin]) # type: ignore
|
|
199
|
+
@strawberry.mutation(permission_classes=[IsNotReadOnly, IsAdmin, IsLocked]) # type: ignore
|
|
200
200
|
async def delete_users(
|
|
201
201
|
self,
|
|
202
202
|
info: Info[Context, None],
|
|
@@ -25,7 +25,7 @@ from typing_extensions import TypeAlias, assert_never
|
|
|
25
25
|
|
|
26
26
|
from phoenix.datetime_utils import local_now, normalize_datetime
|
|
27
27
|
from phoenix.db import models
|
|
28
|
-
from phoenix.server.api.auth import IsNotReadOnly
|
|
28
|
+
from phoenix.server.api.auth import IsLocked, IsNotReadOnly
|
|
29
29
|
from phoenix.server.api.context import Context
|
|
30
30
|
from phoenix.server.api.exceptions import BadRequest, CustomGraphQLError, NotFound
|
|
31
31
|
from phoenix.server.api.helpers.playground_clients import (
|
|
@@ -89,7 +89,7 @@ PLAYGROUND_PROJECT_NAME = "playground"
|
|
|
89
89
|
|
|
90
90
|
@strawberry.type
|
|
91
91
|
class Subscription:
|
|
92
|
-
@strawberry.subscription(permission_classes=[IsNotReadOnly]) # type: ignore
|
|
92
|
+
@strawberry.subscription(permission_classes=[IsNotReadOnly, IsLocked]) # type: ignore
|
|
93
93
|
async def chat_completion(
|
|
94
94
|
self, info: Info[Context, None], input: ChatCompletionInput
|
|
95
95
|
) -> AsyncIterator[ChatCompletionSubscriptionPayload]:
|
|
@@ -167,7 +167,7 @@ class Subscription:
|
|
|
167
167
|
info.context.event_queue.put(SpanInsertEvent(ids=(playground_project_id,)))
|
|
168
168
|
yield ChatCompletionSubscriptionResult(span=to_gql_span(db_span))
|
|
169
169
|
|
|
170
|
-
@strawberry.subscription(permission_classes=[IsNotReadOnly]) # type: ignore
|
|
170
|
+
@strawberry.subscription(permission_classes=[IsNotReadOnly, IsLocked]) # type: ignore
|
|
171
171
|
async def chat_completion_over_dataset(
|
|
172
172
|
self, info: Info[Context, None], input: ChatCompletionOverDatasetInput
|
|
173
173
|
) -> AsyncIterator[ChatCompletionSubscriptionPayload]:
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
from enum import Enum, auto
|
|
2
|
+
from functools import partial
|
|
3
|
+
from typing import Callable, Mapping, cast
|
|
4
|
+
|
|
5
|
+
import strawberry
|
|
6
|
+
|
|
7
|
+
from phoenix.metrics import Metric
|
|
8
|
+
from phoenix.metrics.metrics import Cardinality, Count, Max, Mean, Min, PercentEmpty, Quantile, Sum
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@strawberry.enum
|
|
12
|
+
class DataQualityMetric(Enum):
|
|
13
|
+
cardinality = auto()
|
|
14
|
+
percentEmpty = auto()
|
|
15
|
+
mean = auto()
|
|
16
|
+
sum = auto()
|
|
17
|
+
min = auto()
|
|
18
|
+
max = auto()
|
|
19
|
+
count = auto()
|
|
20
|
+
p01 = auto()
|
|
21
|
+
p25 = auto()
|
|
22
|
+
p50 = auto()
|
|
23
|
+
p75 = auto()
|
|
24
|
+
p99 = auto()
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
DATA_QUALITY_METRIC_FACTORIES: Mapping[DataQualityMetric, Callable[[], Metric]] = {
|
|
28
|
+
DataQualityMetric.cardinality: cast(Callable[[], Metric], Cardinality),
|
|
29
|
+
DataQualityMetric.percentEmpty: cast(Callable[[], Metric], PercentEmpty),
|
|
30
|
+
DataQualityMetric.mean: cast(Callable[[], Metric], Mean),
|
|
31
|
+
DataQualityMetric.sum: cast(Callable[[], Metric], Sum),
|
|
32
|
+
DataQualityMetric.min: cast(Callable[[], Metric], Min),
|
|
33
|
+
DataQualityMetric.max: cast(Callable[[], Metric], Max),
|
|
34
|
+
DataQualityMetric.count: cast(Callable[[], Metric], Count),
|
|
35
|
+
DataQualityMetric.p01: cast(Callable[[], Metric], partial(Quantile, probability=0.01)),
|
|
36
|
+
DataQualityMetric.p25: cast(Callable[[], Metric], partial(Quantile, probability=0.25)),
|
|
37
|
+
DataQualityMetric.p50: cast(Callable[[], Metric], partial(Quantile, probability=0.50)),
|
|
38
|
+
DataQualityMetric.p75: cast(Callable[[], Metric], partial(Quantile, probability=0.75)),
|
|
39
|
+
DataQualityMetric.p99: cast(Callable[[], Metric], partial(Quantile, probability=0.99)),
|
|
40
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from enum import Enum, auto
|
|
2
|
+
from typing import Callable, Mapping, cast
|
|
3
|
+
|
|
4
|
+
import strawberry
|
|
5
|
+
|
|
6
|
+
from phoenix.metrics.wrappers import SkEval
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@strawberry.enum
|
|
10
|
+
class PerformanceMetric(Enum):
|
|
11
|
+
accuracyScore = auto()
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
PERFORMANCE_METRIC_FUNCTIONS: Mapping[PerformanceMetric, Callable[..., float]] = {
|
|
15
|
+
PerformanceMetric.accuracyScore: cast(Callable[..., float], SkEval.accuracy_score),
|
|
16
|
+
}
|
|
@@ -15,7 +15,10 @@ from phoenix.metrics.timeseries import timeseries
|
|
|
15
15
|
from phoenix.server.api.input_types.Granularity import Granularity, to_timestamps
|
|
16
16
|
from phoenix.server.api.input_types.TimeRange import TimeRange
|
|
17
17
|
from phoenix.server.api.interceptor import GqlValueMediator
|
|
18
|
-
from phoenix.server.api.types.DataQualityMetric import
|
|
18
|
+
from phoenix.server.api.types.DataQualityMetric import (
|
|
19
|
+
DATA_QUALITY_METRIC_FACTORIES,
|
|
20
|
+
DataQualityMetric,
|
|
21
|
+
)
|
|
19
22
|
from phoenix.server.api.types.InferencesRole import InferencesRole
|
|
20
23
|
from phoenix.server.api.types.ScalarDriftMetricEnum import ScalarDriftMetric
|
|
21
24
|
from phoenix.server.api.types.VectorDriftMetricEnum import VectorDriftMetric
|
|
@@ -100,7 +103,7 @@ def get_data_quality_timeseries_data(
|
|
|
100
103
|
granularity: Granularity,
|
|
101
104
|
inferences_role: InferencesRole,
|
|
102
105
|
) -> list[TimeSeriesDataPoint]:
|
|
103
|
-
metric_instance = metric
|
|
106
|
+
metric_instance = DATA_QUALITY_METRIC_FACTORIES[metric]()
|
|
104
107
|
if isinstance(metric_instance, UnaryOperator):
|
|
105
108
|
metric_instance = replace(
|
|
106
109
|
metric_instance,
|
|
@@ -36,6 +36,19 @@ class Trace(Node):
|
|
|
36
36
|
start_time: datetime
|
|
37
37
|
end_time: datetime
|
|
38
38
|
|
|
39
|
+
@strawberry.field
|
|
40
|
+
async def latency_ms(
|
|
41
|
+
self,
|
|
42
|
+
info: Info[Context, None],
|
|
43
|
+
) -> Optional[float]:
|
|
44
|
+
async with info.context.db() as session:
|
|
45
|
+
latency = await session.scalar(
|
|
46
|
+
select(
|
|
47
|
+
models.Trace.latency_ms,
|
|
48
|
+
).where(models.Trace.id == self.id_attr)
|
|
49
|
+
)
|
|
50
|
+
return latency
|
|
51
|
+
|
|
39
52
|
@strawberry.field
|
|
40
53
|
async def project_id(self) -> GlobalID:
|
|
41
54
|
from phoenix.server.api.types.Project import Project
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_components-DaxEPah8.js": {
|
|
3
|
+
"file": "assets/components-DaxEPah8.js",
|
|
4
|
+
"name": "components",
|
|
5
|
+
"imports": [
|
|
6
|
+
"_vendor-DwOx_a-2.js",
|
|
7
|
+
"_pages-CY7Swxhi.js",
|
|
8
|
+
"_vendor-arizeai-BWSsCZNG.js",
|
|
9
|
+
"_vendor-codemirror-WrxmCiOZ.js",
|
|
10
|
+
"_vendor-three-DwGkEfCM.js"
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
"_pages-CY7Swxhi.js": {
|
|
14
|
+
"file": "assets/pages-CY7Swxhi.js",
|
|
15
|
+
"name": "pages",
|
|
16
|
+
"imports": [
|
|
17
|
+
"_vendor-DwOx_a-2.js",
|
|
18
|
+
"_vendor-arizeai-BWSsCZNG.js",
|
|
19
|
+
"_components-DaxEPah8.js",
|
|
20
|
+
"_vendor-codemirror-WrxmCiOZ.js",
|
|
21
|
+
"_vendor-recharts-Bj7q9ORc.js"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
"_vendor-!~{003}~.js": {
|
|
25
|
+
"file": "assets/vendor-DxkFTwjz.css",
|
|
26
|
+
"src": "_vendor-!~{003}~.js"
|
|
27
|
+
},
|
|
28
|
+
"_vendor-DwOx_a-2.js": {
|
|
29
|
+
"file": "assets/vendor-DwOx_a-2.js",
|
|
30
|
+
"name": "vendor",
|
|
31
|
+
"imports": [
|
|
32
|
+
"_vendor-three-DwGkEfCM.js"
|
|
33
|
+
],
|
|
34
|
+
"css": [
|
|
35
|
+
"assets/vendor-DxkFTwjz.css"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"_vendor-arizeai-BWSsCZNG.js": {
|
|
39
|
+
"file": "assets/vendor-arizeai-BWSsCZNG.js",
|
|
40
|
+
"name": "vendor-arizeai",
|
|
41
|
+
"imports": [
|
|
42
|
+
"_vendor-DwOx_a-2.js"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"_vendor-codemirror-WrxmCiOZ.js": {
|
|
46
|
+
"file": "assets/vendor-codemirror-WrxmCiOZ.js",
|
|
47
|
+
"name": "vendor-codemirror",
|
|
48
|
+
"imports": [
|
|
49
|
+
"_vendor-DwOx_a-2.js",
|
|
50
|
+
"_vendor-shiki-RnWcZtzE.js"
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
"_vendor-recharts-Bj7q9ORc.js": {
|
|
54
|
+
"file": "assets/vendor-recharts-Bj7q9ORc.js",
|
|
55
|
+
"name": "vendor-recharts",
|
|
56
|
+
"imports": [
|
|
57
|
+
"_vendor-DwOx_a-2.js"
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
"_vendor-shiki-RnWcZtzE.js": {
|
|
61
|
+
"file": "assets/vendor-shiki-RnWcZtzE.js",
|
|
62
|
+
"name": "vendor-shiki",
|
|
63
|
+
"imports": [
|
|
64
|
+
"_vendor-DwOx_a-2.js"
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
"_vendor-three-DwGkEfCM.js": {
|
|
68
|
+
"file": "assets/vendor-three-DwGkEfCM.js",
|
|
69
|
+
"name": "vendor-three"
|
|
70
|
+
},
|
|
71
|
+
"index.tsx": {
|
|
72
|
+
"file": "assets/index-DxfKd3lv.js",
|
|
73
|
+
"name": "index",
|
|
74
|
+
"src": "index.tsx",
|
|
75
|
+
"isEntry": true,
|
|
76
|
+
"imports": [
|
|
77
|
+
"_vendor-DwOx_a-2.js",
|
|
78
|
+
"_vendor-arizeai-BWSsCZNG.js",
|
|
79
|
+
"_pages-CY7Swxhi.js",
|
|
80
|
+
"_components-DaxEPah8.js",
|
|
81
|
+
"_vendor-three-DwGkEfCM.js",
|
|
82
|
+
"_vendor-codemirror-WrxmCiOZ.js",
|
|
83
|
+
"_vendor-shiki-RnWcZtzE.js",
|
|
84
|
+
"_vendor-recharts-Bj7q9ORc.js"
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
}
|