Начинается с
StartsWithMetric проверяет, начинается ли фактический вывод с указанной строки-префикса.
Как это работает
- Опционально приводит вывод и префикс к нижнему регистру
- Проверяет, начинается ли вывод с заданного префикса
- Возвращает
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="Конечно! Я с удовольствием помогу."
)
# Вывод не начинается с "Да"