arize-phoenix 7.12.2__tar.gz → 8.0.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-8.0.0/.gitignore +70 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/PKG-INFO +31 -28
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/README.md +25 -25
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/pyproject.toml +5 -2
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/config.py +61 -36
- arize_phoenix-8.0.0/src/phoenix/db/migrations/versions/bc8fea3c2bc8_add_prompt_tables.py +197 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/models.py +307 -0
- arize_phoenix-8.0.0/src/phoenix/db/types/identifier.py +7 -0
- arize_phoenix-8.0.0/src/phoenix/db/types/model_provider.py +8 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/context.py +2 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/__init__.py +2 -0
- arize_phoenix-8.0.0/src/phoenix/server/api/dataloaders/prompt_version_sequence_number.py +35 -0
- arize_phoenix-8.0.0/src/phoenix/server/api/helpers/jsonschema.py +135 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/helpers/playground_clients.py +23 -27
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/helpers/playground_spans.py +9 -0
- arize_phoenix-8.0.0/src/phoenix/server/api/helpers/prompts/conversions/anthropic.py +87 -0
- arize_phoenix-8.0.0/src/phoenix/server/api/helpers/prompts/conversions/openai.py +78 -0
- arize_phoenix-8.0.0/src/phoenix/server/api/helpers/prompts/models.py +575 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/ChatCompletionInput.py +9 -4
- arize_phoenix-8.0.0/src/phoenix/server/api/input_types/PromptTemplateOptions.py +10 -0
- arize_phoenix-8.0.0/src/phoenix/server/api/input_types/PromptVersionInput.py +133 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/mutations/__init__.py +6 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/mutations/chat_mutations.py +18 -16
- arize_phoenix-8.0.0/src/phoenix/server/api/mutations/prompt_label_mutations.py +191 -0
- arize_phoenix-8.0.0/src/phoenix/server/api/mutations/prompt_mutations.py +312 -0
- arize_phoenix-8.0.0/src/phoenix/server/api/mutations/prompt_version_tag_mutations.py +148 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/mutations/user_mutations.py +7 -6
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/openapi/schema.py +1 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/queries.py +84 -31
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/routers/oauth2.py +3 -2
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/routers/v1/__init__.py +2 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/routers/v1/datasets.py +1 -1
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/routers/v1/experiment_evaluations.py +1 -1
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/routers/v1/experiment_runs.py +1 -1
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/routers/v1/experiments.py +1 -1
- arize_phoenix-8.0.0/src/phoenix/server/api/routers/v1/models.py +45 -0
- arize_phoenix-8.0.0/src/phoenix/server/api/routers/v1/prompts.py +412 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/routers/v1/spans.py +1 -1
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/routers/v1/traces.py +1 -1
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/routers/v1/utils.py +1 -1
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/subscriptions.py +21 -24
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/GenerativeProvider.py +6 -6
- arize_phoenix-8.0.0/src/phoenix/server/api/types/Identifier.py +15 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/Project.py +5 -7
- arize_phoenix-8.0.0/src/phoenix/server/api/types/Prompt.py +134 -0
- arize_phoenix-8.0.0/src/phoenix/server/api/types/PromptLabel.py +41 -0
- arize_phoenix-8.0.0/src/phoenix/server/api/types/PromptVersion.py +148 -0
- arize_phoenix-8.0.0/src/phoenix/server/api/types/PromptVersionTag.py +27 -0
- arize_phoenix-8.0.0/src/phoenix/server/api/types/PromptVersionTemplate.py +148 -0
- arize_phoenix-8.0.0/src/phoenix/server/api/types/ResponseFormat.py +9 -0
- arize_phoenix-8.0.0/src/phoenix/server/api/types/ToolDefinition.py +9 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/app.py +3 -0
- arize_phoenix-8.0.0/src/phoenix/server/static/.vite/manifest.json +87 -0
- arize_phoenix-8.0.0/src/phoenix/server/static/assets/components-B-qgPyHv.js +2699 -0
- arize_phoenix-8.0.0/src/phoenix/server/static/assets/index-D4KO1IcF.js +1125 -0
- arize_phoenix-8.0.0/src/phoenix/server/static/assets/pages-DdcuL3Rh.js +5634 -0
- arize_phoenix-8.0.0/src/phoenix/server/static/assets/vendor-DQp7CrDA.js +894 -0
- arize_phoenix-8.0.0/src/phoenix/server/static/assets/vendor-arizeai-C1nEIEQq.js +657 -0
- arize_phoenix-8.0.0/src/phoenix/server/static/assets/vendor-codemirror-BZXYUIkP.js +24 -0
- arize_phoenix-8.0.0/src/phoenix/server/static/assets/vendor-recharts-BUFpwCVD.js +59 -0
- arize_phoenix-7.12.2/src/phoenix/server/static/assets/vendor-shiki-Cl9QBraO.js → arize_phoenix-8.0.0/src/phoenix/server/static/assets/vendor-shiki-C8L-c9jT.js +2 -2
- arize_phoenix-7.12.2/src/phoenix/server/static/assets/vendor-three-DwGkEfCM.js → arize_phoenix-8.0.0/src/phoenix/server/static/assets/vendor-three-C-AGeJYv.js +1 -1
- arize_phoenix-8.0.0/src/phoenix/session/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/session/client.py +25 -21
- arize_phoenix-8.0.0/src/phoenix/utilities/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/utilities/client.py +6 -0
- arize_phoenix-8.0.0/src/phoenix/utilities/span_store.py +0 -0
- arize_phoenix-8.0.0/src/phoenix/version.py +1 -0
- arize_phoenix-7.12.2/.gitignore +0 -49
- arize_phoenix-7.12.2/src/phoenix/server/api/input_types/TemplateOptions.py +0 -10
- arize_phoenix-7.12.2/src/phoenix/server/api/routers/v1/pydantic_compat.py +0 -78
- arize_phoenix-7.12.2/src/phoenix/server/api/types/TemplateLanguage.py +0 -10
- arize_phoenix-7.12.2/src/phoenix/server/static/.vite/manifest.json +0 -87
- arize_phoenix-7.12.2/src/phoenix/server/static/assets/components-DckIzNmE.js +0 -2125
- arize_phoenix-7.12.2/src/phoenix/server/static/assets/index-Bf25Ogon.js +0 -113
- arize_phoenix-7.12.2/src/phoenix/server/static/assets/pages-DL7J9q9w.js +0 -4463
- arize_phoenix-7.12.2/src/phoenix/server/static/assets/vendor-DvC8cT4X.js +0 -894
- arize_phoenix-7.12.2/src/phoenix/server/static/assets/vendor-arizeai-Do1793cv.js +0 -662
- arize_phoenix-7.12.2/src/phoenix/server/static/assets/vendor-codemirror-BzwZPyJM.js +0 -24
- arize_phoenix-7.12.2/src/phoenix/server/static/assets/vendor-recharts-_Jb7JjhG.js +0 -59
- arize_phoenix-7.12.2/src/phoenix/version.py +0 -1
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/IP_NOTICE +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/LICENSE +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/auth.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/core/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/core/embedding_dimension.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/core/model.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/core/model_schema.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/core/model_schema_adapter.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/datetime_utils.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/README.md +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/alembic.ini +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/bulk_inserter.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/engines.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/enums.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/facilitator.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/helpers.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/insertion/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/insertion/constants.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/insertion/dataset.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/insertion/document_annotation.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/insertion/evaluation.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/insertion/helpers.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/insertion/span.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/insertion/span_annotation.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/insertion/trace_annotation.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/insertion/types.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/migrate.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/migrations/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/migrations/data_migration_scripts/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/migrations/data_migration_scripts/populate_project_sessions.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/migrations/env.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/migrations/script.py.mako +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/migrations/versions/10460e46d750_datasets.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/migrations/versions/3be8647b87d8_add_token_columns_to_spans_table.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/migrations/versions/4ded9e43755f_create_project_sessions_table.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/migrations/versions/cd164e83824f_users_and_tokens.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/db/migrations/versions/cf03bd6bae1d_init.py +0 -0
- {arize_phoenix-7.12.2/src/phoenix/inferences → arize_phoenix-8.0.0/src/phoenix/db/types}/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/exceptions.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/experiments/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/experiments/evaluators/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/experiments/evaluators/base.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/experiments/evaluators/code_evaluators.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/experiments/evaluators/llm_evaluators.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/experiments/evaluators/utils.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/experiments/functions.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/experiments/tracing.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/experiments/types.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/experiments/utils.py +0 -0
- {arize_phoenix-7.12.2/src/phoenix/server → arize_phoenix-8.0.0/src/phoenix/inferences}/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/inferences/errors.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/inferences/fixtures.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/inferences/inferences.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/inferences/schema.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/inferences/validation.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/logging/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/logging/_config.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/logging/_filter.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/logging/_formatter.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/metrics/README.md +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/metrics/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/metrics/binning.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/metrics/metrics.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/metrics/mixins.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/metrics/retrieval_metrics.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/metrics/timeseries.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/metrics/wrappers.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/pointcloud/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/pointcloud/clustering.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/pointcloud/pointcloud.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/pointcloud/projectors.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/pointcloud/umap_parameters.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/py.typed +0 -0
- {arize_phoenix-7.12.2/src/phoenix/server/api → arize_phoenix-8.0.0/src/phoenix/server}/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/README.md +0 -0
- {arize_phoenix-7.12.2/src/phoenix/server/api/input_types → arize_phoenix-8.0.0/src/phoenix/server/api}/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/auth.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/annotation_summaries.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/average_experiment_run_latency.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/cache/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/cache/two_tier_cache.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/dataset_example_revisions.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/dataset_example_spans.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/document_evaluation_summaries.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/document_evaluations.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/document_retrieval_metrics.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/experiment_annotation_summaries.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/experiment_error_rates.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/experiment_run_annotations.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/experiment_run_counts.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/experiment_sequence_number.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/latency_ms_quantile.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/min_start_or_max_end_times.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/project_by_name.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/record_counts.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/session_io.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/session_num_traces.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/session_num_traces_with_error.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/session_token_usages.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/session_trace_latency_ms_quantile.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/span_annotations.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/span_dataset_examples.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/span_descendants.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/span_projects.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/token_counts.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/trace_by_trace_ids.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/trace_root_spans.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/user_roles.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/dataloaders/users.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/exceptions.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/helpers/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/helpers/dataset_helpers.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/helpers/experiment_run_filters.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/helpers/playground_registry.py +0 -0
- {arize_phoenix-7.12.2/src/phoenix/server/api/openapi → arize_phoenix-8.0.0/src/phoenix/server/api/helpers/prompts}/__init__.py +0 -0
- {arize_phoenix-7.12.2/src/phoenix/server/api/types → arize_phoenix-8.0.0/src/phoenix/server/api/helpers/prompts/conversions}/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/AddExamplesToDatasetInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/AddSpansToDatasetInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/ChatCompletionMessageInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/ClearProjectInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/ClusterInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/Coordinates.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/CreateDatasetInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/CreateSpanAnnotationInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/CreateTraceAnnotationInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/DataQualityMetricInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/DatasetExampleInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/DatasetSort.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/DatasetVersionSort.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/DeleteAnnotationsInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/DeleteDatasetExamplesInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/DeleteDatasetInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/DeleteExperimentsInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/DimensionFilter.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/DimensionInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/GenerativeModelInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/Granularity.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/InvocationParameters.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/PatchAnnotationInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/PatchDatasetExamplesInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/PatchDatasetInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/PerformanceMetricInput.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/ProjectSessionSort.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/SpanAnnotationSort.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/SpanSort.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/TimeRange.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/TraceAnnotationSort.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/input_types/UserRoleInput.py +0 -0
- {arize_phoenix-7.12.2/src/phoenix/server/email → arize_phoenix-8.0.0/src/phoenix/server/api/input_types}/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/interceptor.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/mutations/api_key_mutations.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/mutations/dataset_mutations.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/mutations/experiment_mutations.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/mutations/export_events_mutations.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/mutations/project_mutations.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/mutations/span_annotations_mutations.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/mutations/trace_annotations_mutations.py +0 -0
- {arize_phoenix-7.12.2/src/phoenix/server/email/templates → arize_phoenix-8.0.0/src/phoenix/server/api/openapi}/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/openapi/main.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/routers/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/routers/auth.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/routers/embeddings.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/routers/utils.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/routers/v1/evaluations.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/schema.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/Annotation.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/AnnotationSummary.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/AnnotatorKind.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/ApiKey.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/AuthMethod.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/ChatCompletionMessageRole.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/ChatCompletionSubscriptionPayload.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/Cluster.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/CreateDatasetPayload.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/DataQualityMetric.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/Dataset.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/DatasetExample.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/DatasetExampleRevision.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/DatasetValues.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/DatasetVersion.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/Dimension.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/DimensionDataType.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/DimensionShape.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/DimensionType.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/DimensionWithValue.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/DocumentEvaluationSummary.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/DocumentRetrievalMetrics.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/EmbeddingDimension.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/EmbeddingMetadata.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/Evaluation.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/EvaluationSummary.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/Event.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/EventMetadata.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/ExampleRevisionInterface.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/Experiment.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/ExperimentAnnotationSummary.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/ExperimentComparison.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/ExperimentRun.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/ExperimentRunAnnotation.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/ExportedFile.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/Functionality.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/GenerativeModel.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/Inferences.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/InferencesRole.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/LabelFraction.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/MimeType.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/Model.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/NumericRange.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/PerformanceMetric.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/ProjectSession.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/PromptResponse.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/Retrieval.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/Segments.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/SortDir.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/Span.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/SpanAnnotation.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/SpanIOValue.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/SystemApiKey.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/TimeSeries.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/TokenUsage.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/Trace.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/TraceAnnotation.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/UMAPPoints.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/User.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/UserApiKey.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/UserRole.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/ValidationResult.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/VectorDriftMetricEnum.py +0 -0
- {arize_phoenix-7.12.2/src/phoenix/server/openapi → arize_phoenix-8.0.0/src/phoenix/server/api/types}/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/node.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/types/pagination.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/api/utils.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/bearer_auth.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/dml_event.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/dml_event_handler.py +0 -0
- {arize_phoenix-7.12.2/src/phoenix/server/templates → arize_phoenix-8.0.0/src/phoenix/server/email}/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/email/sender.py +0 -0
- {arize_phoenix-7.12.2/src/phoenix/session → arize_phoenix-8.0.0/src/phoenix/server/email/templates}/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/email/templates/password_reset.html +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/email/types.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/grpc_server.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/jwt_store.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/main.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/oauth2.py +0 -0
- {arize_phoenix-7.12.2/src/phoenix/utilities → arize_phoenix-8.0.0/src/phoenix/server/openapi}/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/prometheus.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/rate_limiters.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/static/apple-touch-icon-114x114.png +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/static/apple-touch-icon-120x120.png +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/static/apple-touch-icon-144x144.png +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/static/apple-touch-icon-152x152.png +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/static/apple-touch-icon-180x180.png +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/static/apple-touch-icon-72x72.png +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/static/apple-touch-icon-76x76.png +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/static/apple-touch-icon.png +0 -0
- /arize_phoenix-7.12.2/src/phoenix/server/static/assets/vendor-DxkFTwjz.css → /arize_phoenix-8.0.0/src/phoenix/server/static/assets/vendor-Cg6lcjUC.css +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/static/favicon.ico +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/static/modernizr.js +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/telemetry.py +0 -0
- /arize_phoenix-7.12.2/src/phoenix/utilities/span_store.py → /arize_phoenix-8.0.0/src/phoenix/server/templates/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/templates/index.html +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/thread_server.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/server/types.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/services.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/session/data_extractor.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/session/evaluation.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/session/session.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/settings.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/attributes.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/dsl/README.md +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/dsl/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/dsl/filter.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/dsl/helpers.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/dsl/query.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/errors.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/evaluation_conventions.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/exporter.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/fixtures.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/otel.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/projects.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/schemas.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/span_evaluations.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/span_json_decoder.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/span_json_encoder.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/trace_dataset.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/utils.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/v1/__init__.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/v1/evaluation_pb2.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/trace/v1/evaluation_pb2.pyi +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/utilities/deprecation.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/utilities/error_handling.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/utilities/json.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/utilities/logging.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/utilities/project.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/utilities/re.py +0 -0
- {arize_phoenix-7.12.2 → arize_phoenix-8.0.0}/src/phoenix/utilities/template_formatters.py +0 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Generated dirs
|
|
2
|
+
.vscode
|
|
3
|
+
.idea
|
|
4
|
+
.coverage
|
|
5
|
+
node_modules
|
|
6
|
+
dist
|
|
7
|
+
sdist
|
|
8
|
+
*__pycache__*
|
|
9
|
+
**/.pytest_cache
|
|
10
|
+
**/.ipynb_checkpoints/
|
|
11
|
+
**/.DS_Store
|
|
12
|
+
|
|
13
|
+
# Server static files
|
|
14
|
+
/src/phoenix/server/static/*
|
|
15
|
+
|
|
16
|
+
# Data files
|
|
17
|
+
*.csv
|
|
18
|
+
!tests/**/fixtures/*.csv
|
|
19
|
+
*.hdf
|
|
20
|
+
*.hdf5
|
|
21
|
+
|
|
22
|
+
# Testing
|
|
23
|
+
coverage.xml
|
|
24
|
+
.tox
|
|
25
|
+
|
|
26
|
+
# devtools
|
|
27
|
+
pyrightconfig.json
|
|
28
|
+
!/packages/phoenix-client/src/phoenix/client/helpers/sdk/pyrightconfig.json
|
|
29
|
+
!/packages/phoenix-client/tests/canary/sdk/pyrightconfig.json
|
|
30
|
+
!/tests/integration/pyrightconfig.json
|
|
31
|
+
|
|
32
|
+
# Demo data
|
|
33
|
+
tutorials/internal/demo_llama_index/*.json
|
|
34
|
+
examples/agent_framework_comparison/utils/saved_traces/*.parquet
|
|
35
|
+
.env
|
|
36
|
+
|
|
37
|
+
# python environments
|
|
38
|
+
.conda
|
|
39
|
+
.venv
|
|
40
|
+
|
|
41
|
+
# Deno Notebook Environment
|
|
42
|
+
js/examples/notebooks/**/deno.lock
|
|
43
|
+
|
|
44
|
+
# These can be generated by code refactoring via IntelliJ,
|
|
45
|
+
# but they should be excluded from their Python packages, as
|
|
46
|
+
# they would clobber the same files in phoenix when they are
|
|
47
|
+
# installed as submodules.
|
|
48
|
+
/packages/__init__.py
|
|
49
|
+
/packages/phoenix-client/__init__.py
|
|
50
|
+
/packages/phoenix-client/src/__init__.py
|
|
51
|
+
/packages/phoenix-client/src/phoenix/__init__.py
|
|
52
|
+
/packages/phoenix-evals/__init__.py
|
|
53
|
+
/packages/phoenix-evals/src/__init__.py
|
|
54
|
+
/packages/phoenix-evals/src/phoenix/__init__.py
|
|
55
|
+
/packages/phoenix-otel/__init__.py
|
|
56
|
+
/packages/phoenix-otel/src/__init__.py
|
|
57
|
+
/packages/phoenix-otel/src/phoenix/__init__.py
|
|
58
|
+
|
|
59
|
+
# Symbolic links
|
|
60
|
+
# Note that this can affect hatch build for those packages. That's why
|
|
61
|
+
# we need to un-ignore it if it's an actual folder (i.e. with the trailing /).
|
|
62
|
+
/src/phoenix/client
|
|
63
|
+
!src/phoenix/client/
|
|
64
|
+
/src/phoenix/evals
|
|
65
|
+
!src/phoenix/evals/
|
|
66
|
+
/src/phoenix/otel
|
|
67
|
+
!src/phoenix/otel/
|
|
68
|
+
|
|
69
|
+
# Caches
|
|
70
|
+
.pnpm-store
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: arize-phoenix
|
|
3
|
-
Version:
|
|
3
|
+
Version: 8.0.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
|
|
@@ -20,6 +20,7 @@ Requires-Python: <3.14,>=3.9
|
|
|
20
20
|
Requires-Dist: aioitertools
|
|
21
21
|
Requires-Dist: aiosqlite
|
|
22
22
|
Requires-Dist: alembic<2,>=1.3.0
|
|
23
|
+
Requires-Dist: arize-phoenix-client
|
|
23
24
|
Requires-Dist: arize-phoenix-evals>=0.13.1
|
|
24
25
|
Requires-Dist: arize-phoenix-otel>=0.5.1
|
|
25
26
|
Requires-Dist: authlib
|
|
@@ -29,6 +30,7 @@ Requires-Dist: grpc-interceptor
|
|
|
29
30
|
Requires-Dist: grpcio
|
|
30
31
|
Requires-Dist: httpx
|
|
31
32
|
Requires-Dist: jinja2
|
|
33
|
+
Requires-Dist: jsonschema<=4.23.0,>=4.0.0
|
|
32
34
|
Requires-Dist: numpy!=2.0.0
|
|
33
35
|
Requires-Dist: openinference-instrumentation>=0.1.12
|
|
34
36
|
Requires-Dist: openinference-semantic-conventions>=0.1.12
|
|
@@ -40,7 +42,7 @@ Requires-Dist: pandas>=1.0
|
|
|
40
42
|
Requires-Dist: protobuf<6.0,>=3.20.2
|
|
41
43
|
Requires-Dist: psutil
|
|
42
44
|
Requires-Dist: pyarrow
|
|
43
|
-
Requires-Dist: pydantic
|
|
45
|
+
Requires-Dist: pydantic>=2.1.0
|
|
44
46
|
Requires-Dist: python-multipart
|
|
45
47
|
Requires-Dist: scikit-learn
|
|
46
48
|
Requires-Dist: scipy
|
|
@@ -83,7 +85,7 @@ Requires-Dist: grpc-interceptor[testing]; extra == 'dev'
|
|
|
83
85
|
Requires-Dist: hatch; extra == 'dev'
|
|
84
86
|
Requires-Dist: jupyter; extra == 'dev'
|
|
85
87
|
Requires-Dist: langchain>=0.0.334; extra == 'dev'
|
|
86
|
-
Requires-Dist: litellm
|
|
88
|
+
Requires-Dist: litellm<1.57.5,>=1.0.3; extra == 'dev'
|
|
87
89
|
Requires-Dist: llama-index>=0.10.3; extra == 'dev'
|
|
88
90
|
Requires-Dist: mypy==1.12.1; extra == 'dev'
|
|
89
91
|
Requires-Dist: nbqa; extra == 'dev'
|
|
@@ -103,6 +105,7 @@ Requires-Dist: strawberry-graphql[debug-server,opentelemetry]==0.253.1; extra ==
|
|
|
103
105
|
Requires-Dist: tabulate; extra == 'dev'
|
|
104
106
|
Requires-Dist: tox-uv==1.11.3; extra == 'dev'
|
|
105
107
|
Requires-Dist: tox==4.18.1; extra == 'dev'
|
|
108
|
+
Requires-Dist: types-jsonschema; extra == 'dev'
|
|
106
109
|
Requires-Dist: types-tabulate; extra == 'dev'
|
|
107
110
|
Requires-Dist: uv==0.4.8; extra == 'dev'
|
|
108
111
|
Requires-Dist: uvloop; (platform_system != 'Windows') and extra == 'dev'
|
|
@@ -179,30 +182,30 @@ Phoenix container images are available via [Docker Hub](https://hub.docker.com/r
|
|
|
179
182
|
|
|
180
183
|
## Features
|
|
181
184
|
|
|
182
|
-
| Key Features | Availability
|
|
183
|
-
| ---------------------------------------------------------------------------------------------------------------- |
|
|
184
|
-
| [Tracing](https://docs.arize.com/phoenix/tracing/concepts-tracing/what-are-traces) | ✅
|
|
185
|
-
| [Evaluation](https://docs.arize.com/phoenix/evaluation/llm-evals) | ✅
|
|
186
|
-
| [Retrieval (RAG) Analysis](https://docs.arize.com/phoenix/tracing/use-cases-tracing/rag-evaluation) | ✅
|
|
187
|
-
| [Datasets](https://docs.arize.com/phoenix/datasets-and-experiments/overview-datasets) | ✅
|
|
188
|
-
| [Fine-Tuning Export](https://docs.arize.com/phoenix/datasets-and-experiments/how-to-datasets/exporting-datasets) | ✅
|
|
189
|
-
| [Annotations](https://docs.arize.com/phoenix/tracing/concepts-tracing/how-to-annotate-traces) | ✅
|
|
190
|
-
| [Human Feedback](https://docs.arize.com/phoenix/tracing/how-to-tracing/capture-feedback) | ✅
|
|
191
|
-
| [Experiments](https://docs.arize.com/phoenix/datasets-and-experiments/how-to-experiments/run-experiments) | ✅
|
|
192
|
-
| [Embeddings Analysis](https://docs.arize.com/phoenix/inferences/phoenix-inferences) | ✅
|
|
193
|
-
| [Data Export](https://docs.arize.com/phoenix/tracing/how-to-tracing/extract-data-from-spans) | ✅
|
|
194
|
-
| REST API | ✅
|
|
195
|
-
| GraphQL API | ✅
|
|
196
|
-
| Data Retention | Customizable
|
|
197
|
-
| [Authentication](https://docs.arize.com/phoenix/deployment/authentication) | ✅
|
|
198
|
-
| [Social Login](https://docs.arize.com/phoenix/deployment/authentication#configuring-oauth2-identity-providers) | ✅
|
|
199
|
-
| [RBAC](https://docs.arize.com/phoenix/deployment/authentication#permissions) | ✅
|
|
200
|
-
| Projects | ✅
|
|
201
|
-
| [Self-Hosting](https://docs.arize.com/phoenix/deployment) | ✅
|
|
202
|
-
| Jupyter Notebooks | ✅
|
|
203
|
-
| [Prompt Playground](https://docs.arize.com/phoenix/prompt-engineering/overview-prompts) | ✅
|
|
204
|
-
| [Sessions](https://docs.arize.com/phoenix/tracing/how-to-tracing/setup-sessions) | ✅
|
|
205
|
-
| Prompt Management |
|
|
185
|
+
| Key Features | Availability |
|
|
186
|
+
| ---------------------------------------------------------------------------------------------------------------- | ------------ |
|
|
187
|
+
| [Tracing](https://docs.arize.com/phoenix/tracing/concepts-tracing/what-are-traces) | ✅ |
|
|
188
|
+
| [Evaluation](https://docs.arize.com/phoenix/evaluation/llm-evals) | ✅ |
|
|
189
|
+
| [Retrieval (RAG) Analysis](https://docs.arize.com/phoenix/tracing/use-cases-tracing/rag-evaluation) | ✅ |
|
|
190
|
+
| [Datasets](https://docs.arize.com/phoenix/datasets-and-experiments/overview-datasets) | ✅ |
|
|
191
|
+
| [Fine-Tuning Export](https://docs.arize.com/phoenix/datasets-and-experiments/how-to-datasets/exporting-datasets) | ✅ |
|
|
192
|
+
| [Annotations](https://docs.arize.com/phoenix/tracing/concepts-tracing/how-to-annotate-traces) | ✅ |
|
|
193
|
+
| [Human Feedback](https://docs.arize.com/phoenix/tracing/how-to-tracing/capture-feedback) | ✅ |
|
|
194
|
+
| [Experiments](https://docs.arize.com/phoenix/datasets-and-experiments/how-to-experiments/run-experiments) | ✅ |
|
|
195
|
+
| [Embeddings Analysis](https://docs.arize.com/phoenix/inferences/phoenix-inferences) | ✅ |
|
|
196
|
+
| [Data Export](https://docs.arize.com/phoenix/tracing/how-to-tracing/extract-data-from-spans) | ✅ |
|
|
197
|
+
| REST API | ✅ |
|
|
198
|
+
| GraphQL API | ✅ |
|
|
199
|
+
| Data Retention | Customizable |
|
|
200
|
+
| [Authentication](https://docs.arize.com/phoenix/deployment/authentication) | ✅ |
|
|
201
|
+
| [Social Login](https://docs.arize.com/phoenix/deployment/authentication#configuring-oauth2-identity-providers) | ✅ |
|
|
202
|
+
| [RBAC](https://docs.arize.com/phoenix/deployment/authentication#permissions) | ✅ |
|
|
203
|
+
| Projects | ✅ |
|
|
204
|
+
| [Self-Hosting](https://docs.arize.com/phoenix/deployment) | ✅ |
|
|
205
|
+
| Jupyter Notebooks | ✅ |
|
|
206
|
+
| [Prompt Playground](https://docs.arize.com/phoenix/prompt-engineering/overview-prompts) | ✅ |
|
|
207
|
+
| [Sessions](https://docs.arize.com/phoenix/tracing/how-to-tracing/setup-sessions) | ✅ |
|
|
208
|
+
| Prompt Management | ✅ |
|
|
206
209
|
|
|
207
210
|
## Tracing Integrations
|
|
208
211
|
|
|
@@ -257,6 +260,6 @@ See the [migration guide](./MIGRATION.md) for a list of breaking changes.
|
|
|
257
260
|
|
|
258
261
|
Copyright 2024 Arize AI, Inc. All Rights Reserved.
|
|
259
262
|
|
|
260
|
-
Portions of this code are patent protected by one or more U.S. Patents. See [IP_NOTICE](https://github.com/Arize-ai/phoenix/blob/main/IP_NOTICE).
|
|
263
|
+
Portions of this code are patent protected by one or more U.S. Patents. See the [IP_NOTICE](https://github.com/Arize-ai/phoenix/blob/main/IP_NOTICE).
|
|
261
264
|
|
|
262
265
|
This software is licensed under the terms of the Elastic License 2.0 (ELv2). See [LICENSE](https://github.com/Arize-ai/phoenix/blob/main/LICENSE).
|
|
@@ -53,30 +53,30 @@ Phoenix container images are available via [Docker Hub](https://hub.docker.com/r
|
|
|
53
53
|
|
|
54
54
|
## Features
|
|
55
55
|
|
|
56
|
-
| Key Features | Availability
|
|
57
|
-
| ---------------------------------------------------------------------------------------------------------------- |
|
|
58
|
-
| [Tracing](https://docs.arize.com/phoenix/tracing/concepts-tracing/what-are-traces) | ✅
|
|
59
|
-
| [Evaluation](https://docs.arize.com/phoenix/evaluation/llm-evals) | ✅
|
|
60
|
-
| [Retrieval (RAG) Analysis](https://docs.arize.com/phoenix/tracing/use-cases-tracing/rag-evaluation) | ✅
|
|
61
|
-
| [Datasets](https://docs.arize.com/phoenix/datasets-and-experiments/overview-datasets) | ✅
|
|
62
|
-
| [Fine-Tuning Export](https://docs.arize.com/phoenix/datasets-and-experiments/how-to-datasets/exporting-datasets) | ✅
|
|
63
|
-
| [Annotations](https://docs.arize.com/phoenix/tracing/concepts-tracing/how-to-annotate-traces) | ✅
|
|
64
|
-
| [Human Feedback](https://docs.arize.com/phoenix/tracing/how-to-tracing/capture-feedback) | ✅
|
|
65
|
-
| [Experiments](https://docs.arize.com/phoenix/datasets-and-experiments/how-to-experiments/run-experiments) | ✅
|
|
66
|
-
| [Embeddings Analysis](https://docs.arize.com/phoenix/inferences/phoenix-inferences) | ✅
|
|
67
|
-
| [Data Export](https://docs.arize.com/phoenix/tracing/how-to-tracing/extract-data-from-spans) | ✅
|
|
68
|
-
| REST API | ✅
|
|
69
|
-
| GraphQL API | ✅
|
|
70
|
-
| Data Retention | Customizable
|
|
71
|
-
| [Authentication](https://docs.arize.com/phoenix/deployment/authentication) | ✅
|
|
72
|
-
| [Social Login](https://docs.arize.com/phoenix/deployment/authentication#configuring-oauth2-identity-providers) | ✅
|
|
73
|
-
| [RBAC](https://docs.arize.com/phoenix/deployment/authentication#permissions) | ✅
|
|
74
|
-
| Projects | ✅
|
|
75
|
-
| [Self-Hosting](https://docs.arize.com/phoenix/deployment) | ✅
|
|
76
|
-
| Jupyter Notebooks | ✅
|
|
77
|
-
| [Prompt Playground](https://docs.arize.com/phoenix/prompt-engineering/overview-prompts) | ✅
|
|
78
|
-
| [Sessions](https://docs.arize.com/phoenix/tracing/how-to-tracing/setup-sessions) | ✅
|
|
79
|
-
| Prompt Management |
|
|
56
|
+
| Key Features | Availability |
|
|
57
|
+
| ---------------------------------------------------------------------------------------------------------------- | ------------ |
|
|
58
|
+
| [Tracing](https://docs.arize.com/phoenix/tracing/concepts-tracing/what-are-traces) | ✅ |
|
|
59
|
+
| [Evaluation](https://docs.arize.com/phoenix/evaluation/llm-evals) | ✅ |
|
|
60
|
+
| [Retrieval (RAG) Analysis](https://docs.arize.com/phoenix/tracing/use-cases-tracing/rag-evaluation) | ✅ |
|
|
61
|
+
| [Datasets](https://docs.arize.com/phoenix/datasets-and-experiments/overview-datasets) | ✅ |
|
|
62
|
+
| [Fine-Tuning Export](https://docs.arize.com/phoenix/datasets-and-experiments/how-to-datasets/exporting-datasets) | ✅ |
|
|
63
|
+
| [Annotations](https://docs.arize.com/phoenix/tracing/concepts-tracing/how-to-annotate-traces) | ✅ |
|
|
64
|
+
| [Human Feedback](https://docs.arize.com/phoenix/tracing/how-to-tracing/capture-feedback) | ✅ |
|
|
65
|
+
| [Experiments](https://docs.arize.com/phoenix/datasets-and-experiments/how-to-experiments/run-experiments) | ✅ |
|
|
66
|
+
| [Embeddings Analysis](https://docs.arize.com/phoenix/inferences/phoenix-inferences) | ✅ |
|
|
67
|
+
| [Data Export](https://docs.arize.com/phoenix/tracing/how-to-tracing/extract-data-from-spans) | ✅ |
|
|
68
|
+
| REST API | ✅ |
|
|
69
|
+
| GraphQL API | ✅ |
|
|
70
|
+
| Data Retention | Customizable |
|
|
71
|
+
| [Authentication](https://docs.arize.com/phoenix/deployment/authentication) | ✅ |
|
|
72
|
+
| [Social Login](https://docs.arize.com/phoenix/deployment/authentication#configuring-oauth2-identity-providers) | ✅ |
|
|
73
|
+
| [RBAC](https://docs.arize.com/phoenix/deployment/authentication#permissions) | ✅ |
|
|
74
|
+
| Projects | ✅ |
|
|
75
|
+
| [Self-Hosting](https://docs.arize.com/phoenix/deployment) | ✅ |
|
|
76
|
+
| Jupyter Notebooks | ✅ |
|
|
77
|
+
| [Prompt Playground](https://docs.arize.com/phoenix/prompt-engineering/overview-prompts) | ✅ |
|
|
78
|
+
| [Sessions](https://docs.arize.com/phoenix/tracing/how-to-tracing/setup-sessions) | ✅ |
|
|
79
|
+
| Prompt Management | ✅ |
|
|
80
80
|
|
|
81
81
|
## Tracing Integrations
|
|
82
82
|
|
|
@@ -131,6 +131,6 @@ See the [migration guide](./MIGRATION.md) for a list of breaking changes.
|
|
|
131
131
|
|
|
132
132
|
Copyright 2024 Arize AI, Inc. All Rights Reserved.
|
|
133
133
|
|
|
134
|
-
Portions of this code are patent protected by one or more U.S. Patents. See [IP_NOTICE](https://github.com/Arize-ai/phoenix/blob/main/IP_NOTICE).
|
|
134
|
+
Portions of this code are patent protected by one or more U.S. Patents. See the [IP_NOTICE](https://github.com/Arize-ai/phoenix/blob/main/IP_NOTICE).
|
|
135
135
|
|
|
136
136
|
This software is licensed under the terms of the Elastic License 2.0 (ELv2). See [LICENSE](https://github.com/Arize-ai/phoenix/blob/main/LICENSE).
|
|
@@ -55,9 +55,11 @@ dependencies = [
|
|
|
55
55
|
"arize-phoenix-evals>=0.13.1",
|
|
56
56
|
"arize-phoenix-otel>=0.5.1",
|
|
57
57
|
"fastapi",
|
|
58
|
-
"pydantic>=1.0
|
|
58
|
+
"pydantic>=2.1.0", # exclude 2.0.* since it does not support the `json_encoders` configuration setting
|
|
59
59
|
"authlib",
|
|
60
60
|
"websockets",
|
|
61
|
+
"jsonschema>=4.0.0,<=4.23.0", # the upper bound is to keep us off the bleeding edge in case there's a regression since this controls what gets written to the database
|
|
62
|
+
"arize-phoenix-client",
|
|
61
63
|
]
|
|
62
64
|
dynamic = ["version"]
|
|
63
65
|
|
|
@@ -92,7 +94,7 @@ dev = [
|
|
|
92
94
|
"arize[AutoEmbeddings, LLM_Evaluation]",
|
|
93
95
|
"llama-index>=0.10.3",
|
|
94
96
|
"langchain>=0.0.334",
|
|
95
|
-
"litellm>=1.0.3",
|
|
97
|
+
"litellm>=1.0.3,<1.57.5", # windows compatibility broken on 1.57.5 (https://github.com/BerriAI/litellm/issues/7677)
|
|
96
98
|
"google-cloud-aiplatform>=1.3",
|
|
97
99
|
"anthropic",
|
|
98
100
|
"prometheus_client",
|
|
@@ -101,6 +103,7 @@ dev = [
|
|
|
101
103
|
"portpicker",
|
|
102
104
|
"uvloop; platform_system != 'Windows'",
|
|
103
105
|
"grpc-interceptor[testing]",
|
|
106
|
+
"types-jsonschema",
|
|
104
107
|
]
|
|
105
108
|
embeddings = [
|
|
106
109
|
"fast-hdbscan>=0.2.0",
|
|
@@ -162,8 +162,8 @@ ENV_PHOENIX_GRPC_INTERCEPTOR_PATHS = "PHOENIX_GRPC_INTERCEPTOR_PATHS"
|
|
|
162
162
|
|
|
163
163
|
def server_instrumentation_is_enabled() -> bool:
|
|
164
164
|
return bool(
|
|
165
|
-
|
|
166
|
-
) or bool(
|
|
165
|
+
getenv(ENV_PHOENIX_SERVER_INSTRUMENTATION_OTLP_TRACE_COLLECTOR_HTTP_ENDPOINT)
|
|
166
|
+
) or bool(getenv(ENV_PHOENIX_SERVER_INSTRUMENTATION_OTLP_TRACE_COLLECTOR_GRPC_ENDPOINT))
|
|
167
167
|
|
|
168
168
|
|
|
169
169
|
def _get_temp_path() -> Path:
|
|
@@ -192,7 +192,7 @@ def get_working_dir() -> Path:
|
|
|
192
192
|
"""
|
|
193
193
|
Get the working directory for saving, loading, and exporting datasets.
|
|
194
194
|
"""
|
|
195
|
-
working_dir_str =
|
|
195
|
+
working_dir_str = getenv(ENV_PHOENIX_WORKING_DIR)
|
|
196
196
|
if working_dir_str is not None:
|
|
197
197
|
return Path(working_dir_str)
|
|
198
198
|
# Fall back to ~/.phoenix if PHOENIX_WORKING_DIR is not set
|
|
@@ -207,7 +207,7 @@ def _bool_val(env_var: str, default: Optional[bool] = None) -> Optional[bool]:
|
|
|
207
207
|
"""
|
|
208
208
|
Parses a boolean environment variable, returning `default` if the variable is not set.
|
|
209
209
|
"""
|
|
210
|
-
if (value :=
|
|
210
|
+
if (value := getenv(env_var)) is None:
|
|
211
211
|
return default
|
|
212
212
|
assert (lower := value.lower()) in (
|
|
213
213
|
"true",
|
|
@@ -224,7 +224,7 @@ def _float_val(env_var: str, default: Optional[float] = None) -> Optional[float]
|
|
|
224
224
|
"""
|
|
225
225
|
Parses a numeric environment variable, returning `default` if the variable is not set.
|
|
226
226
|
"""
|
|
227
|
-
if (value :=
|
|
227
|
+
if (value := getenv(env_var)) is None:
|
|
228
228
|
return default
|
|
229
229
|
try:
|
|
230
230
|
return float(value)
|
|
@@ -243,7 +243,7 @@ def _int_val(env_var: str, default: Optional[int] = None) -> Optional[int]:
|
|
|
243
243
|
"""
|
|
244
244
|
Parses a numeric environment variable, returning `default` if the variable is not set.
|
|
245
245
|
"""
|
|
246
|
-
if (value :=
|
|
246
|
+
if (value := getenv(env_var)) is None:
|
|
247
247
|
return default
|
|
248
248
|
try:
|
|
249
249
|
return int(value)
|
|
@@ -254,6 +254,33 @@ def _int_val(env_var: str, default: Optional[int] = None) -> Optional[int]:
|
|
|
254
254
|
)
|
|
255
255
|
|
|
256
256
|
|
|
257
|
+
@overload
|
|
258
|
+
def getenv(key: str) -> Optional[str]: ...
|
|
259
|
+
@overload
|
|
260
|
+
def getenv(key: str, default: str) -> str: ...
|
|
261
|
+
def getenv(key: str, default: Optional[str] = None) -> Optional[str]:
|
|
262
|
+
"""
|
|
263
|
+
Retrieves the value of an environment variable.
|
|
264
|
+
|
|
265
|
+
Parameters
|
|
266
|
+
----------
|
|
267
|
+
key : str
|
|
268
|
+
The name of the environment variable.
|
|
269
|
+
default : Optional[str], optional
|
|
270
|
+
The default value to return if the environment variable is not set, by default None.
|
|
271
|
+
|
|
272
|
+
Returns
|
|
273
|
+
-------
|
|
274
|
+
Optional[str]
|
|
275
|
+
The value of the environment variable, or `default` if the variable is not set.
|
|
276
|
+
Leading and trailing whitespaces are stripped from the value, assuming they were
|
|
277
|
+
inadvertently added.
|
|
278
|
+
"""
|
|
279
|
+
if (value := os.getenv(key)) is None:
|
|
280
|
+
return default
|
|
281
|
+
return value.strip()
|
|
282
|
+
|
|
283
|
+
|
|
257
284
|
def get_env_enable_auth() -> bool:
|
|
258
285
|
"""
|
|
259
286
|
Gets the value of the PHOENIX_ENABLE_AUTH environment variable.
|
|
@@ -273,7 +300,7 @@ def get_env_phoenix_secret() -> Optional[str]:
|
|
|
273
300
|
Gets the value of the PHOENIX_SECRET environment variable
|
|
274
301
|
and performs validation.
|
|
275
302
|
"""
|
|
276
|
-
phoenix_secret =
|
|
303
|
+
phoenix_secret = getenv(ENV_PHOENIX_SECRET)
|
|
277
304
|
if phoenix_secret is None:
|
|
278
305
|
return None
|
|
279
306
|
from phoenix.auth import REQUIREMENTS_FOR_PHOENIX_SECRET
|
|
@@ -285,7 +312,7 @@ def get_env_phoenix_secret() -> Optional[str]:
|
|
|
285
312
|
def get_env_default_admin_initial_password() -> str:
|
|
286
313
|
from phoenix.auth import DEFAULT_ADMIN_PASSWORD
|
|
287
314
|
|
|
288
|
-
return
|
|
315
|
+
return getenv(ENV_PHOENIX_DEFAULT_ADMIN_INITIAL_PASSWORD) or DEFAULT_ADMIN_PASSWORD
|
|
289
316
|
|
|
290
317
|
|
|
291
318
|
def get_env_phoenix_use_secure_cookies() -> bool:
|
|
@@ -293,7 +320,7 @@ def get_env_phoenix_use_secure_cookies() -> bool:
|
|
|
293
320
|
|
|
294
321
|
|
|
295
322
|
def get_env_phoenix_api_key() -> Optional[str]:
|
|
296
|
-
return
|
|
323
|
+
return getenv(ENV_PHOENIX_API_KEY)
|
|
297
324
|
|
|
298
325
|
|
|
299
326
|
def get_env_auth_settings() -> tuple[bool, Optional[str]]:
|
|
@@ -354,7 +381,7 @@ def get_env_refresh_token_expiry() -> timedelta:
|
|
|
354
381
|
|
|
355
382
|
def get_env_csrf_trusted_origins() -> list[str]:
|
|
356
383
|
origins: list[str] = []
|
|
357
|
-
if not (csrf_trusted_origins :=
|
|
384
|
+
if not (csrf_trusted_origins := getenv(ENV_PHOENIX_CSRF_TRUSTED_ORIGINS)):
|
|
358
385
|
return origins
|
|
359
386
|
for origin in csrf_trusted_origins.split(","):
|
|
360
387
|
if not origin:
|
|
@@ -369,19 +396,19 @@ def get_env_csrf_trusted_origins() -> list[str]:
|
|
|
369
396
|
|
|
370
397
|
|
|
371
398
|
def get_env_smtp_username() -> str:
|
|
372
|
-
return
|
|
399
|
+
return getenv(ENV_PHOENIX_SMTP_USERNAME, "")
|
|
373
400
|
|
|
374
401
|
|
|
375
402
|
def get_env_smtp_password() -> str:
|
|
376
|
-
return
|
|
403
|
+
return getenv(ENV_PHOENIX_SMTP_PASSWORD, "")
|
|
377
404
|
|
|
378
405
|
|
|
379
406
|
def get_env_smtp_mail_from() -> str:
|
|
380
|
-
return
|
|
407
|
+
return getenv(ENV_PHOENIX_SMTP_MAIL_FROM) or "noreply@arize.com"
|
|
381
408
|
|
|
382
409
|
|
|
383
410
|
def get_env_smtp_hostname() -> str:
|
|
384
|
-
return
|
|
411
|
+
return getenv(ENV_PHOENIX_SMTP_HOSTNAME, "")
|
|
385
412
|
|
|
386
413
|
|
|
387
414
|
def get_env_smtp_port() -> int:
|
|
@@ -410,16 +437,14 @@ class OAuth2ClientConfig:
|
|
|
410
437
|
def from_env(cls, idp_name: str) -> "OAuth2ClientConfig":
|
|
411
438
|
idp_name_upper = idp_name.upper()
|
|
412
439
|
if not (
|
|
413
|
-
client_id :=
|
|
414
|
-
client_id_env_var := f"PHOENIX_OAUTH2_{idp_name_upper}_CLIENT_ID"
|
|
415
|
-
)
|
|
440
|
+
client_id := getenv(client_id_env_var := f"PHOENIX_OAUTH2_{idp_name_upper}_CLIENT_ID")
|
|
416
441
|
):
|
|
417
442
|
raise ValueError(
|
|
418
443
|
f"A client id must be set for the {idp_name} OAuth2 IDP "
|
|
419
444
|
f"via the {client_id_env_var} environment variable"
|
|
420
445
|
)
|
|
421
446
|
if not (
|
|
422
|
-
client_secret :=
|
|
447
|
+
client_secret := getenv(
|
|
423
448
|
client_secret_env_var := f"PHOENIX_OAUTH2_{idp_name_upper}_CLIENT_SECRET"
|
|
424
449
|
)
|
|
425
450
|
):
|
|
@@ -429,7 +454,7 @@ class OAuth2ClientConfig:
|
|
|
429
454
|
)
|
|
430
455
|
if not (
|
|
431
456
|
oidc_config_url := (
|
|
432
|
-
|
|
457
|
+
getenv(
|
|
433
458
|
oidc_config_url_env_var := f"PHOENIX_OAUTH2_{idp_name_upper}_OIDC_CONFIG_URL",
|
|
434
459
|
)
|
|
435
460
|
)
|
|
@@ -447,7 +472,7 @@ class OAuth2ClientConfig:
|
|
|
447
472
|
)
|
|
448
473
|
return cls(
|
|
449
474
|
idp_name=idp_name,
|
|
450
|
-
idp_display_name=
|
|
475
|
+
idp_display_name=getenv(
|
|
451
476
|
f"PHOENIX_OAUTH2_{idp_name_upper}_DISPLAY_NAME",
|
|
452
477
|
_get_default_idp_display_name(idp_name),
|
|
453
478
|
),
|
|
@@ -541,7 +566,7 @@ def get_exported_files(directory: Path) -> list[Path]:
|
|
|
541
566
|
|
|
542
567
|
|
|
543
568
|
def get_env_port() -> int:
|
|
544
|
-
if not (port :=
|
|
569
|
+
if not (port := getenv(ENV_PHOENIX_PORT)):
|
|
545
570
|
return PORT
|
|
546
571
|
if port.isnumeric():
|
|
547
572
|
return int(port)
|
|
@@ -560,7 +585,7 @@ def get_env_port() -> int:
|
|
|
560
585
|
|
|
561
586
|
|
|
562
587
|
def get_env_grpc_port() -> int:
|
|
563
|
-
if not (port :=
|
|
588
|
+
if not (port := getenv(ENV_PHOENIX_GRPC_PORT)):
|
|
564
589
|
return GRPC_PORT
|
|
565
590
|
if port.isnumeric():
|
|
566
591
|
return int(port)
|
|
@@ -571,11 +596,11 @@ def get_env_grpc_port() -> int:
|
|
|
571
596
|
|
|
572
597
|
|
|
573
598
|
def get_env_host() -> str:
|
|
574
|
-
return
|
|
599
|
+
return getenv(ENV_PHOENIX_HOST) or HOST
|
|
575
600
|
|
|
576
601
|
|
|
577
602
|
def get_env_host_root_path() -> str:
|
|
578
|
-
if (host_root_path :=
|
|
603
|
+
if (host_root_path := getenv(ENV_PHOENIX_HOST_ROOT_PATH)) is None:
|
|
579
604
|
return HOST_ROOT_PATH
|
|
580
605
|
if not host_root_path.startswith("/"):
|
|
581
606
|
raise ValueError(
|
|
@@ -591,15 +616,15 @@ def get_env_host_root_path() -> str:
|
|
|
591
616
|
|
|
592
617
|
|
|
593
618
|
def get_env_collector_endpoint() -> Optional[str]:
|
|
594
|
-
return
|
|
619
|
+
return getenv(ENV_PHOENIX_COLLECTOR_ENDPOINT)
|
|
595
620
|
|
|
596
621
|
|
|
597
622
|
def get_env_project_name() -> str:
|
|
598
|
-
return
|
|
623
|
+
return getenv(ENV_PHOENIX_PROJECT_NAME, DEFAULT_PROJECT_NAME)
|
|
599
624
|
|
|
600
625
|
|
|
601
626
|
def get_env_database_connection_str() -> str:
|
|
602
|
-
env_url =
|
|
627
|
+
env_url = getenv(ENV_PHOENIX_SQL_DATABASE_URL)
|
|
603
628
|
if env_url is None:
|
|
604
629
|
working_dir = get_working_dir()
|
|
605
630
|
return f"sqlite:///{working_dir}/phoenix.db"
|
|
@@ -609,11 +634,11 @@ def get_env_database_connection_str() -> str:
|
|
|
609
634
|
def get_env_database_schema() -> Optional[str]:
|
|
610
635
|
if get_env_database_connection_str().startswith("sqlite"):
|
|
611
636
|
return None
|
|
612
|
-
return
|
|
637
|
+
return getenv(ENV_PHOENIX_SQL_DATABASE_SCHEMA)
|
|
613
638
|
|
|
614
639
|
|
|
615
640
|
def get_env_enable_prometheus() -> bool:
|
|
616
|
-
if (enable_promotheus :=
|
|
641
|
+
if (enable_promotheus := getenv(ENV_PHOENIX_ENABLE_PROMETHEUS)) is None or (
|
|
617
642
|
enable_promotheus_lower := enable_promotheus.lower()
|
|
618
643
|
) == "false":
|
|
619
644
|
return False
|
|
@@ -626,7 +651,7 @@ def get_env_enable_prometheus() -> bool:
|
|
|
626
651
|
|
|
627
652
|
|
|
628
653
|
def get_env_client_headers() -> dict[str, str]:
|
|
629
|
-
headers = parse_env_headers(
|
|
654
|
+
headers = parse_env_headers(getenv(ENV_PHOENIX_CLIENT_HEADERS))
|
|
630
655
|
if (api_key := get_env_phoenix_api_key()) and "authorization" not in [
|
|
631
656
|
k.lower() for k in headers
|
|
632
657
|
]:
|
|
@@ -661,7 +686,7 @@ class LoggingMode(Enum):
|
|
|
661
686
|
|
|
662
687
|
|
|
663
688
|
def get_env_logging_mode() -> LoggingMode:
|
|
664
|
-
if (logging_mode :=
|
|
689
|
+
if (logging_mode := getenv(ENV_LOGGING_MODE)) is None:
|
|
665
690
|
return LoggingMode.DEFAULT
|
|
666
691
|
try:
|
|
667
692
|
return LoggingMode(logging_mode.lower().strip())
|
|
@@ -688,7 +713,7 @@ def get_env_db_logging_level() -> int:
|
|
|
688
713
|
|
|
689
714
|
|
|
690
715
|
def get_env_fastapi_middleware_paths() -> list[tuple[str, str]]:
|
|
691
|
-
env_value =
|
|
716
|
+
env_value = getenv(ENV_PHOENIX_FASTAPI_MIDDLEWARE_PATHS, "")
|
|
692
717
|
paths = []
|
|
693
718
|
for entry in env_value.split(","):
|
|
694
719
|
entry = entry.strip()
|
|
@@ -703,7 +728,7 @@ def get_env_fastapi_middleware_paths() -> list[tuple[str, str]]:
|
|
|
703
728
|
|
|
704
729
|
|
|
705
730
|
def get_env_gql_extension_paths() -> list[tuple[str, str]]:
|
|
706
|
-
env_value =
|
|
731
|
+
env_value = getenv(ENV_PHOENIX_GQL_EXTENSION_PATHS, "")
|
|
707
732
|
paths = []
|
|
708
733
|
for entry in env_value.split(","):
|
|
709
734
|
entry = entry.strip()
|
|
@@ -718,7 +743,7 @@ def get_env_gql_extension_paths() -> list[tuple[str, str]]:
|
|
|
718
743
|
|
|
719
744
|
|
|
720
745
|
def get_env_grpc_interceptor_paths() -> list[tuple[str, str]]:
|
|
721
|
-
env_value =
|
|
746
|
+
env_value = getenv(ENV_PHOENIX_GRPC_INTERCEPTOR_PATHS, "")
|
|
722
747
|
paths = []
|
|
723
748
|
for entry in env_value.split(","):
|
|
724
749
|
entry = entry.strip()
|
|
@@ -733,7 +758,7 @@ def get_env_grpc_interceptor_paths() -> list[tuple[str, str]]:
|
|
|
733
758
|
|
|
734
759
|
|
|
735
760
|
def _get_logging_level(env_var: str, default_level: int) -> int:
|
|
736
|
-
logging_level =
|
|
761
|
+
logging_level = getenv(env_var)
|
|
737
762
|
if not logging_level:
|
|
738
763
|
return default_level
|
|
739
764
|
|
|
@@ -753,7 +778,7 @@ def _get_logging_level(env_var: str, default_level: int) -> int:
|
|
|
753
778
|
|
|
754
779
|
|
|
755
780
|
def get_env_log_migrations() -> bool:
|
|
756
|
-
log_migrations =
|
|
781
|
+
log_migrations = getenv(ENV_LOG_MIGRATIONS)
|
|
757
782
|
# Default to True
|
|
758
783
|
if log_migrations is None:
|
|
759
784
|
return True
|