Files
confident-ai--deepeval/deepeval/optimizer/scorer/utils.py
T
2026-07-13 13:32:05 +08:00

31 lines
968 B
Python

import inspect
from typing import Callable, Union
from deepeval.metrics import BaseConversationalMetric, BaseMetric
from deepeval.test_case import ConversationalTestCase, LLMTestCase
def _build_measure_kwargs(func: Callable) -> dict:
params = inspect.signature(func).parameters
kwargs = {}
for key in ("_show_indicator", "_in_component", "_log_metric_to_confident"):
if key in params:
kwargs[key] = False
return kwargs
def _measure_no_indicator(
metric: Union[BaseMetric, BaseConversationalMetric],
test_case: Union[LLMTestCase, ConversationalTestCase],
):
kwargs = _build_measure_kwargs(metric.measure)
return metric.measure(test_case, **kwargs)
async def _a_measure_no_indicator(
metric: Union[BaseMetric, BaseConversationalMetric],
test_case: Union[LLMTestCase, ConversationalTestCase],
):
kwargs = _build_measure_kwargs(metric.a_measure)
return await metric.a_measure(test_case, **kwargs)