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

Проверка формата

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

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

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

Поддерживаемые форматы

Тип формата Описание Пример
"email" Валидный адрес электронной почты user@example.com
"phone" Номер телефона (цифры, пробелы, дефисы, скобки, опциональный +) +1 (555) 123-4567
"date" Дата в формате ISO 8601 2025-12-31
"url" Валидный URL со схемой https://example.com

Параметры

Параметр Тип По умолчанию Описание
threshold float 1.0 Минимальный балл для прохождения
format_type str обязательный Формат для валидации: "email", "phone", "date" или "url"

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

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

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

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

test_case = EvalTestCase(
    input="Сгенерируйте контактный email",
    actual_output="support@example.com"
)

metric = FormatCheckMetric(threshold=1.0, format_type="email")
result = asyncio.run(metric.evaluate(test_case))
print(result.score)  # 1.0

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

Прошел (1.0)

metric = FormatCheckMetric(format_type="url")
EvalTestCase(
    input="Верните URL документации",
    actual_output="https://docs.example.com/api/v2"
)
# Валидный URL со схемой

Не прошел (0.0)

metric = FormatCheckMetric(format_type="date")
EvalTestCase(
    input="Верните сегодняшнюю дату",
    actual_output="31 декабря 2025 года"
)
# Не в формате ISO 8601 (YYYY-MM-DD)