arize-phoenix 4.14.1__tar.gz → 4.15.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of arize-phoenix might be problematic. Click here for more details.
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/PKG-INFO +4 -3
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/pyproject.toml +15 -7
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/bulk_inserter.py +2 -3
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/engines.py +2 -1
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/experiments/functions.py +3 -2
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/context.py +7 -9
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/__init__.py +2 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/average_experiment_run_latency.py +3 -3
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/dataset_example_revisions.py +2 -4
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/dataset_example_spans.py +2 -4
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/document_evaluation_summaries.py +2 -4
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/document_evaluations.py +2 -4
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/document_retrieval_metrics.py +2 -4
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/evaluation_summaries.py +2 -4
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/experiment_annotation_summaries.py +2 -4
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/experiment_error_rates.py +2 -4
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/experiment_run_counts.py +2 -4
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/experiment_sequence_number.py +2 -4
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/latency_ms_quantile.py +2 -3
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/min_start_or_max_end_times.py +2 -4
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/project_by_name.py +3 -3
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/record_counts.py +2 -4
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/span_annotations.py +2 -4
- arize_phoenix-4.15.0/src/phoenix/server/api/dataloaders/span_dataset_examples.py +36 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/span_descendants.py +2 -4
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/span_evaluations.py +2 -4
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/span_projects.py +3 -3
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/token_counts.py +2 -4
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/trace_evaluations.py +2 -4
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/trace_row_ids.py +2 -4
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/mutations/span_annotations_mutations.py +8 -3
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/mutations/trace_annotations_mutations.py +8 -3
- arize_phoenix-4.15.0/src/phoenix/server/api/openapi/main.py +22 -0
- arize_phoenix-4.15.0/src/phoenix/server/api/openapi/schema.py +16 -0
- arize_phoenix-4.15.0/src/phoenix/server/api/routers/v1/__init__.py +42 -0
- arize_phoenix-4.15.0/src/phoenix/server/api/routers/v1/datasets.py +1029 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/routers/v1/evaluations.py +75 -70
- arize_phoenix-4.15.0/src/phoenix/server/api/routers/v1/experiment_evaluations.py +113 -0
- arize_phoenix-4.15.0/src/phoenix/server/api/routers/v1/experiment_runs.py +160 -0
- arize_phoenix-4.15.0/src/phoenix/server/api/routers/v1/experiments.py +252 -0
- arize_phoenix-4.15.0/src/phoenix/server/api/routers/v1/pydantic_compat.py +78 -0
- arize_phoenix-4.15.0/src/phoenix/server/api/routers/v1/spans.py +246 -0
- arize_phoenix-4.15.0/src/phoenix/server/api/routers/v1/traces.py +215 -0
- arize_phoenix-4.15.0/src/phoenix/server/api/routers/v1/utils.py +95 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/Span.py +5 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/utils.py +4 -4
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/app.py +170 -192
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/grpc_server.py +2 -2
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/main.py +5 -9
- arize_phoenix-4.15.0/src/phoenix/server/static/.vite/manifest.json +78 -0
- arize_phoenix-4.14.1/src/phoenix/server/static/assets/components-DeS0YEmv.js → arize_phoenix-4.15.0/src/phoenix/server/static/assets/components-kGgeFkHp.js +150 -110
- arize_phoenix-4.14.1/src/phoenix/server/static/assets/index-CQgXRwU0.js → arize_phoenix-4.15.0/src/phoenix/server/static/assets/index-BctFO6S7.js +2 -2
- arize_phoenix-4.14.1/src/phoenix/server/static/assets/pages-hdjlFZhO.js → arize_phoenix-4.15.0/src/phoenix/server/static/assets/pages-DabDCmVd.js +372 -272
- arize_phoenix-4.14.1/src/phoenix/server/static/assets/vendor-DPvSDRn3.js → arize_phoenix-4.15.0/src/phoenix/server/static/assets/vendor-CP0b0YG0.js +2 -2
- arize_phoenix-4.14.1/src/phoenix/server/static/assets/vendor-arizeai-CkvPT67c.js → arize_phoenix-4.15.0/src/phoenix/server/static/assets/vendor-arizeai-B5Hti8OB.js +27 -27
- arize_phoenix-4.15.0/src/phoenix/server/static/assets/vendor-codemirror-DtdPDzrv.js +15 -0
- arize_phoenix-4.14.1/src/phoenix/server/static/assets/vendor-recharts-5jlNaZuF.js → arize_phoenix-4.15.0/src/phoenix/server/static/assets/vendor-recharts-A0DA1O99.js +1 -1
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/thread_server.py +2 -2
- arize_phoenix-4.15.0/src/phoenix/server/types.py +18 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/session/client.py +5 -3
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/session/session.py +2 -2
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/fixtures.py +17 -23
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/utils.py +23 -0
- arize_phoenix-4.15.0/src/phoenix/utilities/client.py +116 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/utilities/project.py +1 -1
- arize_phoenix-4.15.0/src/phoenix/version.py +1 -0
- arize_phoenix-4.14.1/src/phoenix/server/api/openapi/main.py +0 -6
- arize_phoenix-4.14.1/src/phoenix/server/api/openapi/schema.py +0 -16
- arize_phoenix-4.14.1/src/phoenix/server/api/routers/v1/__init__.py +0 -89
- arize_phoenix-4.14.1/src/phoenix/server/api/routers/v1/dataset_examples.py +0 -178
- arize_phoenix-4.14.1/src/phoenix/server/api/routers/v1/datasets.py +0 -1023
- arize_phoenix-4.14.1/src/phoenix/server/api/routers/v1/experiment_evaluations.py +0 -136
- arize_phoenix-4.14.1/src/phoenix/server/api/routers/v1/experiment_runs.py +0 -217
- arize_phoenix-4.14.1/src/phoenix/server/api/routers/v1/experiments.py +0 -301
- arize_phoenix-4.14.1/src/phoenix/server/api/routers/v1/spans.py +0 -275
- arize_phoenix-4.14.1/src/phoenix/server/api/routers/v1/traces.py +0 -228
- arize_phoenix-4.14.1/src/phoenix/server/openapi/docs.py +0 -221
- arize_phoenix-4.14.1/src/phoenix/server/static/.vite/manifest.json +0 -78
- arize_phoenix-4.14.1/src/phoenix/server/static/assets/vendor-codemirror-Cqwpwlua.js +0 -12
- arize_phoenix-4.14.1/src/phoenix/version.py +0 -1
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/.gitignore +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/IP_NOTICE +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/LICENSE +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/README.md +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/examples/manually-instrumented-chatbot/chat-service/chat/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/examples/manually-instrumented-chatbot/chat-service/chat/app.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/examples/manually-instrumented-chatbot/chat-service/chat/types.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/examples/manually-instrumented-chatbot/frontend/Dockerfile +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/examples/manually-instrumented-chatbot/frontend/Makefile +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/examples/manually-instrumented-chatbot/frontend/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/examples/manually-instrumented-chatbot/frontend/pyproject.toml +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/examples/manually-instrumented-chatbot/frontend/requirements.txt +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/examples/manually-instrumented-chatbot/frontend/schema.json +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/config.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/core/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/core/embedding_dimension.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/core/model.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/core/model_schema.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/core/model_schema_adapter.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/datetime_utils.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/README.md +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/alembic.ini +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/helpers.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/insertion/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/insertion/dataset.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/insertion/evaluation.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/insertion/helpers.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/insertion/span.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/migrate.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/migrations/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/migrations/env.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/migrations/script.py.mako +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/migrations/types.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/migrations/versions/10460e46d750_datasets.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/migrations/versions/cf03bd6bae1d_init.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/db/models.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/exceptions.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/experiments/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/experiments/evaluators/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/experiments/evaluators/base.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/experiments/evaluators/code_evaluators.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/experiments/evaluators/llm_evaluators.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/experiments/evaluators/utils.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/experiments/tracing.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/experiments/types.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/experiments/utils.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/inferences/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/inferences/errors.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/inferences/fixtures.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/inferences/inferences.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/inferences/schema.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/inferences/validation.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/metrics/README.md +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/metrics/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/metrics/binning.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/metrics/metrics.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/metrics/mixins.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/metrics/retrieval_metrics.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/metrics/timeseries.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/metrics/wrappers.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/pointcloud/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/pointcloud/clustering.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/pointcloud/pointcloud.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/pointcloud/projectors.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/pointcloud/umap_parameters.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/py.typed +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/cache/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/cache/two_tier_cache.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/helpers/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/helpers/dataset_helpers.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/AddExamplesToDatasetInput.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/AddSpansToDatasetInput.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/ClearProjectInput.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/ClusterInput.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/Coordinates.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/CreateDatasetInput.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/CreateSpanAnnotationInput.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/CreateTraceAnnotationInput.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/DataQualityMetricInput.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/DatasetExampleInput.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/DatasetSort.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/DatasetVersionSort.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/DeleteAnnotationsInput.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/DeleteDatasetExamplesInput.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/DeleteDatasetInput.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/DeleteExperimentsInput.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/DimensionFilter.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/DimensionInput.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/Granularity.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/PatchAnnotationInput.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/PatchDatasetExamplesInput.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/PatchDatasetInput.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/PerformanceMetricInput.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/SpanSort.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/TimeRange.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/input_types/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/interceptor.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/mutations/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/mutations/auth.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/mutations/dataset_mutations.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/mutations/experiment_mutations.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/mutations/export_events_mutations.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/mutations/project_mutations.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/openapi/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/queries.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/routers/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/routers/utils.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/schema.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/Annotation.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/AnnotatorKind.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/Cluster.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/CreateDatasetPayload.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/DataQualityMetric.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/Dataset.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/DatasetExample.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/DatasetExampleRevision.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/DatasetValues.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/DatasetVersion.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/Dimension.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/DimensionDataType.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/DimensionShape.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/DimensionType.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/DimensionWithValue.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/DocumentEvaluationSummary.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/DocumentRetrievalMetrics.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/EmbeddingDimension.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/EmbeddingMetadata.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/Evaluation.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/EvaluationSummary.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/Event.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/EventMetadata.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/ExampleRevisionInterface.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/Experiment.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/ExperimentAnnotationSummary.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/ExperimentComparison.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/ExperimentRun.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/ExperimentRunAnnotation.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/ExportedFile.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/Functionality.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/Inferences.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/InferencesRole.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/MimeType.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/Model.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/NumericRange.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/PerformanceMetric.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/Project.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/PromptResponse.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/Retrieval.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/Segments.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/SortDir.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/SpanAnnotation.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/TimeSeries.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/Trace.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/TraceAnnotation.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/UMAPPoints.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/ValidationResult.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/VectorDriftMetricEnum.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/node.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/types/pagination.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/openapi/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/prometheus.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/static/apple-touch-icon-114x114.png +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/static/apple-touch-icon-120x120.png +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/static/apple-touch-icon-144x144.png +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/static/apple-touch-icon-152x152.png +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/static/apple-touch-icon-180x180.png +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/static/apple-touch-icon-72x72.png +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/static/apple-touch-icon-76x76.png +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/static/apple-touch-icon.png +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/static/assets/vendor-DxkFTwjz.css +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/static/assets/vendor-three-DwGkEfCM.js +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/static/favicon.ico +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/static/modernizr.js +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/telemetry.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/templates/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/templates/index.html +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/services.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/session/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/session/data_extractor.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/session/evaluation.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/settings.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/attributes.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/dsl/README.md +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/dsl/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/dsl/filter.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/dsl/helpers.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/dsl/query.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/errors.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/evaluation_conventions.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/exporter.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/langchain/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/langchain/instrumentor.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/llama_index/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/llama_index/callback.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/openai/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/openai/instrumentor.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/otel.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/projects.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/schemas.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/span_evaluations.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/span_json_decoder.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/span_json_encoder.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/trace_dataset.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/v1/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/v1/evaluation_pb2.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/trace/v1/evaluation_pb2.pyi +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/utilities/__init__.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/utilities/deprecation.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/utilities/error_handling.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/utilities/json.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/utilities/logging.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/utilities/re.py +0 -0
- {arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/utilities/span_store.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: arize-phoenix
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.15.0
|
|
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
|
|
@@ -22,6 +22,7 @@ Requires-Dist: aiosqlite
|
|
|
22
22
|
Requires-Dist: alembic<2,>=1.3.0
|
|
23
23
|
Requires-Dist: arize-phoenix-evals>=0.13.1
|
|
24
24
|
Requires-Dist: cachetools
|
|
25
|
+
Requires-Dist: fastapi
|
|
25
26
|
Requires-Dist: grpcio
|
|
26
27
|
Requires-Dist: hdbscan>=0.8.33
|
|
27
28
|
Requires-Dist: httpx
|
|
@@ -40,8 +41,8 @@ Requires-Dist: pandas>=1.0
|
|
|
40
41
|
Requires-Dist: protobuf<6.0,>=3.20
|
|
41
42
|
Requires-Dist: psutil
|
|
42
43
|
Requires-Dist: pyarrow
|
|
44
|
+
Requires-Dist: pydantic!=2.0.*,<3,>=1.0
|
|
43
45
|
Requires-Dist: python-multipart
|
|
44
|
-
Requires-Dist: pyyaml
|
|
45
46
|
Requires-Dist: scikit-learn
|
|
46
47
|
Requires-Dist: scipy
|
|
47
48
|
Requires-Dist: sqlalchemy[asyncio]<3,>=2.0.4
|
|
@@ -56,9 +57,9 @@ Requires-Dist: uvicorn
|
|
|
56
57
|
Requires-Dist: wrapt
|
|
57
58
|
Provides-Extra: container
|
|
58
59
|
Requires-Dist: opentelemetry-exporter-otlp; extra == 'container'
|
|
60
|
+
Requires-Dist: opentelemetry-instrumentation-fastapi; extra == 'container'
|
|
59
61
|
Requires-Dist: opentelemetry-instrumentation-grpc; extra == 'container'
|
|
60
62
|
Requires-Dist: opentelemetry-instrumentation-sqlalchemy; extra == 'container'
|
|
61
|
-
Requires-Dist: opentelemetry-instrumentation-starlette; extra == 'container'
|
|
62
63
|
Requires-Dist: opentelemetry-proto>=1.12.0; extra == 'container'
|
|
63
64
|
Requires-Dist: opentelemetry-sdk; extra == 'container'
|
|
64
65
|
Requires-Dist: opentelemetry-semantic-conventions; extra == 'container'
|
|
@@ -59,7 +59,8 @@ dependencies = [
|
|
|
59
59
|
"cachetools",
|
|
60
60
|
"python-multipart", # see https://www.starlette.io/#dependencies
|
|
61
61
|
"arize-phoenix-evals>=0.13.1",
|
|
62
|
-
"
|
|
62
|
+
"fastapi",
|
|
63
|
+
"pydantic>=1.0,!=2.0.*,<3,", # exclude 2.0.* since it does not support the `json_encoders` configuration setting
|
|
63
64
|
]
|
|
64
65
|
dynamic = ["version"]
|
|
65
66
|
|
|
@@ -111,7 +112,7 @@ container = [
|
|
|
111
112
|
"opentelemetry-proto>=1.12.0",
|
|
112
113
|
"opentelemetry-exporter-otlp",
|
|
113
114
|
"opentelemetry-semantic-conventions",
|
|
114
|
-
"opentelemetry-instrumentation-
|
|
115
|
+
"opentelemetry-instrumentation-fastapi",
|
|
115
116
|
"opentelemetry-instrumentation-sqlalchemy",
|
|
116
117
|
"opentelemetry-instrumentation-grpc",
|
|
117
118
|
"py-grpc-prometheus",
|
|
@@ -161,8 +162,10 @@ dependencies = [
|
|
|
161
162
|
"protobuf==3.20", # version minimum (for tests)
|
|
162
163
|
"responses",
|
|
163
164
|
"tiktoken",
|
|
164
|
-
"typing-extensions==4.5.0; python_version
|
|
165
|
-
"typing-extensions==4.6.0; python_version
|
|
165
|
+
"typing-extensions==4.5.0; python_version=='3.8'",
|
|
166
|
+
"typing-extensions==4.6.0; python_version=='3.9'",
|
|
167
|
+
"pydantic==1.9.0; python_version<='3.9'", # minimum version of pydantic compatible with openai
|
|
168
|
+
"pydantic==2.8.2; python_version=='3.12'",
|
|
166
169
|
"httpx", # For OpenAI testing
|
|
167
170
|
"respx", # For OpenAI testing
|
|
168
171
|
"nest-asyncio", # for executor testing
|
|
@@ -190,12 +193,15 @@ dependencies = [
|
|
|
190
193
|
"opentelemetry-proto>=1.12.0",
|
|
191
194
|
"opentelemetry-exporter-otlp",
|
|
192
195
|
"opentelemetry-semantic-conventions",
|
|
193
|
-
"opentelemetry-instrumentation-
|
|
196
|
+
"opentelemetry-instrumentation-fastapi",
|
|
194
197
|
"opentelemetry-instrumentation-sqlalchemy",
|
|
195
198
|
"opentelemetry-instrumentation-grpc",
|
|
196
199
|
"py-grpc-prometheus",
|
|
197
200
|
"strawberry-graphql[opentelemetry]==0.236.0", # need to pin version because we're monkey-patching
|
|
198
201
|
"requests", # this is needed to type-check third-party packages
|
|
202
|
+
"pydantic==1.10.17; python_version=='3.8'", # lower minor versions of pydantic break strawberry mypy plugin
|
|
203
|
+
"pydantic==1.10.17; python_version=='3.9'", # lower minor versions of pydantic break strawberry mypy plugin
|
|
204
|
+
"pydantic==2.8.2; python_version=='3.12'",
|
|
199
205
|
]
|
|
200
206
|
|
|
201
207
|
[[tool.hatch.envs.type.matrix]]
|
|
@@ -310,11 +316,12 @@ build = 'strawberry export-schema phoenix.server.api.schema:schema > app/schema.
|
|
|
310
316
|
|
|
311
317
|
[tool.hatch.envs.openapi]
|
|
312
318
|
dependencies = [
|
|
313
|
-
"
|
|
319
|
+
"pydantic==2.8.2",
|
|
320
|
+
"fastapi==0.111.0",
|
|
314
321
|
]
|
|
315
322
|
|
|
316
323
|
[tool.hatch.envs.openapi.scripts]
|
|
317
|
-
build =
|
|
324
|
+
build = "python -m phoenix.server.api.openapi.main > schemas/openapi.json"
|
|
318
325
|
|
|
319
326
|
[tool.hatch.envs.proto]
|
|
320
327
|
detached = true
|
|
@@ -379,6 +386,7 @@ module = [
|
|
|
379
386
|
"sqlean",
|
|
380
387
|
"grpc.*",
|
|
381
388
|
"py_grpc_prometheus.*",
|
|
389
|
+
"orjson", # suppress fastapi internal type errors
|
|
382
390
|
]
|
|
383
391
|
ignore_missing_imports = true
|
|
384
392
|
|
|
@@ -7,7 +7,6 @@ from itertools import islice
|
|
|
7
7
|
from time import perf_counter
|
|
8
8
|
from typing import (
|
|
9
9
|
Any,
|
|
10
|
-
AsyncContextManager,
|
|
11
10
|
Awaitable,
|
|
12
11
|
Callable,
|
|
13
12
|
Iterable,
|
|
@@ -19,7 +18,6 @@ from typing import (
|
|
|
19
18
|
)
|
|
20
19
|
|
|
21
20
|
from cachetools import LRUCache
|
|
22
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
23
21
|
from typing_extensions import TypeAlias
|
|
24
22
|
|
|
25
23
|
import phoenix.trace.v1 as pb
|
|
@@ -31,6 +29,7 @@ from phoenix.db.insertion.evaluation import (
|
|
|
31
29
|
from phoenix.db.insertion.helpers import DataManipulation, DataManipulationEvent
|
|
32
30
|
from phoenix.db.insertion.span import SpanInsertionEvent, insert_span
|
|
33
31
|
from phoenix.server.api.dataloaders import CacheForDataLoaders
|
|
32
|
+
from phoenix.server.types import DbSessionFactory
|
|
34
33
|
from phoenix.trace.schemas import Span
|
|
35
34
|
|
|
36
35
|
logger = logging.getLogger(__name__)
|
|
@@ -46,7 +45,7 @@ class TransactionResult:
|
|
|
46
45
|
class BulkInserter:
|
|
47
46
|
def __init__(
|
|
48
47
|
self,
|
|
49
|
-
db:
|
|
48
|
+
db: DbSessionFactory,
|
|
50
49
|
*,
|
|
51
50
|
cache_for_dataloaders: Optional[CacheForDataLoaders] = None,
|
|
52
51
|
initial_batch_of_operations: Iterable[DataManipulation] = (),
|
|
@@ -8,7 +8,7 @@ from typing import Any
|
|
|
8
8
|
import aiosqlite
|
|
9
9
|
import numpy as np
|
|
10
10
|
import sqlean
|
|
11
|
-
from sqlalchemy import URL, event, make_url
|
|
11
|
+
from sqlalchemy import URL, StaticPool, event, make_url
|
|
12
12
|
from sqlalchemy.ext.asyncio import AsyncEngine, create_async_engine
|
|
13
13
|
from typing_extensions import assert_never
|
|
14
14
|
|
|
@@ -105,6 +105,7 @@ def aio_sqlite_engine(
|
|
|
105
105
|
echo=echo,
|
|
106
106
|
json_serializer=_dumps,
|
|
107
107
|
async_creator=async_creator,
|
|
108
|
+
poolclass=StaticPool,
|
|
108
109
|
)
|
|
109
110
|
event.listen(engine.sync_engine, "connect", set_sqlite_pragma)
|
|
110
111
|
if not migrate:
|
|
@@ -72,15 +72,16 @@ from phoenix.experiments.types import (
|
|
|
72
72
|
)
|
|
73
73
|
from phoenix.experiments.utils import get_dataset_experiments_url, get_experiment_url, get_func_name
|
|
74
74
|
from phoenix.trace.attributes import flatten
|
|
75
|
+
from phoenix.utilities.client import VersionedAsyncClient, VersionedClient
|
|
75
76
|
from phoenix.utilities.json import jsonify
|
|
76
77
|
|
|
77
78
|
|
|
78
79
|
def _phoenix_clients() -> Tuple[httpx.Client, httpx.AsyncClient]:
|
|
79
80
|
headers = get_env_client_headers()
|
|
80
|
-
return
|
|
81
|
+
return VersionedClient(
|
|
81
82
|
base_url=get_base_url(),
|
|
82
83
|
headers=headers,
|
|
83
|
-
),
|
|
84
|
+
), VersionedAsyncClient(
|
|
84
85
|
base_url=get_base_url(),
|
|
85
86
|
headers=headers,
|
|
86
87
|
)
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
from dataclasses import dataclass
|
|
2
2
|
from datetime import datetime
|
|
3
3
|
from pathlib import Path
|
|
4
|
-
from typing import
|
|
4
|
+
from typing import Callable, Optional
|
|
5
5
|
|
|
6
|
-
from
|
|
7
|
-
from starlette.requests import Request
|
|
8
|
-
from starlette.responses import Response
|
|
9
|
-
from starlette.websockets import WebSocket
|
|
6
|
+
from strawberry.fastapi import BaseContext
|
|
10
7
|
from typing_extensions import TypeAlias
|
|
11
8
|
|
|
12
9
|
from phoenix.core.model_schema import Model
|
|
@@ -28,6 +25,7 @@ from phoenix.server.api.dataloaders import (
|
|
|
28
25
|
ProjectByNameDataLoader,
|
|
29
26
|
RecordCountDataLoader,
|
|
30
27
|
SpanAnnotationsDataLoader,
|
|
28
|
+
SpanDatasetExamplesDataLoader,
|
|
31
29
|
SpanDescendantsDataLoader,
|
|
32
30
|
SpanEvaluationsDataLoader,
|
|
33
31
|
SpanProjectsDataLoader,
|
|
@@ -35,6 +33,7 @@ from phoenix.server.api.dataloaders import (
|
|
|
35
33
|
TraceEvaluationsDataLoader,
|
|
36
34
|
TraceRowIdsDataLoader,
|
|
37
35
|
)
|
|
36
|
+
from phoenix.server.types import DbSessionFactory
|
|
38
37
|
|
|
39
38
|
|
|
40
39
|
@dataclass
|
|
@@ -53,6 +52,7 @@ class DataLoaders:
|
|
|
53
52
|
latency_ms_quantile: LatencyMsQuantileDataLoader
|
|
54
53
|
min_start_or_max_end_times: MinStartOrMaxEndTimeDataLoader
|
|
55
54
|
record_counts: RecordCountDataLoader
|
|
55
|
+
span_dataset_examples: SpanDatasetExamplesDataLoader
|
|
56
56
|
span_descendants: SpanDescendantsDataLoader
|
|
57
57
|
span_evaluations: SpanEvaluationsDataLoader
|
|
58
58
|
span_projects: SpanProjectsDataLoader
|
|
@@ -67,10 +67,8 @@ ProjectRowId: TypeAlias = int
|
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
@dataclass
|
|
70
|
-
class Context:
|
|
71
|
-
|
|
72
|
-
response: Optional[Response]
|
|
73
|
-
db: Callable[[], AsyncContextManager[AsyncSession]]
|
|
70
|
+
class Context(BaseContext):
|
|
71
|
+
db: DbSessionFactory
|
|
74
72
|
data_loaders: DataLoaders
|
|
75
73
|
cache_for_dataloaders: Optional[CacheForDataLoaders]
|
|
76
74
|
model: Model
|
{arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/__init__.py
RENAMED
|
@@ -27,6 +27,7 @@ from .min_start_or_max_end_times import MinStartOrMaxEndTimeCache, MinStartOrMax
|
|
|
27
27
|
from .project_by_name import ProjectByNameDataLoader
|
|
28
28
|
from .record_counts import RecordCountCache, RecordCountDataLoader
|
|
29
29
|
from .span_annotations import SpanAnnotationsDataLoader
|
|
30
|
+
from .span_dataset_examples import SpanDatasetExamplesDataLoader
|
|
30
31
|
from .span_descendants import SpanDescendantsDataLoader
|
|
31
32
|
from .span_evaluations import SpanEvaluationsDataLoader
|
|
32
33
|
from .span_projects import SpanProjectsDataLoader
|
|
@@ -50,6 +51,7 @@ __all__ = [
|
|
|
50
51
|
"LatencyMsQuantileDataLoader",
|
|
51
52
|
"MinStartOrMaxEndTimeDataLoader",
|
|
52
53
|
"RecordCountDataLoader",
|
|
54
|
+
"SpanDatasetExamplesDataLoader",
|
|
53
55
|
"SpanDescendantsDataLoader",
|
|
54
56
|
"SpanEvaluationsDataLoader",
|
|
55
57
|
"SpanProjectsDataLoader",
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
from typing import
|
|
1
|
+
from typing import List, Optional
|
|
2
2
|
|
|
3
3
|
from sqlalchemy import func, select
|
|
4
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
5
4
|
from strawberry.dataloader import DataLoader
|
|
6
5
|
from typing_extensions import TypeAlias
|
|
7
6
|
|
|
8
7
|
from phoenix.db import models
|
|
8
|
+
from phoenix.server.types import DbSessionFactory
|
|
9
9
|
|
|
10
10
|
ExperimentID: TypeAlias = int
|
|
11
11
|
RunLatency: TypeAlias = Optional[float]
|
|
@@ -16,7 +16,7 @@ Result: TypeAlias = RunLatency
|
|
|
16
16
|
class AverageExperimentRunLatencyDataLoader(DataLoader[Key, Result]):
|
|
17
17
|
def __init__(
|
|
18
18
|
self,
|
|
19
|
-
db:
|
|
19
|
+
db: DbSessionFactory,
|
|
20
20
|
) -> None:
|
|
21
21
|
super().__init__(load_fn=self._load_fn)
|
|
22
22
|
self._db = db
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
from typing import (
|
|
2
|
-
AsyncContextManager,
|
|
3
|
-
Callable,
|
|
4
2
|
List,
|
|
5
3
|
Optional,
|
|
6
4
|
Tuple,
|
|
@@ -8,12 +6,12 @@ from typing import (
|
|
|
8
6
|
)
|
|
9
7
|
|
|
10
8
|
from sqlalchemy import Integer, case, func, literal, or_, select, union
|
|
11
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
12
9
|
from strawberry.dataloader import DataLoader
|
|
13
10
|
from typing_extensions import TypeAlias
|
|
14
11
|
|
|
15
12
|
from phoenix.db import models
|
|
16
13
|
from phoenix.server.api.types.DatasetExampleRevision import DatasetExampleRevision
|
|
14
|
+
from phoenix.server.types import DbSessionFactory
|
|
17
15
|
|
|
18
16
|
ExampleID: TypeAlias = int
|
|
19
17
|
VersionID: TypeAlias = Optional[int]
|
|
@@ -22,7 +20,7 @@ Result: TypeAlias = DatasetExampleRevision
|
|
|
22
20
|
|
|
23
21
|
|
|
24
22
|
class DatasetExampleRevisionsDataLoader(DataLoader[Key, Result]):
|
|
25
|
-
def __init__(self, db:
|
|
23
|
+
def __init__(self, db: DbSessionFactory) -> None:
|
|
26
24
|
super().__init__(load_fn=self._load_fn)
|
|
27
25
|
self._db = db
|
|
28
26
|
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
from typing import (
|
|
2
|
-
AsyncContextManager,
|
|
3
|
-
Callable,
|
|
4
2
|
List,
|
|
5
3
|
Optional,
|
|
6
4
|
)
|
|
7
5
|
|
|
8
6
|
from sqlalchemy import select
|
|
9
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
10
7
|
from sqlalchemy.orm import joinedload
|
|
11
8
|
from strawberry.dataloader import DataLoader
|
|
12
9
|
from typing_extensions import TypeAlias
|
|
13
10
|
|
|
14
11
|
from phoenix.db import models
|
|
12
|
+
from phoenix.server.types import DbSessionFactory
|
|
15
13
|
|
|
16
14
|
ExampleID: TypeAlias = int
|
|
17
15
|
Key: TypeAlias = ExampleID
|
|
@@ -19,7 +17,7 @@ Result: TypeAlias = Optional[models.Span]
|
|
|
19
17
|
|
|
20
18
|
|
|
21
19
|
class DatasetExampleSpansDataLoader(DataLoader[Key, Result]):
|
|
22
|
-
def __init__(self, db:
|
|
20
|
+
def __init__(self, db: DbSessionFactory) -> None:
|
|
23
21
|
super().__init__(load_fn=self._load_fn)
|
|
24
22
|
self._db = db
|
|
25
23
|
|
|
@@ -2,8 +2,6 @@ from collections import defaultdict
|
|
|
2
2
|
from datetime import datetime
|
|
3
3
|
from typing import (
|
|
4
4
|
Any,
|
|
5
|
-
AsyncContextManager,
|
|
6
|
-
Callable,
|
|
7
5
|
DefaultDict,
|
|
8
6
|
List,
|
|
9
7
|
Optional,
|
|
@@ -14,7 +12,6 @@ import numpy as np
|
|
|
14
12
|
from aioitertools.itertools import groupby
|
|
15
13
|
from cachetools import LFUCache, TTLCache
|
|
16
14
|
from sqlalchemy import Select, select
|
|
17
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
18
15
|
from strawberry.dataloader import AbstractCache, DataLoader
|
|
19
16
|
from typing_extensions import TypeAlias
|
|
20
17
|
|
|
@@ -24,6 +21,7 @@ from phoenix.metrics.retrieval_metrics import RetrievalMetrics
|
|
|
24
21
|
from phoenix.server.api.dataloaders.cache import TwoTierCache
|
|
25
22
|
from phoenix.server.api.input_types.TimeRange import TimeRange
|
|
26
23
|
from phoenix.server.api.types.DocumentEvaluationSummary import DocumentEvaluationSummary
|
|
24
|
+
from phoenix.server.types import DbSessionFactory
|
|
27
25
|
from phoenix.trace.dsl import SpanFilter
|
|
28
26
|
|
|
29
27
|
ProjectRowId: TypeAlias = int
|
|
@@ -77,7 +75,7 @@ class DocumentEvaluationSummaryCache(
|
|
|
77
75
|
class DocumentEvaluationSummaryDataLoader(DataLoader[Key, Result]):
|
|
78
76
|
def __init__(
|
|
79
77
|
self,
|
|
80
|
-
db:
|
|
78
|
+
db: DbSessionFactory,
|
|
81
79
|
cache_map: Optional[AbstractCache[Key, Result]] = None,
|
|
82
80
|
) -> None:
|
|
83
81
|
super().__init__(
|
|
@@ -1,25 +1,23 @@
|
|
|
1
1
|
from collections import defaultdict
|
|
2
2
|
from typing import (
|
|
3
|
-
AsyncContextManager,
|
|
4
|
-
Callable,
|
|
5
3
|
DefaultDict,
|
|
6
4
|
List,
|
|
7
5
|
)
|
|
8
6
|
|
|
9
7
|
from sqlalchemy import select
|
|
10
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
11
8
|
from strawberry.dataloader import DataLoader
|
|
12
9
|
from typing_extensions import TypeAlias
|
|
13
10
|
|
|
14
11
|
from phoenix.db import models
|
|
15
12
|
from phoenix.server.api.types.Evaluation import DocumentEvaluation
|
|
13
|
+
from phoenix.server.types import DbSessionFactory
|
|
16
14
|
|
|
17
15
|
Key: TypeAlias = int
|
|
18
16
|
Result: TypeAlias = List[DocumentEvaluation]
|
|
19
17
|
|
|
20
18
|
|
|
21
19
|
class DocumentEvaluationsDataLoader(DataLoader[Key, Result]):
|
|
22
|
-
def __init__(self, db:
|
|
20
|
+
def __init__(self, db: DbSessionFactory) -> None:
|
|
23
21
|
super().__init__(load_fn=self._load_fn)
|
|
24
22
|
self._db = db
|
|
25
23
|
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
from collections import defaultdict
|
|
2
2
|
from typing import (
|
|
3
|
-
AsyncContextManager,
|
|
4
|
-
Callable,
|
|
5
3
|
DefaultDict,
|
|
6
4
|
Dict,
|
|
7
5
|
List,
|
|
@@ -13,13 +11,13 @@ from typing import (
|
|
|
13
11
|
import numpy as np
|
|
14
12
|
from aioitertools.itertools import groupby
|
|
15
13
|
from sqlalchemy import select
|
|
16
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
17
14
|
from strawberry.dataloader import DataLoader
|
|
18
15
|
from typing_extensions import TypeAlias
|
|
19
16
|
|
|
20
17
|
from phoenix.db import models
|
|
21
18
|
from phoenix.metrics.retrieval_metrics import RetrievalMetrics
|
|
22
19
|
from phoenix.server.api.types.DocumentRetrievalMetrics import DocumentRetrievalMetrics
|
|
20
|
+
from phoenix.server.types import DbSessionFactory
|
|
23
21
|
|
|
24
22
|
RowId: TypeAlias = int
|
|
25
23
|
NumDocs: TypeAlias = int
|
|
@@ -30,7 +28,7 @@ Result: TypeAlias = List[DocumentRetrievalMetrics]
|
|
|
30
28
|
|
|
31
29
|
|
|
32
30
|
class DocumentRetrievalMetricsDataLoader(DataLoader[Key, Result]):
|
|
33
|
-
def __init__(self, db:
|
|
31
|
+
def __init__(self, db: DbSessionFactory) -> None:
|
|
34
32
|
super().__init__(load_fn=self._load_fn)
|
|
35
33
|
self._db = db
|
|
36
34
|
|
|
@@ -2,8 +2,6 @@ from collections import defaultdict
|
|
|
2
2
|
from datetime import datetime
|
|
3
3
|
from typing import (
|
|
4
4
|
Any,
|
|
5
|
-
AsyncContextManager,
|
|
6
|
-
Callable,
|
|
7
5
|
DefaultDict,
|
|
8
6
|
List,
|
|
9
7
|
Literal,
|
|
@@ -15,7 +13,6 @@ import pandas as pd
|
|
|
15
13
|
from aioitertools.itertools import groupby
|
|
16
14
|
from cachetools import LFUCache, TTLCache
|
|
17
15
|
from sqlalchemy import Select, func, or_, select
|
|
18
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
19
16
|
from strawberry.dataloader import AbstractCache, DataLoader
|
|
20
17
|
from typing_extensions import TypeAlias, assert_never
|
|
21
18
|
|
|
@@ -23,6 +20,7 @@ from phoenix.db import models
|
|
|
23
20
|
from phoenix.server.api.dataloaders.cache import TwoTierCache
|
|
24
21
|
from phoenix.server.api.input_types.TimeRange import TimeRange
|
|
25
22
|
from phoenix.server.api.types.EvaluationSummary import EvaluationSummary
|
|
23
|
+
from phoenix.server.types import DbSessionFactory
|
|
26
24
|
from phoenix.trace.dsl import SpanFilter
|
|
27
25
|
|
|
28
26
|
Kind: TypeAlias = Literal["span", "trace"]
|
|
@@ -77,7 +75,7 @@ class EvaluationSummaryCache(
|
|
|
77
75
|
class EvaluationSummaryDataLoader(DataLoader[Key, Result]):
|
|
78
76
|
def __init__(
|
|
79
77
|
self,
|
|
80
|
-
db:
|
|
78
|
+
db: DbSessionFactory,
|
|
81
79
|
cache_map: Optional[AbstractCache[Key, Result]] = None,
|
|
82
80
|
) -> None:
|
|
83
81
|
super().__init__(
|
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
from collections import defaultdict
|
|
2
2
|
from dataclasses import dataclass
|
|
3
3
|
from typing import (
|
|
4
|
-
AsyncContextManager,
|
|
5
|
-
Callable,
|
|
6
4
|
DefaultDict,
|
|
7
5
|
List,
|
|
8
6
|
Optional,
|
|
9
7
|
)
|
|
10
8
|
|
|
11
9
|
from sqlalchemy import func, select
|
|
12
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
13
10
|
from strawberry.dataloader import AbstractCache, DataLoader
|
|
14
11
|
from typing_extensions import TypeAlias
|
|
15
12
|
|
|
16
13
|
from phoenix.db import models
|
|
14
|
+
from phoenix.server.types import DbSessionFactory
|
|
17
15
|
|
|
18
16
|
|
|
19
17
|
@dataclass
|
|
@@ -34,7 +32,7 @@ Result: TypeAlias = List[ExperimentAnnotationSummary]
|
|
|
34
32
|
class ExperimentAnnotationSummaryDataLoader(DataLoader[Key, Result]):
|
|
35
33
|
def __init__(
|
|
36
34
|
self,
|
|
37
|
-
db:
|
|
35
|
+
db: DbSessionFactory,
|
|
38
36
|
cache_map: Optional[AbstractCache[Key, Result]] = None,
|
|
39
37
|
) -> None:
|
|
40
38
|
super().__init__(load_fn=self._load_fn)
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
from typing import (
|
|
2
|
-
AsyncContextManager,
|
|
3
|
-
Callable,
|
|
4
2
|
List,
|
|
5
3
|
Optional,
|
|
6
4
|
)
|
|
7
5
|
|
|
8
6
|
from sqlalchemy import case, func, select
|
|
9
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
10
7
|
from strawberry.dataloader import DataLoader
|
|
11
8
|
from typing_extensions import TypeAlias
|
|
12
9
|
|
|
13
10
|
from phoenix.db import models
|
|
11
|
+
from phoenix.server.types import DbSessionFactory
|
|
14
12
|
|
|
15
13
|
ExperimentID: TypeAlias = int
|
|
16
14
|
ErrorRate: TypeAlias = float
|
|
@@ -21,7 +19,7 @@ Result: TypeAlias = Optional[ErrorRate]
|
|
|
21
19
|
class ExperimentErrorRatesDataLoader(DataLoader[Key, Result]):
|
|
22
20
|
def __init__(
|
|
23
21
|
self,
|
|
24
|
-
db:
|
|
22
|
+
db: DbSessionFactory,
|
|
25
23
|
) -> None:
|
|
26
24
|
super().__init__(load_fn=self._load_fn)
|
|
27
25
|
self._db = db
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
from typing import (
|
|
2
|
-
AsyncContextManager,
|
|
3
|
-
Callable,
|
|
4
2
|
List,
|
|
5
3
|
)
|
|
6
4
|
|
|
7
5
|
from sqlalchemy import func, select
|
|
8
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
9
6
|
from strawberry.dataloader import DataLoader
|
|
10
7
|
from typing_extensions import TypeAlias
|
|
11
8
|
|
|
12
9
|
from phoenix.db import models
|
|
10
|
+
from phoenix.server.types import DbSessionFactory
|
|
13
11
|
|
|
14
12
|
ExperimentID: TypeAlias = int
|
|
15
13
|
RunCount: TypeAlias = int
|
|
@@ -20,7 +18,7 @@ Result: TypeAlias = RunCount
|
|
|
20
18
|
class ExperimentRunCountsDataLoader(DataLoader[Key, Result]):
|
|
21
19
|
def __init__(
|
|
22
20
|
self,
|
|
23
|
-
db:
|
|
21
|
+
db: DbSessionFactory,
|
|
24
22
|
) -> None:
|
|
25
23
|
super().__init__(load_fn=self._load_fn)
|
|
26
24
|
self._db = db
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
from typing import (
|
|
2
|
-
AsyncContextManager,
|
|
3
|
-
Callable,
|
|
4
2
|
List,
|
|
5
3
|
Optional,
|
|
6
4
|
)
|
|
7
5
|
|
|
8
6
|
from sqlalchemy import distinct, func, select
|
|
9
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
10
7
|
from strawberry.dataloader import DataLoader
|
|
11
8
|
from typing_extensions import TypeAlias
|
|
12
9
|
|
|
13
10
|
from phoenix.db import models
|
|
11
|
+
from phoenix.server.types import DbSessionFactory
|
|
14
12
|
|
|
15
13
|
ExperimentId: TypeAlias = int
|
|
16
14
|
Key: TypeAlias = ExperimentId
|
|
@@ -18,7 +16,7 @@ Result: TypeAlias = Optional[int]
|
|
|
18
16
|
|
|
19
17
|
|
|
20
18
|
class ExperimentSequenceNumberDataLoader(DataLoader[Key, Result]):
|
|
21
|
-
def __init__(self, db:
|
|
19
|
+
def __init__(self, db: DbSessionFactory) -> None:
|
|
22
20
|
super().__init__(load_fn=self._load_fn)
|
|
23
21
|
self._db = db
|
|
24
22
|
|
|
@@ -2,9 +2,7 @@ from collections import defaultdict
|
|
|
2
2
|
from datetime import datetime
|
|
3
3
|
from typing import (
|
|
4
4
|
Any,
|
|
5
|
-
AsyncContextManager,
|
|
6
5
|
AsyncIterator,
|
|
7
|
-
Callable,
|
|
8
6
|
DefaultDict,
|
|
9
7
|
List,
|
|
10
8
|
Literal,
|
|
@@ -36,6 +34,7 @@ from phoenix.db import models
|
|
|
36
34
|
from phoenix.db.helpers import SupportedSQLDialect
|
|
37
35
|
from phoenix.server.api.dataloaders.cache import TwoTierCache
|
|
38
36
|
from phoenix.server.api.input_types.TimeRange import TimeRange
|
|
37
|
+
from phoenix.server.types import DbSessionFactory
|
|
39
38
|
from phoenix.trace.dsl import SpanFilter
|
|
40
39
|
|
|
41
40
|
Kind: TypeAlias = Literal["span", "trace"]
|
|
@@ -88,7 +87,7 @@ class LatencyMsQuantileCache(
|
|
|
88
87
|
class LatencyMsQuantileDataLoader(DataLoader[Key, Result]):
|
|
89
88
|
def __init__(
|
|
90
89
|
self,
|
|
91
|
-
db:
|
|
90
|
+
db: DbSessionFactory,
|
|
92
91
|
cache_map: Optional[AbstractCache[Key, Result]] = None,
|
|
93
92
|
) -> None:
|
|
94
93
|
super().__init__(
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
from collections import defaultdict
|
|
2
2
|
from datetime import datetime
|
|
3
3
|
from typing import (
|
|
4
|
-
AsyncContextManager,
|
|
5
|
-
Callable,
|
|
6
4
|
DefaultDict,
|
|
7
5
|
List,
|
|
8
6
|
Literal,
|
|
@@ -12,12 +10,12 @@ from typing import (
|
|
|
12
10
|
|
|
13
11
|
from cachetools import LFUCache
|
|
14
12
|
from sqlalchemy import func, select
|
|
15
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
16
13
|
from strawberry.dataloader import AbstractCache, DataLoader
|
|
17
14
|
from typing_extensions import TypeAlias, assert_never
|
|
18
15
|
|
|
19
16
|
from phoenix.db import models
|
|
20
17
|
from phoenix.server.api.dataloaders.cache import TwoTierCache
|
|
18
|
+
from phoenix.server.types import DbSessionFactory
|
|
21
19
|
|
|
22
20
|
Kind: TypeAlias = Literal["start", "end"]
|
|
23
21
|
ProjectRowId: TypeAlias = int
|
|
@@ -50,7 +48,7 @@ class MinStartOrMaxEndTimeCache(
|
|
|
50
48
|
class MinStartOrMaxEndTimeDataLoader(DataLoader[Key, Result]):
|
|
51
49
|
def __init__(
|
|
52
50
|
self,
|
|
53
|
-
db:
|
|
51
|
+
db: DbSessionFactory,
|
|
54
52
|
cache_map: Optional[AbstractCache[Key, Result]] = None,
|
|
55
53
|
) -> None:
|
|
56
54
|
super().__init__(
|
{arize_phoenix-4.14.1 → arize_phoenix-4.15.0}/src/phoenix/server/api/dataloaders/project_by_name.py
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
from collections import defaultdict
|
|
2
|
-
from typing import
|
|
2
|
+
from typing import DefaultDict, List, Optional
|
|
3
3
|
|
|
4
4
|
from sqlalchemy import select
|
|
5
|
-
from sqlalchemy.ext.asyncio import AsyncSession
|
|
6
5
|
from strawberry.dataloader import DataLoader
|
|
7
6
|
from typing_extensions import TypeAlias
|
|
8
7
|
|
|
9
8
|
from phoenix.db import models
|
|
9
|
+
from phoenix.server.types import DbSessionFactory
|
|
10
10
|
|
|
11
11
|
ProjectName: TypeAlias = str
|
|
12
12
|
Key: TypeAlias = ProjectName
|
|
@@ -14,7 +14,7 @@ Result: TypeAlias = Optional[models.Project]
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class ProjectByNameDataLoader(DataLoader[Key, Result]):
|
|
17
|
-
def __init__(self, db:
|
|
17
|
+
def __init__(self, db: DbSessionFactory) -> None:
|
|
18
18
|
super().__init__(load_fn=self._load_fn)
|
|
19
19
|
self._db = db
|
|
20
20
|
|