Точное совпадение
ExactMatchMetric выполняет точное сравнение строк между фактическим и ожидаемым выводом.
Как это работает
- Опционально удаляет начальные/конечные пробелы из обеих строк
- Опционально приводит обе строки к нижнему регистру
- Сравнивает две строки на равенство
- Возвращает
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"
)
# Строки не равны