arize-phoenix 4.0.0__tar.gz → 4.0.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.0.0 → arize_phoenix-4.0.2}/PKG-INFO +1 -1
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/bulk_inserter.py +8 -3
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/insertion/helpers.py +2 -5
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/otel.py +11 -1
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/trace_dataset.py +3 -2
- arize_phoenix-4.0.2/src/phoenix/version.py +1 -0
- arize_phoenix-4.0.0/src/phoenix/version.py +0 -1
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/.gitignore +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/IP_NOTICE +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/LICENSE +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/README.md +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/chat-service/chat/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/chat-service/chat/app.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/chat-service/chat/types.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/frontend/Dockerfile +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/frontend/Makefile +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/frontend/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/frontend/pyproject.toml +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/frontend/requirements.txt +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/frontend/schema.json +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/pyproject.toml +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/config.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/core/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/core/embedding_dimension.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/core/model.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/core/model_schema.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/core/model_schema_adapter.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/datetime_utils.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/README.md +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/alembic.ini +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/engines.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/helpers.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/insertion/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/insertion/evaluation.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/insertion/span.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/migrate.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/migrations/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/migrations/env.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/migrations/script.py.mako +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/migrations/versions/cf03bd6bae1d_init.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/models.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/exceptions.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/inferences/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/inferences/errors.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/inferences/fixtures.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/inferences/inferences.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/inferences/schema.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/inferences/validation.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/metrics/README.md +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/metrics/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/metrics/binning.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/metrics/metrics.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/metrics/mixins.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/metrics/retrieval_metrics.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/metrics/timeseries.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/metrics/wrappers.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/pointcloud/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/pointcloud/clustering.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/pointcloud/pointcloud.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/pointcloud/projectors.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/pointcloud/umap_parameters.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/py.typed +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/context.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/cache/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/cache/two_tier_cache.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/document_evaluation_summaries.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/document_evaluations.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/document_retrieval_metrics.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/evaluation_summaries.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/latency_ms_quantile.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/min_start_or_max_end_times.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/record_counts.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/span_descendants.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/span_evaluations.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/token_counts.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/trace_evaluations.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/helpers.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/ClusterInput.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/Coordinates.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/DataQualityMetricInput.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/DimensionFilter.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/DimensionInput.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/Granularity.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/PerformanceMetricInput.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/SpanSort.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/TimeRange.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/interceptor.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/routers/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/routers/utils.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/routers/v1/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/routers/v1/evaluations.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/routers/v1/spans.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/routers/v1/traces.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/schema.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Cluster.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DataQualityMetric.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Dataset.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DatasetRole.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DatasetValues.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Dimension.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DimensionDataType.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DimensionShape.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DimensionType.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DimensionWithValue.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DocumentEvaluationSummary.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DocumentRetrievalMetrics.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/EmbeddingDimension.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/EmbeddingMetadata.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Evaluation.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/EvaluationSummary.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Event.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/EventMetadata.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/ExportEventsMutation.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/ExportedFile.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Functionality.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/MimeType.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Model.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/NumericRange.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/PerformanceMetric.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Project.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/PromptResponse.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Retrieval.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Segments.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/SortDir.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Span.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/TimeSeries.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/Trace.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/UMAPPoints.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/ValidationResult.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/VectorDriftMetricEnum.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/node.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/pagination.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/app.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/grpc_server.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/main.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/openapi/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/openapi/docs.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/prometheus.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-114x114.png +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-120x120.png +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-144x144.png +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-152x152.png +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-180x180.png +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-72x72.png +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-76x76.png +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon.png +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/favicon.ico +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/index.css +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/index.js +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/modernizr.js +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/telemetry.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/templates/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/templates/index.html +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/thread_server.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/services.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/session/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/session/client.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/session/data_extractor.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/session/evaluation.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/session/session.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/settings.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/attributes.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/dsl/README.md +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/dsl/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/dsl/filter.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/dsl/helpers.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/dsl/query.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/errors.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/evaluation_conventions.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/exporter.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/fixtures.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/langchain/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/langchain/instrumentor.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/llama_index/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/llama_index/callback.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/openai/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/openai/instrumentor.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/projects.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/schemas.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/span_evaluations.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/span_json_decoder.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/span_json_encoder.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/utils.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/v1/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/v1/evaluation_pb2.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/trace/v1/evaluation_pb2.pyi +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/utilities/__init__.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/utilities/deprecation.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/utilities/error_handling.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/utilities/logging.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/utilities/project.py +0 -0
- {arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/utilities/span_store.py +0 -0
|
@@ -63,6 +63,10 @@ class BulkInserter:
|
|
|
63
63
|
self._db = db
|
|
64
64
|
self._running = False
|
|
65
65
|
self._run_interval_seconds = run_interval_in_seconds
|
|
66
|
+
|
|
67
|
+
# tracks time between insertions to improve responsiveness for small batches
|
|
68
|
+
self._last_insertion_time = time() - self._run_interval_seconds
|
|
69
|
+
|
|
66
70
|
self._max_num_per_transaction = max_num_per_transaction
|
|
67
71
|
self._spans: List[Tuple[Span, str]] = (
|
|
68
72
|
[] if initial_batch_of_spans is None else list(initial_batch_of_spans)
|
|
@@ -98,10 +102,10 @@ class BulkInserter:
|
|
|
98
102
|
|
|
99
103
|
async def _bulk_insert(self) -> None:
|
|
100
104
|
spans_buffer, evaluations_buffer = None, None
|
|
101
|
-
|
|
105
|
+
# start first insert immediately if the inserter has not run recently
|
|
102
106
|
while self._spans or self._evaluations or self._running:
|
|
103
|
-
|
|
104
|
-
next_run_at
|
|
107
|
+
next_run_at = self._last_insertion_time + self._run_interval_seconds
|
|
108
|
+
await asyncio.sleep(max(next_run_at - time(), 0))
|
|
105
109
|
if not (self._spans or self._evaluations):
|
|
106
110
|
continue
|
|
107
111
|
# It's important to grab the buffers at the same time so there's
|
|
@@ -128,6 +132,7 @@ class BulkInserter:
|
|
|
128
132
|
evaluations_buffer = None
|
|
129
133
|
for project_rowid in transaction_result.updated_project_rowids:
|
|
130
134
|
self._last_updated_at_by_project[project_rowid] = datetime.now(timezone.utc)
|
|
135
|
+
self._last_insertion_time = time()
|
|
131
136
|
|
|
132
137
|
async def _insert_spans(self, spans: List[Tuple[Span, str]]) -> TransactionResult:
|
|
133
138
|
transaction_result = TransactionResult()
|
|
@@ -30,11 +30,8 @@ def insert_stmt(
|
|
|
30
30
|
raise ValueError(
|
|
31
31
|
"Both `constraint` and `column_names` must be provided or omitted at the same time."
|
|
32
32
|
)
|
|
33
|
-
if (
|
|
34
|
-
dialect is SupportedSQLDialect.
|
|
35
|
-
and constraint is None
|
|
36
|
-
or dialect is SupportedSQLDialect.SQLITE
|
|
37
|
-
and not column_names
|
|
33
|
+
if (dialect is SupportedSQLDialect.POSTGRESQL and constraint is None) or (
|
|
34
|
+
dialect is SupportedSQLDialect.SQLITE and not column_names
|
|
38
35
|
):
|
|
39
36
|
return insert(table).values(values)
|
|
40
37
|
if dialect is SupportedSQLDialect.POSTGRESQL:
|
|
@@ -17,7 +17,11 @@ from typing import (
|
|
|
17
17
|
|
|
18
18
|
import numpy as np
|
|
19
19
|
import opentelemetry.proto.trace.v1.trace_pb2 as otlp
|
|
20
|
-
from openinference.semconv.trace import
|
|
20
|
+
from openinference.semconv.trace import (
|
|
21
|
+
DocumentAttributes,
|
|
22
|
+
OpenInferenceMimeTypeValues,
|
|
23
|
+
SpanAttributes,
|
|
24
|
+
)
|
|
21
25
|
from opentelemetry.proto.common.v1.common_pb2 import AnyValue, ArrayValue, KeyValue
|
|
22
26
|
from opentelemetry.util.types import Attributes, AttributeValue
|
|
23
27
|
from typing_extensions import TypeAlias, assert_never
|
|
@@ -70,6 +74,12 @@ def decode_otlp_span(otlp_span: otlp.Span) -> Span:
|
|
|
70
74
|
status_code, status_message = _decode_status(otlp_span.status)
|
|
71
75
|
events = [_decode_event(event) for event in otlp_span.events]
|
|
72
76
|
|
|
77
|
+
if (input_value := get_attribute_value(attributes, INPUT_VALUE)) and not isinstance(
|
|
78
|
+
input_value, str
|
|
79
|
+
):
|
|
80
|
+
attributes["input"]["value"] = json.dumps(input_value)
|
|
81
|
+
attributes["input"]["mime_type"] = OpenInferenceMimeTypeValues.JSON.value
|
|
82
|
+
|
|
73
83
|
return Span(
|
|
74
84
|
name=otlp_span.name,
|
|
75
85
|
context=SpanContext(
|
|
@@ -16,6 +16,7 @@ from pyarrow import Schema, Table, parquet
|
|
|
16
16
|
|
|
17
17
|
from phoenix.config import DATASET_DIR, GENERATED_DATASET_NAME_PREFIX, TRACE_DATASET_DIR
|
|
18
18
|
from phoenix.datetime_utils import normalize_timestamps
|
|
19
|
+
from phoenix.trace.attributes import unflatten
|
|
19
20
|
from phoenix.trace.errors import InvalidParquetMetadataError
|
|
20
21
|
from phoenix.trace.schemas import ATTRIBUTE_PREFIX, CONTEXT_PREFIX, Span
|
|
21
22
|
from phoenix.trace.span_evaluations import Evaluations, SpanEvaluations
|
|
@@ -161,13 +162,13 @@ class TraceDataset:
|
|
|
161
162
|
for _, row in self.dataframe.iterrows():
|
|
162
163
|
is_attribute = row.index.str.startswith(ATTRIBUTE_PREFIX)
|
|
163
164
|
attribute_keys = row.index[is_attribute]
|
|
164
|
-
attributes = (
|
|
165
|
+
attributes = unflatten(
|
|
165
166
|
row.loc[is_attribute]
|
|
166
167
|
.rename(
|
|
167
168
|
{key: key[len(ATTRIBUTE_PREFIX) :] for key in attribute_keys},
|
|
168
169
|
)
|
|
169
170
|
.dropna()
|
|
170
|
-
.
|
|
171
|
+
.items()
|
|
171
172
|
)
|
|
172
173
|
is_context = row.index.str.startswith(CONTEXT_PREFIX)
|
|
173
174
|
context_keys = row.index[is_context]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "4.0.2"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "4.0.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
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/examples/manually-instrumented-chatbot/frontend/Makefile
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
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/db/migrations/versions/cf03bd6bae1d_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
|
|
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.0.0 → arize_phoenix-4.0.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
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/record_counts.py
RENAMED
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/span_descendants.py
RENAMED
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/span_evaluations.py
RENAMED
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/token_counts.py
RENAMED
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/dataloaders/trace_evaluations.py
RENAMED
|
File without changes
|
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/ClusterInput.py
RENAMED
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/Coordinates.py
RENAMED
|
File without changes
|
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/DimensionFilter.py
RENAMED
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/DimensionInput.py
RENAMED
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/input_types/Granularity.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
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/routers/v1/evaluations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DataQualityMetric.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DimensionDataType.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DimensionWithValue.py
RENAMED
|
File without changes
|
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/DocumentRetrievalMetrics.py
RENAMED
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/EmbeddingDimension.py
RENAMED
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/EmbeddingMetadata.py
RENAMED
|
File without changes
|
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/EvaluationSummary.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/ExportEventsMutation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/PerformanceMetric.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/ValidationResult.py
RENAMED
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/api/types/VectorDriftMetricEnum.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.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-114x114.png
RENAMED
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-120x120.png
RENAMED
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-144x144.png
RENAMED
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-152x152.png
RENAMED
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-180x180.png
RENAMED
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-72x72.png
RENAMED
|
File without changes
|
{arize_phoenix-4.0.0 → arize_phoenix-4.0.2}/src/phoenix/server/static/apple-touch-icon-76x76.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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
|