Перейти к содержанию

Непустой вывод

NonEmptyMetric проверяет, что фактический вывод не пустой и не состоит только из пробельных символов.

Как это работает

  1. Удаляет начальные и конечные пробельные символы из вывода
  2. Проверяет, что длина результирующей строки больше нуля
  3. Возвращает 1.0, если вывод непустой, 0.0 в противном случае

Параметры

Параметр Тип По умолчанию Описание
threshold float 1.0 Минимальный балл для прохождения

У этой метрики нет дополнительных параметров.

Обязательные поля

Поле Обязательно
input Нет
actual_output Да
expected_output Нет

Использование

from eval_lib.metrics import NonEmptyMetric
from eval_lib.test_case import EvalTestCase
import asyncio

test_case = EvalTestCase(
    input="Скажите что-нибудь",
    actual_output="Привет, мир!"
)

metric = NonEmptyMetric(threshold=1.0)
result = asyncio.run(metric.evaluate(test_case))
print(result.score)  # 1.0

Примеры сценариев

Прошел (1.0)

metric = NonEmptyMetric()
EvalTestCase(
    input="Сгенерируйте ответ",
    actual_output="Вот мой ответ."
)
# Вывод непустой

Не прошел (0.0)

metric = NonEmptyMetric()
EvalTestCase(
    input="Сгенерируйте ответ",
    actual_output=""
)
# Вывод пустой

Не прошел (0.0) — только пробелы

metric = NonEmptyMetric()
EvalTestCase(
    input="Сгенерируйте ответ",
    actual_output="   \n\t  "
)
# Вывод содержит только пробельные символы