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

Точное совпадение

ExactMatchMetric выполняет точное сравнение строк между фактическим и ожидаемым выводом.

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

  1. Опционально удаляет начальные/конечные пробелы из обеих строк
  2. Опционально приводит обе строки к нижнему регистру
  3. Сравнивает две строки на равенство
  4. Возвращает 1.0 при совпадении, 0.0 в противном случае

Параметры

Параметр Тип По умолчанию Описание
threshold float 1.0 Минимальный балл для прохождения
case_sensitive bool True Учитывать ли регистр при сравнении
strip_whitespace bool True Удалять ли начальные/конечные пробелы

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

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

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

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

test_case = EvalTestCase(
    input="Какая столица Франции?",
    actual_output="Париж",
    expected_output="Париж"
)

metric = ExactMatchMetric(threshold=1.0, case_sensitive=False)
result = asyncio.run(metric.evaluate(test_case))
print(result.score)  # 1.0

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

Прошел (1.0)

EvalTestCase(
    input="Переведите 'hello' на испанский",
    actual_output="hola",
    expected_output="Hola"
)
# case_sensitive=False -> совпадение

Не прошел (0.0)

EvalTestCase(
    input="Переведите 'hello' на испанский",
    actual_output="Hola, что означает привет на испанском",
    expected_output="Hola"
)
# Строки не равны