judgeval 0.0.42__tar.gz → 0.0.43__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.
- {judgeval-0.0.42 → judgeval-0.0.43}/PKG-INFO +1 -1
- {judgeval-0.0.42 → judgeval-0.0.43}/pyproject.toml +1 -1
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/common/tracer.py +48 -10
- {judgeval-0.0.42 → judgeval-0.0.43}/.github/pull_request_template.md +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/.github/workflows/blocked-pr.yaml +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/.github/workflows/ci.yaml +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/.github/workflows/merge-branch-check.yaml +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/.github/workflows/release.yaml +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/.github/workflows/validate-branch.yaml +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/.gitignore +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/LICENSE.md +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/README.md +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/assets/Screenshot 2025-05-17 at 8.14.27/342/200/257PM.png" +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/assets/dataset_clustering_screenshot.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/assets/dataset_clustering_screenshot_dm.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/assets/datasets_preview_screenshot.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/assets/experiments_dashboard_screenshot.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/assets/experiments_page.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/assets/experiments_pagev2.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/assets/logo-dark.svg +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/assets/logo-light.svg +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/assets/monitoring_screenshot.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/assets/new_darkmode.svg +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/assets/new_lightmode.svg +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/assets/trace_demo.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/assets/trace_screenshot.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/README.md +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/alerts/notifications.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/alerts/platform_notifications.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/alerts/rules.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/api_reference/judgment_client.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/api_reference/trace.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/changelog/2025-04-21.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/clustering/clustering.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/compliance/certifications.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/development.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/essentials/code.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/essentials/images.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/essentials/markdown.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/essentials/navigation.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/essentials/reusable-snippets.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/essentials/settings.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/data_datasets.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/data_examples.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/data_sequences.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/experiment_comparisons.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/introduction.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/judges.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/scorers/agent/derailment.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/scorers/classifier_scorer.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/scorers/custom_scorers.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/scorers/default/answer_correctness.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/scorers/default/answer_relevancy.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/scorers/default/comparison.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/scorers/default/contextual_precision.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/scorers/default/contextual_recall.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/scorers/default/contextual_relevancy.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/scorers/default/execution_order.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/scorers/default/faithfulness.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/scorers/default/groundedness.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/scorers/default/json_correctness.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/scorers/default/summarization.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/scorers/introduction.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/unit_testing.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/favicon.svg +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/getting_started.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/annotation_queue_ui.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/basic_trace_example.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/checks-passed.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/cluster.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/cluster_button.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/create_aggressive_scorer.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/create_scorer.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/dashboard_annotation_queue_button.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/evaluation_diagram.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/experiment-comparison-page-2.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/experiment-page-comparison.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/experiment-popout-comparison.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/experiments-page-comparison-2.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/experiments-page-comparison.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/export-dataset.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/hero-dark.svg +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/hero-light.svg +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/notifications_page.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/online_eval_fault.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/reports_modal.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/synth_data_button.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/synth_data_window.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/images/trace_ss.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/integration/langgraph.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/introduction.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/judgment_cli/installation.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/judgment_cli/self-hosting.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/judgment_cli/supabase-org-id.png +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/logo/dark.svg +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/logo/light.svg +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/mint.json +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/monitoring/annotations.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/monitoring/introduction.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/monitoring/production_insights.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/monitoring/tracing.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/monitoring/tracing_s3.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/notebooks/create_dataset.ipynb +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/notebooks/create_scorer.ipynb +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/notebooks/demo.ipynb +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/notebooks/prompt_scorer.ipynb +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/notebooks/quickstart.ipynb +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/optimization/osiris_agent.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/quickstart.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/self_hosting/get_started.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/snippets/snippet-intro.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/docs/synthetic_data/synthetic_data.mdx +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/pytest.ini +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/.coveragerc +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/__init__.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/clients.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/common/__init__.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/common/exceptions.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/common/logger.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/common/s3_storage.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/common/utils.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/constants.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/data/__init__.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/data/custom_example.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/data/datasets/__init__.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/data/datasets/dataset.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/data/datasets/eval_dataset_client.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/data/example.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/data/result.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/data/scorer_data.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/data/tool.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/data/trace.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/data/trace_run.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/evaluation_run.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/integrations/langgraph.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/judges/__init__.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/judges/base_judge.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/judges/litellm_judge.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/judges/mixture_of_judges.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/judges/together_judge.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/judges/utils.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/judgment_client.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/rules.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/run_evaluation.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/__init__.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/api_scorer.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/exceptions.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorer.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/__init__.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/__init__.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/answer_correctness.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/answer_relevancy.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/classifier_scorer.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/comparison.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/contextual_precision.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/contextual_recall.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/contextual_relevancy.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/derailment_scorer.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/execution_order.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/faithfulness.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/groundedness.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/hallucination.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/instruction_adherence.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/json_correctness.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/summarization.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/tool_dependency.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/tool_order.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/classifiers/__init__.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/classifiers/text2sql/__init__.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/classifiers/text2sql/text2sql_scorer.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/prompt_scorer.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/score.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/utils.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/tracer/__init__.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/utils/alerts.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/utils/data_utils.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/version_check.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/update_version.py +0 -0
- {judgeval-0.0.42 → judgeval-0.0.43}/uv.lock +0 -0
@@ -2237,7 +2237,7 @@ def wrap(client: Any, trace_across_async_contexts: bool = Tracer.trace_across_as
|
|
2237
2237
|
Supports OpenAI, Together, Anthropic, and Google GenAI clients.
|
2238
2238
|
Patches both '.create' and Anthropic's '.stream' methods using a wrapper class.
|
2239
2239
|
"""
|
2240
|
-
span_name, original_create, original_responses_create, original_stream = _get_client_config(client)
|
2240
|
+
span_name, original_create, original_responses_create, original_stream, original_beta_parse = _get_client_config(client)
|
2241
2241
|
|
2242
2242
|
def _get_current_trace():
|
2243
2243
|
if trace_across_async_contexts:
|
@@ -2307,6 +2307,22 @@ def wrap(client: Any, trace_across_async_contexts: bool = Tracer.trace_across_as
|
|
2307
2307
|
_capture_exception_for_trace(span, sys.exc_info())
|
2308
2308
|
raise e
|
2309
2309
|
|
2310
|
+
async def traced_beta_parse_async(*args, **kwargs):
|
2311
|
+
current_trace = _get_current_trace()
|
2312
|
+
if not current_trace:
|
2313
|
+
return await original_beta_parse(*args, **kwargs)
|
2314
|
+
|
2315
|
+
with current_trace.span(span_name, span_type="llm") as span:
|
2316
|
+
is_streaming = _record_input_and_check_streaming(span, kwargs)
|
2317
|
+
|
2318
|
+
try:
|
2319
|
+
response_or_iterator = await original_beta_parse(*args, **kwargs)
|
2320
|
+
return _format_and_record_output(span, response_or_iterator, is_streaming, True, False)
|
2321
|
+
except Exception as e:
|
2322
|
+
_capture_exception_for_trace(span, sys.exc_info())
|
2323
|
+
raise e
|
2324
|
+
|
2325
|
+
|
2310
2326
|
# Async responses for OpenAI clients
|
2311
2327
|
async def traced_response_create_async(*args, **kwargs):
|
2312
2328
|
current_trace = _get_current_trace()
|
@@ -2354,6 +2370,21 @@ def wrap(client: Any, trace_across_async_contexts: bool = Tracer.trace_across_as
|
|
2354
2370
|
except Exception as e:
|
2355
2371
|
_capture_exception_for_trace(span, sys.exc_info())
|
2356
2372
|
raise e
|
2373
|
+
|
2374
|
+
def traced_beta_parse_sync(*args, **kwargs):
|
2375
|
+
current_trace = _get_current_trace()
|
2376
|
+
if not current_trace:
|
2377
|
+
return original_beta_parse(*args, **kwargs)
|
2378
|
+
|
2379
|
+
with current_trace.span(span_name, span_type="llm") as span:
|
2380
|
+
is_streaming = _record_input_and_check_streaming(span, kwargs)
|
2381
|
+
|
2382
|
+
try:
|
2383
|
+
response_or_iterator = original_beta_parse(*args, **kwargs)
|
2384
|
+
return _format_and_record_output(span, response_or_iterator, is_streaming, False, False)
|
2385
|
+
except Exception as e:
|
2386
|
+
_capture_exception_for_trace(span, sys.exc_info())
|
2387
|
+
raise e
|
2357
2388
|
|
2358
2389
|
def traced_response_create_sync(*args, **kwargs):
|
2359
2390
|
current_trace = _get_current_trace()
|
@@ -2392,7 +2423,7 @@ def wrap(client: Any, trace_across_async_contexts: bool = Tracer.trace_across_as
|
|
2392
2423
|
if hasattr(client, "responses") and hasattr(client.responses, "create"):
|
2393
2424
|
client.responses.create = traced_response_create_async
|
2394
2425
|
if hasattr(client, "beta") and hasattr(client.beta, "chat") and hasattr(client.beta.chat, "completions") and hasattr(client.beta.chat.completions, "parse"):
|
2395
|
-
client.beta.chat.completions.parse =
|
2426
|
+
client.beta.chat.completions.parse = traced_beta_parse_async
|
2396
2427
|
elif isinstance(client, AsyncAnthropic):
|
2397
2428
|
client.messages.create = traced_create_async
|
2398
2429
|
if original_stream:
|
@@ -2404,7 +2435,7 @@ def wrap(client: Any, trace_across_async_contexts: bool = Tracer.trace_across_as
|
|
2404
2435
|
if hasattr(client, "responses") and hasattr(client.responses, "create"):
|
2405
2436
|
client.responses.create = traced_response_create_sync
|
2406
2437
|
if hasattr(client, "beta") and hasattr(client.beta, "chat") and hasattr(client.beta.chat, "completions") and hasattr(client.beta.chat.completions, "parse"):
|
2407
|
-
client.beta.chat.completions.parse =
|
2438
|
+
client.beta.chat.completions.parse = traced_beta_parse_sync
|
2408
2439
|
elif isinstance(client, Anthropic):
|
2409
2440
|
client.messages.create = traced_create_sync
|
2410
2441
|
if original_stream:
|
@@ -2423,23 +2454,24 @@ def _get_client_config(client: ApiClient) -> tuple[str, callable, Optional[calla
|
|
2423
2454
|
client: An instance of OpenAI, Together, or Anthropic client
|
2424
2455
|
|
2425
2456
|
Returns:
|
2426
|
-
tuple: (span_name, create_method, stream_method)
|
2457
|
+
tuple: (span_name, create_method, responses_method, stream_method, beta_parse_method)
|
2427
2458
|
- span_name: String identifier for tracing
|
2428
2459
|
- create_method: Reference to the client's creation method
|
2429
2460
|
- responses_method: Reference to the client's responses method (if applicable)
|
2430
2461
|
- stream_method: Reference to the client's stream method (if applicable)
|
2462
|
+
- beta_parse_method: Reference to the client's beta parse method (if applicable)
|
2431
2463
|
|
2432
2464
|
Raises:
|
2433
2465
|
ValueError: If client type is not supported
|
2434
2466
|
"""
|
2435
2467
|
if isinstance(client, (OpenAI, AsyncOpenAI)):
|
2436
|
-
return "OPENAI_API_CALL", client.chat.completions.create, client.responses.create, None
|
2468
|
+
return "OPENAI_API_CALL", client.chat.completions.create, client.responses.create, None, client.beta.chat.completions.parse
|
2437
2469
|
elif isinstance(client, (Together, AsyncTogether)):
|
2438
|
-
return "TOGETHER_API_CALL", client.chat.completions.create, None, None
|
2470
|
+
return "TOGETHER_API_CALL", client.chat.completions.create, None, None, None
|
2439
2471
|
elif isinstance(client, (Anthropic, AsyncAnthropic)):
|
2440
|
-
return "ANTHROPIC_API_CALL", client.messages.create, None, client.messages.stream
|
2472
|
+
return "ANTHROPIC_API_CALL", client.messages.create, None, client.messages.stream, None
|
2441
2473
|
elif isinstance(client, (genai.Client, genai.client.AsyncClient)):
|
2442
|
-
return "GOOGLE_API_CALL", client.models.generate_content, None, None
|
2474
|
+
return "GOOGLE_API_CALL", client.models.generate_content, None, None, None
|
2443
2475
|
raise ValueError(f"Unsupported client type: {type(client)}")
|
2444
2476
|
|
2445
2477
|
def _format_input_data(client: ApiClient, **kwargs) -> dict:
|
@@ -2449,10 +2481,13 @@ def _format_input_data(client: ApiClient, **kwargs) -> dict:
|
|
2449
2481
|
to ensure consistent tracing across different APIs.
|
2450
2482
|
"""
|
2451
2483
|
if isinstance(client, (OpenAI, Together, AsyncOpenAI, AsyncTogether)):
|
2452
|
-
|
2484
|
+
input_data = {
|
2453
2485
|
"model": kwargs.get("model"),
|
2454
2486
|
"messages": kwargs.get("messages"),
|
2455
2487
|
}
|
2488
|
+
if kwargs.get("response_format"):
|
2489
|
+
input_data["response_format"] = kwargs.get("response_format")
|
2490
|
+
return input_data
|
2456
2491
|
elif isinstance(client, (genai.Client, genai.client.AsyncClient)):
|
2457
2492
|
return {
|
2458
2493
|
"model": kwargs.get("model"),
|
@@ -2522,7 +2557,10 @@ def _format_output_data(client: ApiClient, response: Any) -> dict:
|
|
2522
2557
|
model_name = response.model
|
2523
2558
|
prompt_tokens = response.usage.prompt_tokens
|
2524
2559
|
completion_tokens = response.usage.completion_tokens
|
2525
|
-
|
2560
|
+
if hasattr(response.choices[0].message, "parsed") and response.choices[0].message.parsed:
|
2561
|
+
message_content = response.choices[0].message.parsed
|
2562
|
+
else:
|
2563
|
+
message_content = response.choices[0].message.content
|
2526
2564
|
elif isinstance(client, (genai.Client, genai.client.AsyncClient)):
|
2527
2565
|
model_name = response.model_version
|
2528
2566
|
prompt_tokens = response.usage_metadata.prompt_token_count
|
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
|
{judgeval-0.0.42 → judgeval-0.0.43}/assets/Screenshot 2025-05-17 at 8.14.27/342/200/257PM.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
|
{judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/scorers/default/contextual_precision.mdx
RENAMED
File without changes
|
File without changes
|
{judgeval-0.0.42 → judgeval-0.0.43}/docs/evaluation/scorers/default/contextual_relevancy.mdx
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
|
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
|
{judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/comparison.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
|
{judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/api_scorers/tool_order.py
RENAMED
File without changes
|
{judgeval-0.0.42 → judgeval-0.0.43}/src/judgeval/scorers/judgeval_scorers/classifiers/__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
|