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

Начинается с

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

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

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

Параметры

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

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

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

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

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

test_case = EvalTestCase(
    input="Напишите формальное приветствие",
    actual_output="Уважаемый господин, пишу вам по вопросу..."
)

metric = StartsWithMetric(threshold=1.0, prefix="Уважаемый", case_sensitive=False)
result = asyncio.run(metric.evaluate(test_case))
print(result.score)  # 1.0

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

Прошел (1.0)

metric = StartsWithMetric(prefix="```json", case_sensitive=True)
EvalTestCase(
    input="Верните JSON",
    actual_output='```json\n{"key": "value"}\n```'
)
# Вывод начинается с ожидаемого префикса

Не прошел (0.0)

metric = StartsWithMetric(prefix="Да", case_sensitive=True)
EvalTestCase(
    input="Вы можете помочь?",
    actual_output="Конечно! Я с удовольствием помогу."
)
# Вывод не начинается с "Да"