Заканчивается на
EndsWithMetric проверяет, заканчивается ли фактический вывод указанной строкой-суффиксом.
Как это работает
- Опционально приводит вывод и суффикс к нижнему регистру
- Проверяет, заканчивается ли вывод заданным суффиксом
- Возвращает
1.0 при совпадении суффикса, 0.0 в противном случае
Параметры
| Параметр | Тип | По умолчанию | Описание |
threshold | float | 1.0 | Минимальный балл для прохождения |
suffix | str | обязательный | Строка-суффикс для проверки |
case_sensitive | bool | True | Учитывать ли регистр при сопоставлении |
Обязательные поля
| Поле | Обязательно |
input | Нет |
actual_output | Да |
expected_output | Нет |
Использование
from eval_lib.metrics import EndsWithMetric
from eval_lib.test_case import EvalTestCase
import asyncio
test_case = EvalTestCase(
input="Напишите предложение, заканчивающееся точкой",
actual_output="Быстрая коричневая лиса перепрыгнула через ленивую собаку."
)
metric = EndsWithMetric(threshold=1.0, suffix=".")
result = asyncio.run(metric.evaluate(test_case))
print(result.score) # 1.0
Примеры сценариев
Прошел (1.0)
metric = EndsWithMetric(suffix="```", case_sensitive=True)
EvalTestCase(
input="Верните блок кода",
actual_output='```python\nprint("hello")\n```'
)
# Вывод заканчивается ожидаемым суффиксом
Не прошел (0.0)
metric = EndsWithMetric(suffix=".", case_sensitive=True)
EvalTestCase(
input="Напишите полное предложение",
actual_output="Ответ — 42"
)
# Вывод не заканчивается на "."