arize-phoenix 4.30.0__tar.gz → 4.30.2__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-4.30.0 → arize_phoenix-4.30.2}/PKG-INFO +1 -1
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/context.py +2 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/__init__.py +2 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/dataset_example_revisions.py +54 -17
- arize_phoenix-4.30.2/src/phoenix/server/api/dataloaders/experiment_run_annotations.py +40 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/ExperimentRun.py +1 -9
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/app.py +2 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/session/client.py +34 -22
- arize_phoenix-4.30.2/src/phoenix/version.py +1 -0
- arize_phoenix-4.30.0/src/phoenix/version.py +0 -1
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/.gitignore +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/IP_NOTICE +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/LICENSE +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/README.md +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/examples/manually-instrumented-chatbot/chat-service/chat/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/examples/manually-instrumented-chatbot/chat-service/chat/app.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/examples/manually-instrumented-chatbot/chat-service/chat/types.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/examples/manually-instrumented-chatbot/frontend/Dockerfile +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/examples/manually-instrumented-chatbot/frontend/Makefile +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/examples/manually-instrumented-chatbot/frontend/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/examples/manually-instrumented-chatbot/frontend/pyproject.toml +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/examples/manually-instrumented-chatbot/frontend/requirements.txt +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/examples/manually-instrumented-chatbot/frontend/schema.json +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/pyproject.toml +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/auth.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/config.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/core/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/core/embedding_dimension.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/core/model.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/core/model_schema.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/core/model_schema_adapter.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/datetime_utils.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/README.md +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/alembic.ini +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/bulk_inserter.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/engines.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/helpers.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/insertion/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/insertion/constants.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/insertion/dataset.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/insertion/document_annotation.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/insertion/evaluation.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/insertion/helpers.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/insertion/span.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/insertion/span_annotation.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/insertion/trace_annotation.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/insertion/types.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/migrate.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/migrations/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/migrations/env.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/migrations/future_versions/README.md +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/migrations/future_versions/cd164e83824f_users_and_tokens.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/migrations/script.py.mako +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/migrations/versions/.gitignore +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/migrations/versions/10460e46d750_datasets.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/migrations/versions/3be8647b87d8_add_token_columns_to_spans_table.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/migrations/versions/cf03bd6bae1d_init.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/models.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/exceptions.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/experiments/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/experiments/evaluators/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/experiments/evaluators/base.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/experiments/evaluators/code_evaluators.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/experiments/evaluators/llm_evaluators.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/experiments/evaluators/utils.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/experiments/functions.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/experiments/tracing.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/experiments/types.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/experiments/utils.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/inferences/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/inferences/errors.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/inferences/fixtures.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/inferences/inferences.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/inferences/schema.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/inferences/validation.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/metrics/README.md +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/metrics/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/metrics/binning.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/metrics/metrics.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/metrics/mixins.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/metrics/retrieval_metrics.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/metrics/timeseries.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/metrics/wrappers.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/pointcloud/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/pointcloud/clustering.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/pointcloud/pointcloud.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/pointcloud/projectors.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/pointcloud/umap_parameters.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/py.typed +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/annotation_summaries.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/average_experiment_run_latency.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/cache/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/cache/two_tier_cache.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/dataset_example_spans.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/document_evaluation_summaries.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/document_evaluations.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/document_retrieval_metrics.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/experiment_annotation_summaries.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/experiment_error_rates.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/experiment_run_counts.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/experiment_sequence_number.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/latency_ms_quantile.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/min_start_or_max_end_times.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/project_by_name.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/record_counts.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/span_annotations.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/span_dataset_examples.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/span_descendants.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/span_projects.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/token_counts.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/trace_row_ids.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/exceptions.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/helpers/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/helpers/dataset_helpers.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/AddExamplesToDatasetInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/AddSpansToDatasetInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/ClearProjectInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/ClusterInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/Coordinates.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/CreateDatasetInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/CreateSpanAnnotationInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/CreateTraceAnnotationInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/DataQualityMetricInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/DatasetExampleInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/DatasetSort.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/DatasetVersionSort.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/DeleteAnnotationsInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/DeleteDatasetExamplesInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/DeleteDatasetInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/DeleteExperimentsInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/DimensionFilter.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/DimensionInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/Granularity.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/PatchAnnotationInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/PatchDatasetExamplesInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/PatchDatasetInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/PerformanceMetricInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/SpanAnnotationSort.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/SpanSort.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/TimeRange.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/TraceAnnotationSort.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/UserRoleInput.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/interceptor.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/mutations/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/mutations/api_key_mutations.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/mutations/auth.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/mutations/auth_mutations.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/mutations/dataset_mutations.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/mutations/experiment_mutations.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/mutations/export_events_mutations.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/mutations/project_mutations.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/mutations/span_annotations_mutations.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/mutations/trace_annotations_mutations.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/mutations/user_mutations.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/openapi/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/openapi/main.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/openapi/schema.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/queries.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/routers/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/routers/utils.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/routers/v1/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/routers/v1/datasets.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/routers/v1/evaluations.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/routers/v1/experiment_evaluations.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/routers/v1/experiment_runs.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/routers/v1/experiments.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/routers/v1/pydantic_compat.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/routers/v1/spans.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/routers/v1/traces.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/routers/v1/utils.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/schema.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/Annotation.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/AnnotationSummary.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/AnnotatorKind.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/ApiKey.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/Cluster.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/CreateDatasetPayload.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/DataQualityMetric.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/Dataset.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/DatasetExample.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/DatasetExampleRevision.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/DatasetValues.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/DatasetVersion.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/Dimension.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/DimensionDataType.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/DimensionShape.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/DimensionType.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/DimensionWithValue.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/DocumentEvaluationSummary.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/DocumentRetrievalMetrics.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/EmbeddingDimension.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/EmbeddingMetadata.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/Evaluation.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/EvaluationSummary.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/Event.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/EventMetadata.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/ExampleRevisionInterface.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/Experiment.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/ExperimentAnnotationSummary.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/ExperimentComparison.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/ExperimentRunAnnotation.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/ExportedFile.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/Functionality.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/Inferences.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/InferencesRole.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/LabelFraction.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/MimeType.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/Model.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/NumericRange.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/PerformanceMetric.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/Project.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/PromptResponse.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/Retrieval.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/Segments.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/SortDir.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/Span.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/SpanAnnotation.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/SystemApiKey.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/TimeSeries.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/Trace.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/TraceAnnotation.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/UMAPPoints.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/User.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/UserApiKey.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/UserRole.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/ValidationResult.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/VectorDriftMetricEnum.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/node.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/types/pagination.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/utils.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/dml_event.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/dml_event_handler.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/grpc_server.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/main.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/openapi/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/prometheus.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/.vite/manifest.json +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/apple-touch-icon-114x114.png +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/apple-touch-icon-120x120.png +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/apple-touch-icon-144x144.png +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/apple-touch-icon-152x152.png +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/apple-touch-icon-180x180.png +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/apple-touch-icon-72x72.png +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/apple-touch-icon-76x76.png +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/apple-touch-icon.png +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/assets/components-CkSg5zK4.js +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/assets/index-DTecsU5w.js +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/assets/pages-C6emDFIO.js +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/assets/vendor-DsnEJuEV.js +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/assets/vendor-DxkFTwjz.css +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/assets/vendor-arizeai-DtynTLNi.js +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/assets/vendor-codemirror-C5to5cK4.js +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/assets/vendor-recharts-reihe2SJ.js +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/assets/vendor-three-DwGkEfCM.js +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/favicon.ico +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/static/modernizr.js +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/telemetry.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/templates/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/templates/index.html +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/thread_server.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/types.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/services.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/session/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/session/data_extractor.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/session/evaluation.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/session/session.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/settings.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/attributes.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/dsl/README.md +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/dsl/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/dsl/filter.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/dsl/helpers.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/dsl/query.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/errors.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/evaluation_conventions.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/exporter.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/fixtures.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/langchain/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/langchain/instrumentor.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/llama_index/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/llama_index/callback.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/openai/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/openai/instrumentor.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/otel.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/projects.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/schemas.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/span_evaluations.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/span_json_decoder.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/span_json_encoder.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/trace_dataset.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/utils.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/v1/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/v1/evaluation_pb2.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/trace/v1/evaluation_pb2.pyi +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/utilities/__init__.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/utilities/client.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/utilities/deprecation.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/utilities/error_handling.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/utilities/json.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/utilities/logging.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/utilities/project.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/utilities/re.py +0 -0
- {arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/utilities/span_store.py +0 -0
|
@@ -17,6 +17,7 @@ from phoenix.server.api.dataloaders import (
|
|
|
17
17
|
DocumentRetrievalMetricsDataLoader,
|
|
18
18
|
ExperimentAnnotationSummaryDataLoader,
|
|
19
19
|
ExperimentErrorRatesDataLoader,
|
|
20
|
+
ExperimentRunAnnotations,
|
|
20
21
|
ExperimentRunCountsDataLoader,
|
|
21
22
|
ExperimentSequenceNumberDataLoader,
|
|
22
23
|
LatencyMsQuantileDataLoader,
|
|
@@ -45,6 +46,7 @@ class DataLoaders:
|
|
|
45
46
|
annotation_summaries: AnnotationSummaryDataLoader
|
|
46
47
|
experiment_annotation_summaries: ExperimentAnnotationSummaryDataLoader
|
|
47
48
|
experiment_error_rates: ExperimentErrorRatesDataLoader
|
|
49
|
+
experiment_run_annotations: ExperimentRunAnnotations
|
|
48
50
|
experiment_run_counts: ExperimentRunCountsDataLoader
|
|
49
51
|
experiment_sequence_number: ExperimentSequenceNumberDataLoader
|
|
50
52
|
latency_ms_quantile: LatencyMsQuantileDataLoader
|
{arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/__init__.py
RENAMED
|
@@ -12,6 +12,7 @@ from .document_evaluations import DocumentEvaluationsDataLoader
|
|
|
12
12
|
from .document_retrieval_metrics import DocumentRetrievalMetricsDataLoader
|
|
13
13
|
from .experiment_annotation_summaries import ExperimentAnnotationSummaryDataLoader
|
|
14
14
|
from .experiment_error_rates import ExperimentErrorRatesDataLoader
|
|
15
|
+
from .experiment_run_annotations import ExperimentRunAnnotations
|
|
15
16
|
from .experiment_run_counts import ExperimentRunCountsDataLoader
|
|
16
17
|
from .experiment_sequence_number import ExperimentSequenceNumberDataLoader
|
|
17
18
|
from .latency_ms_quantile import LatencyMsQuantileCache, LatencyMsQuantileDataLoader
|
|
@@ -36,6 +37,7 @@ __all__ = [
|
|
|
36
37
|
"AnnotationSummaryDataLoader",
|
|
37
38
|
"ExperimentAnnotationSummaryDataLoader",
|
|
38
39
|
"ExperimentErrorRatesDataLoader",
|
|
40
|
+
"ExperimentRunAnnotations",
|
|
39
41
|
"ExperimentRunCountsDataLoader",
|
|
40
42
|
"ExperimentSequenceNumberDataLoader",
|
|
41
43
|
"LatencyMsQuantileDataLoader",
|
|
@@ -5,7 +5,8 @@ from typing import (
|
|
|
5
5
|
Union,
|
|
6
6
|
)
|
|
7
7
|
|
|
8
|
-
from sqlalchemy import
|
|
8
|
+
from sqlalchemy import and_, case, func, null, or_, select
|
|
9
|
+
from sqlalchemy.sql.expression import literal
|
|
9
10
|
from strawberry.dataloader import DataLoader
|
|
10
11
|
from typing_extensions import TypeAlias
|
|
11
12
|
|
|
@@ -22,40 +23,76 @@ Result: TypeAlias = DatasetExampleRevision
|
|
|
22
23
|
|
|
23
24
|
class DatasetExampleRevisionsDataLoader(DataLoader[Key, Result]):
|
|
24
25
|
def __init__(self, db: DbSessionFactory) -> None:
|
|
25
|
-
super().__init__(
|
|
26
|
+
super().__init__(
|
|
27
|
+
load_fn=self._load_fn,
|
|
28
|
+
max_batch_size=200, # needed to prevent the size of the query from getting too large
|
|
29
|
+
)
|
|
26
30
|
self._db = db
|
|
27
31
|
|
|
28
32
|
async def _load_fn(self, keys: List[Key]) -> List[Union[Result, NotFound]]:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
example_and_version_ids = tuple(
|
|
34
|
+
set(
|
|
35
|
+
(example_id, version_id)
|
|
36
|
+
for example_id, version_id in keys
|
|
37
|
+
if version_id is not None
|
|
38
|
+
)
|
|
39
|
+
)
|
|
40
|
+
versionless_example_ids = tuple(
|
|
41
|
+
set(example_id for example_id, version_id in keys if version_id is None)
|
|
42
|
+
)
|
|
43
|
+
resolved_example_and_version_ids = (
|
|
44
|
+
(
|
|
33
45
|
select(
|
|
34
|
-
|
|
35
|
-
|
|
46
|
+
models.DatasetExample.id.label("example_id"),
|
|
47
|
+
models.DatasetVersion.id.label("version_id"),
|
|
48
|
+
)
|
|
49
|
+
.select_from(models.DatasetExample)
|
|
50
|
+
.join(
|
|
51
|
+
models.DatasetVersion,
|
|
52
|
+
onclause=literal(True), # cross join
|
|
53
|
+
)
|
|
54
|
+
.where(
|
|
55
|
+
or_(
|
|
56
|
+
*(
|
|
57
|
+
and_(
|
|
58
|
+
models.DatasetExample.id == example_id,
|
|
59
|
+
models.DatasetVersion.id == version_id,
|
|
60
|
+
)
|
|
61
|
+
for example_id, version_id in example_and_version_ids
|
|
62
|
+
)
|
|
63
|
+
)
|
|
36
64
|
)
|
|
37
|
-
for example_id, version_id in keys
|
|
38
65
|
)
|
|
39
|
-
|
|
66
|
+
.union(
|
|
67
|
+
select(
|
|
68
|
+
models.DatasetExample.id.label("example_id"), null().label("version_id")
|
|
69
|
+
).where(models.DatasetExample.id.in_(versionless_example_ids))
|
|
70
|
+
)
|
|
71
|
+
.subquery()
|
|
72
|
+
)
|
|
40
73
|
revision_ids = (
|
|
41
74
|
select(
|
|
42
|
-
|
|
43
|
-
|
|
75
|
+
resolved_example_and_version_ids.c.example_id,
|
|
76
|
+
resolved_example_and_version_ids.c.version_id,
|
|
44
77
|
func.max(models.DatasetExampleRevision.id).label("revision_id"),
|
|
45
78
|
)
|
|
46
|
-
.select_from(
|
|
79
|
+
.select_from(resolved_example_and_version_ids)
|
|
47
80
|
.join(
|
|
48
81
|
models.DatasetExampleRevision,
|
|
49
|
-
onclause=
|
|
82
|
+
onclause=resolved_example_and_version_ids.c.example_id
|
|
50
83
|
== models.DatasetExampleRevision.dataset_example_id,
|
|
51
84
|
)
|
|
52
85
|
.where(
|
|
53
86
|
or_(
|
|
54
|
-
|
|
55
|
-
models.DatasetExampleRevision.dataset_version_id
|
|
87
|
+
resolved_example_and_version_ids.c.version_id.is_(None),
|
|
88
|
+
models.DatasetExampleRevision.dataset_version_id
|
|
89
|
+
<= resolved_example_and_version_ids.c.version_id,
|
|
56
90
|
)
|
|
57
91
|
)
|
|
58
|
-
.group_by(
|
|
92
|
+
.group_by(
|
|
93
|
+
resolved_example_and_version_ids.c.example_id,
|
|
94
|
+
resolved_example_and_version_ids.c.version_id,
|
|
95
|
+
)
|
|
59
96
|
).subquery()
|
|
60
97
|
query = (
|
|
61
98
|
select(
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
from collections import defaultdict
|
|
2
|
+
from typing import (
|
|
3
|
+
DefaultDict,
|
|
4
|
+
List,
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
from sqlalchemy import select
|
|
8
|
+
from strawberry.dataloader import DataLoader
|
|
9
|
+
from typing_extensions import TypeAlias
|
|
10
|
+
|
|
11
|
+
from phoenix.db.models import ExperimentRunAnnotation as OrmExperimentRunAnnotation
|
|
12
|
+
from phoenix.server.types import DbSessionFactory
|
|
13
|
+
|
|
14
|
+
ExperimentRunID: TypeAlias = int
|
|
15
|
+
Key: TypeAlias = ExperimentRunID
|
|
16
|
+
Result: TypeAlias = List[OrmExperimentRunAnnotation]
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class ExperimentRunAnnotations(DataLoader[Key, Result]):
|
|
20
|
+
def __init__(
|
|
21
|
+
self,
|
|
22
|
+
db: DbSessionFactory,
|
|
23
|
+
) -> None:
|
|
24
|
+
super().__init__(load_fn=self._load_fn)
|
|
25
|
+
self._db = db
|
|
26
|
+
|
|
27
|
+
async def _load_fn(self, keys: List[Key]) -> List[Result]:
|
|
28
|
+
run_ids = tuple(set(keys))
|
|
29
|
+
annotations: DefaultDict[Key, Result] = defaultdict(list)
|
|
30
|
+
async with self._db() as session:
|
|
31
|
+
async for run_id, annotation in await session.stream(
|
|
32
|
+
select(
|
|
33
|
+
OrmExperimentRunAnnotation.experiment_run_id, OrmExperimentRunAnnotation
|
|
34
|
+
).where(OrmExperimentRunAnnotation.experiment_run_id.in_(run_ids))
|
|
35
|
+
):
|
|
36
|
+
annotations[run_id].append(annotation)
|
|
37
|
+
return [
|
|
38
|
+
sorted(annotations[run_id], key=lambda annotation: annotation.name, reverse=True)
|
|
39
|
+
for run_id in run_ids
|
|
40
|
+
]
|
|
@@ -2,7 +2,6 @@ from datetime import datetime
|
|
|
2
2
|
from typing import Optional
|
|
3
3
|
|
|
4
4
|
import strawberry
|
|
5
|
-
from sqlalchemy import select
|
|
6
5
|
from strawberry import UNSET
|
|
7
6
|
from strawberry.relay import Connection, GlobalID, Node, NodeID
|
|
8
7
|
from strawberry.scalars import JSON
|
|
@@ -48,14 +47,7 @@ class ExperimentRun(Node):
|
|
|
48
47
|
before=before if isinstance(before, CursorString) else None,
|
|
49
48
|
)
|
|
50
49
|
run_id = self.id_attr
|
|
51
|
-
|
|
52
|
-
annotations = (
|
|
53
|
-
await session.scalars(
|
|
54
|
-
select(models.ExperimentRunAnnotation)
|
|
55
|
-
.where(models.ExperimentRunAnnotation.experiment_run_id == run_id)
|
|
56
|
-
.order_by(models.ExperimentRunAnnotation.name.desc())
|
|
57
|
-
)
|
|
58
|
-
).all()
|
|
50
|
+
annotations = await info.context.data_loaders.experiment_run_annotations.load(run_id)
|
|
59
51
|
return connection_from_list(
|
|
60
52
|
[to_gql_experiment_run_annotation(annotation) for annotation in annotations], args
|
|
61
53
|
)
|
|
@@ -66,6 +66,7 @@ from phoenix.server.api.dataloaders import (
|
|
|
66
66
|
DocumentRetrievalMetricsDataLoader,
|
|
67
67
|
ExperimentAnnotationSummaryDataLoader,
|
|
68
68
|
ExperimentErrorRatesDataLoader,
|
|
69
|
+
ExperimentRunAnnotations,
|
|
69
70
|
ExperimentRunCountsDataLoader,
|
|
70
71
|
ExperimentSequenceNumberDataLoader,
|
|
71
72
|
LatencyMsQuantileDataLoader,
|
|
@@ -446,6 +447,7 @@ def create_graphql_router(
|
|
|
446
447
|
),
|
|
447
448
|
experiment_annotation_summaries=ExperimentAnnotationSummaryDataLoader(db),
|
|
448
449
|
experiment_error_rates=ExperimentErrorRatesDataLoader(db),
|
|
450
|
+
experiment_run_annotations=ExperimentRunAnnotations(db),
|
|
449
451
|
experiment_run_counts=ExperimentRunCountsDataLoader(db),
|
|
450
452
|
experiment_sequence_number=ExperimentSequenceNumberDataLoader(db),
|
|
451
453
|
latency_ms_quantile=LatencyMsQuantileDataLoader(
|
|
@@ -22,7 +22,6 @@ from typing import (
|
|
|
22
22
|
cast,
|
|
23
23
|
)
|
|
24
24
|
from urllib.parse import quote, urljoin
|
|
25
|
-
from warnings import warn
|
|
26
25
|
|
|
27
26
|
import httpx
|
|
28
27
|
import pandas as pd
|
|
@@ -152,21 +151,37 @@ class Client(TraceDataExtractor):
|
|
|
152
151
|
"stop_time is deprecated. Use end_time instead.",
|
|
153
152
|
)
|
|
154
153
|
end_time = end_time or stop_time
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
154
|
+
try:
|
|
155
|
+
response = self._client.post(
|
|
156
|
+
url=urljoin(self._base_url, "v1/spans"),
|
|
157
|
+
params={
|
|
158
|
+
"project_name": project_name,
|
|
159
|
+
"project-name": project_name, # for backward-compatibility
|
|
160
|
+
},
|
|
161
|
+
json={
|
|
162
|
+
"queries": [q.to_dict() for q in queries],
|
|
163
|
+
"start_time": _to_iso_format(normalize_datetime(start_time)),
|
|
164
|
+
"end_time": _to_iso_format(normalize_datetime(end_time)),
|
|
165
|
+
"limit": limit,
|
|
166
|
+
"root_spans_only": root_spans_only,
|
|
167
|
+
},
|
|
168
|
+
timeout=timeout,
|
|
169
|
+
)
|
|
170
|
+
except httpx.TimeoutException as error:
|
|
171
|
+
error_message = (
|
|
172
|
+
(
|
|
173
|
+
f"The request timed out after {timeout} seconds. The timeout can be increased "
|
|
174
|
+
"by passing a larger value to the `timeout` parameter "
|
|
175
|
+
"and can be disabled altogether by passing `None`."
|
|
176
|
+
)
|
|
177
|
+
if timeout is not None
|
|
178
|
+
else (
|
|
179
|
+
"The request timed out. The timeout can be adjusted by "
|
|
180
|
+
"passing a number of seconds to the `timeout` parameter "
|
|
181
|
+
"and can be disabled altogether by passing `None`."
|
|
182
|
+
)
|
|
183
|
+
)
|
|
184
|
+
raise TimeoutError(error_message) from error
|
|
170
185
|
if response.status_code == 404:
|
|
171
186
|
logger.info("No spans found.")
|
|
172
187
|
return None
|
|
@@ -503,7 +518,6 @@ class Client(TraceDataExtractor):
|
|
|
503
518
|
inputs: Iterable[Mapping[str, Any]] = (),
|
|
504
519
|
outputs: Iterable[Mapping[str, Any]] = (),
|
|
505
520
|
metadata: Iterable[Mapping[str, Any]] = (),
|
|
506
|
-
dataset_description: Optional[str] = None,
|
|
507
521
|
) -> Dataset:
|
|
508
522
|
"""
|
|
509
523
|
Append examples to dataset on the Phoenix server. If `dataframe` or
|
|
@@ -537,11 +551,6 @@ class Client(TraceDataExtractor):
|
|
|
537
551
|
Returns:
|
|
538
552
|
A Dataset object with its examples.
|
|
539
553
|
"""
|
|
540
|
-
if dataset_description is not None:
|
|
541
|
-
warn(
|
|
542
|
-
"The `dataset_description` parameter has been deprecated "
|
|
543
|
-
"and will be removed in a future release."
|
|
544
|
-
)
|
|
545
554
|
if dataframe is not None or csv_file_path is not None:
|
|
546
555
|
if dataframe is not None and csv_file_path is not None:
|
|
547
556
|
raise ValueError(
|
|
@@ -838,3 +847,6 @@ def _is_all_dict(seq: Sequence[Any]) -> bool:
|
|
|
838
847
|
|
|
839
848
|
|
|
840
849
|
class DatasetUploadError(Exception): ...
|
|
850
|
+
|
|
851
|
+
|
|
852
|
+
class TimeoutError(Exception): ...
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "4.30.2"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "4.30.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/insertion/document_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
|
{arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/db/migrations/future_versions/README.md
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
|
{arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/experiments/evaluators/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/experiments/evaluators/code_evaluators.py
RENAMED
|
File without changes
|
{arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/experiments/evaluators/llm_evaluators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/cache/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/project_by_name.py
RENAMED
|
File without changes
|
{arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/record_counts.py
RENAMED
|
File without changes
|
{arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/span_annotations.py
RENAMED
|
File without changes
|
|
File without changes
|
{arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/span_descendants.py
RENAMED
|
File without changes
|
{arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/span_projects.py
RENAMED
|
File without changes
|
{arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/token_counts.py
RENAMED
|
File without changes
|
{arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/dataloaders/trace_row_ids.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/helpers/dataset_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/ClusterInput.py
RENAMED
|
File without changes
|
{arize_phoenix-4.30.0 → arize_phoenix-4.30.2}/src/phoenix/server/api/input_types/Coordinates.py
RENAMED
|
File without changes
|
|
File without changes
|