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

Заканчивается на

EndsWithMetric проверяет, заканчивается ли фактический вывод указанной строкой-суффиксом.

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

  1. Опционально приводит вывод и суффикс к нижнему регистру
  2. Проверяет, заканчивается ли вывод заданным суффиксом
  3. Возвращает 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"
)
# Вывод не заканчивается на "."