arize-phoenix 2.3.0__tar.gz → 2.4.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of arize-phoenix might be problematic. Click here for more details.
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/PKG-INFO +1 -1
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/pyproject.toml +1 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/config.py +1 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/evaluators.py +3 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/functions/classify.py +6 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/functions/generate.py +3 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/models/base.py +3 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/models/openai.py +3 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/models/vertex.py +26 -4
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/static/index.js +454 -438
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/session/evaluation.py +7 -5
- arize_phoenix-2.4.1/src/phoenix/trace/__init__.py +10 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/llama_index/callback.py +17 -8
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/span_evaluations.py +112 -1
- arize_phoenix-2.4.1/src/phoenix/version.py +1 -0
- arize_phoenix-2.3.0/src/phoenix/trace/__init__.py +0 -4
- arize_phoenix-2.3.0/src/phoenix/version.py +0 -1
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/.gitignore +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/IP_NOTICE +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/LICENSE +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/README.md +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/core/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/core/embedding_dimension.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/core/evals.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/core/model.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/core/model_schema.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/core/model_schema_adapter.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/core/traces.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/datasets/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/datasets/dataset.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/datasets/errors.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/datasets/fixtures.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/datasets/schema.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/datasets/validation.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/datetime_utils.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/exceptions.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/functions/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/functions/executor.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/functions/processing.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/models/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/models/anthropic.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/models/bedrock.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/models/litellm.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/models/rate_limiters.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/models/vertexai.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/retrievals.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/templates/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/templates/default_templates.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/templates/template.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/utils/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/utils/threads.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/metrics/README.md +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/metrics/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/metrics/binning.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/metrics/metrics.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/metrics/mixins.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/metrics/retrieval_metrics.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/metrics/timeseries.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/metrics/wrappers.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/pointcloud/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/pointcloud/clustering.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/pointcloud/pointcloud.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/pointcloud/projectors.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/pointcloud/umap_parameters.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/py.typed +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/context.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/helpers.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/input_types/ClusterInput.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/input_types/Coordinates.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/input_types/DataQualityMetricInput.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/input_types/DimensionFilter.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/input_types/DimensionInput.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/input_types/Granularity.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/input_types/PerformanceMetricInput.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/input_types/SpanSort.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/input_types/TimeRange.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/input_types/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/interceptor.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/schema.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/Cluster.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/DataQualityMetric.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/Dataset.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/DatasetInfo.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/DatasetRole.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/DatasetValues.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/Dimension.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/DimensionDataType.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/DimensionShape.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/DimensionType.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/DimensionWithValue.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/DocumentEvaluationSummary.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/DocumentRetrievalMetrics.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/EmbeddingDimension.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/EmbeddingMetadata.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/Evaluation.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/EvaluationSummary.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/Event.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/EventMetadata.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/ExportEventsMutation.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/ExportedFile.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/Functionality.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/MimeType.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/Model.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/NumericRange.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/PerformanceMetric.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/PromptResponse.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/Retrieval.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/ScalarDriftMetricEnum.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/Segments.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/SortDir.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/Span.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/TimeSeries.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/UMAPPoints.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/ValidationResult.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/VectorDriftMetricEnum.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/node.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/api/types/pagination.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/app.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/evaluation_handler.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/main.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/span_handler.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/static/apple-touch-icon-114x114.png +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/static/apple-touch-icon-120x120.png +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/static/apple-touch-icon-144x144.png +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/static/apple-touch-icon-152x152.png +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/static/apple-touch-icon-180x180.png +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/static/apple-touch-icon-72x72.png +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/static/apple-touch-icon-76x76.png +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/static/apple-touch-icon.png +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/static/favicon.ico +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/static/index.css +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/static/modernizr.js +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/templates/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/templates/index.html +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/thread_server.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/server/trace_handler.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/services.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/session/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/session/session.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/dsl/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/dsl/filter.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/dsl/helpers.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/dsl/missing.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/dsl/query.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/evaluation_conventions.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/exporter.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/fixtures.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/langchain/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/langchain/instrumentor.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/langchain/tracer.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/llama_index/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/llama_index/debug_callback.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/llama_index/streaming.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/openai/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/openai/instrumentor.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/otel.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/schemas.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/semantic_conventions.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/span_json_decoder.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/span_json_encoder.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/trace_dataset.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/tracer.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/utils.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/v1/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/v1/evaluation_pb2.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/trace/v1/evaluation_pb2.pyi +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/utilities/__init__.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/utilities/error_handling.py +0 -0
- {arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/utilities/logging.py +0 -0
{arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/functions/classify.py
RENAMED
|
@@ -127,6 +127,9 @@ def llm_classify(
|
|
|
127
127
|
from the entries in the rails argument or "NOT_PARSABLE" if the model's output could
|
|
128
128
|
not be parsed.
|
|
129
129
|
"""
|
|
130
|
+
# clients need to be reloaded to ensure that async evals work properly
|
|
131
|
+
model.reload_client()
|
|
132
|
+
|
|
130
133
|
tqdm_bar_format = get_tqdm_progress_bar_formatter("llm_classify")
|
|
131
134
|
use_openai_function_call = (
|
|
132
135
|
use_function_calling_if_available
|
|
@@ -385,6 +388,9 @@ def run_evals(
|
|
|
385
388
|
List[DataFrame]: A list of dataframes, one for each evaluator, all of
|
|
386
389
|
which have the same number of rows as the input dataframe.
|
|
387
390
|
"""
|
|
391
|
+
# clients need to be reloaded to ensure that async evals work properly
|
|
392
|
+
for evaluator in evaluators:
|
|
393
|
+
evaluator.reload_client()
|
|
388
394
|
|
|
389
395
|
async def _arun_eval(
|
|
390
396
|
payload: RunEvalsPayload,
|
{arize_phoenix-2.3.0 → arize_phoenix-2.4.1}/src/phoenix/experimental/evals/functions/generate.py
RENAMED
|
@@ -78,6 +78,9 @@ def llm_generate(
|
|
|
78
78
|
represents the generated output
|
|
79
79
|
|
|
80
80
|
"""
|
|
81
|
+
# clients need to be reloaded to ensure that async evals work properly
|
|
82
|
+
model.reload_client()
|
|
83
|
+
|
|
81
84
|
tqdm_bar_format = get_tqdm_progress_bar_formatter("llm_generate")
|
|
82
85
|
output_parser = output_parser or _no_op_parser
|
|
83
86
|
template = normalize_prompt_template(template)
|
|
@@ -4,6 +4,7 @@ from typing import TYPE_CHECKING, Any, Dict, List
|
|
|
4
4
|
|
|
5
5
|
from phoenix.experimental.evals.models.base import BaseEvalModel
|
|
6
6
|
from phoenix.experimental.evals.models.rate_limiters import RateLimiter
|
|
7
|
+
from phoenix.utilities.logging import printif
|
|
7
8
|
|
|
8
9
|
if TYPE_CHECKING:
|
|
9
10
|
from tiktoken import Encoding
|
|
@@ -125,8 +126,7 @@ class GeminiModel(BaseEvalModel):
|
|
|
125
126
|
response = self._model.generate_content(
|
|
126
127
|
contents=prompt, generation_config=generation_config, **kwargs
|
|
127
128
|
)
|
|
128
|
-
|
|
129
|
-
return candidate.text
|
|
129
|
+
return self._parse_response_candidates(response)
|
|
130
130
|
|
|
131
131
|
return _completion_with_retry(**kwargs)
|
|
132
132
|
|
|
@@ -149,7 +149,29 @@ class GeminiModel(BaseEvalModel):
|
|
|
149
149
|
response = await self._model.generate_content_async(
|
|
150
150
|
contents=prompt, generation_config=generation_config, **kwargs
|
|
151
151
|
)
|
|
152
|
-
|
|
153
|
-
return candidate.text
|
|
152
|
+
return self._parse_response_candidates(response)
|
|
154
153
|
|
|
155
154
|
return await _completion_with_retry(**kwargs)
|
|
155
|
+
|
|
156
|
+
def _parse_response_candidates(self, response: Any) -> Any:
|
|
157
|
+
if hasattr(response, "candidates"):
|
|
158
|
+
if isinstance(response.candidates, list) and len(response.candidates) > 0:
|
|
159
|
+
try:
|
|
160
|
+
candidate = response.candidates[0].text
|
|
161
|
+
except ValueError:
|
|
162
|
+
printif(
|
|
163
|
+
self._verbose, "The 'candidates' object does not have a 'text' attribute."
|
|
164
|
+
)
|
|
165
|
+
printif(self._verbose, response.candidates[0])
|
|
166
|
+
candidate = ""
|
|
167
|
+
else:
|
|
168
|
+
printif(
|
|
169
|
+
self._verbose,
|
|
170
|
+
"The 'candidates' attribute of 'response' is either not a list or is empty.",
|
|
171
|
+
)
|
|
172
|
+
printif(self._verbose, response)
|
|
173
|
+
candidate = ""
|
|
174
|
+
else:
|
|
175
|
+
printif(self._verbose, "The 'response' object does not have a 'candidates' attribute.")
|
|
176
|
+
candidate = ""
|
|
177
|
+
return candidate
|