Вы переписали промпт, и новый ответ кажется убедительнее. Но стал ли он точнее? Если судить по одному примеру, можно принять удачную формулировку за устойчивое улучшение. Для проверки нужен набор одинаковых заданий и заранее определённые условия приёмки.
promptfoo помогает организовать такое сравнение. Самая важная часть работы находится до запуска: решить, какие ошибки вы ищете и как их узнаете.
Что делает инструмент
promptfoo — CLI и библиотека для оценки AI-приложений, промптов и моделей. Документация описывает тестовые входы, варианты запросов, провайдеров и сравнительное представление результатов. Отдельный механизм assertions позволяет задавать требования к ответу и показатели оценки.
Для первого сравнения не нужен большой рейтинг моделей. Возьмите один рабочий процесс: например, извлечение сведений из технического объявления. Проверка должна отвечать на вопрос, можно ли использовать результат в следующем этапе этого процесса.
Сначала определите цену ошибки
Допустим, из текста нужно получить продукт, дату события, мощность и условия применения. Неверная дата может отправить старую публикацию в новостной поток. Пропущенная мощность уменьшает полезность карточки, но выдуманная мощность создаёт ложный факт. Эти ошибки нельзя считать одинаковыми только потому, что обе затрагивают одно поле.
Разделите требования на несколько уровней:
- структура ответа: необходимые поля и корректные типы;
- точность извлечения: значения действительно присутствуют в источнике;
- полнота контекста: рядом остаются единицы и условия;
- обращение с неизвестным: пропуск обозначается, а не заполняется догадкой;
- пригодность к следующему шагу: результат не требует скрытого исправления.
Соответствие JSON-схеме подтверждает структуру. Оно не доказывает правильность даты или происхождение числа.
Небольшой контрольный набор
Ниже авторский пример условий приёмки для извлечения параметров. Это не результаты promptfoo.
| Учебный вход | Ожидаемое решение | Что считать ошибкой |
|---|---|---|
| «Модель A: до 65 Вт при одном подключении» | 65 Вт с сохранением условия | Представить 65 Вт как предел каждого выхода |
| «Обновлено 12 ноября; устройство анонсировано 8 ноября» | Разделить обновление и событие | Назвать 12 ноября датой анонса |
| «Цена будет объявлена позднее» | Цена неизвестна | Выдумать сумму |
| Два текста с разными значениями одного параметра | Обозначить конфликт | Выбрать число без основания |
| Текст без сведений о продукте | Сообщить о непригодном входе | Создать полноценную карточку |
Добавьте обычные тексты, а не только ловушки. Иначе сравнение покажет устойчивость к специально выбранным ошибкам, но мало скажет о повседневной работе.
Как сравнить два промпта
Зафиксируйте входы и критерии до просмотра результатов. Дайте двум вариантам одинаковые материалы. Сохраните модель, настройки, маршрут к провайдеру и ответы. Если одновременно меняются промпт и модель, нельзя уверенно приписать улучшение одному из них.
Для важных случаев нужны повторные ответы: поведение AI может меняться между попытками. Число повторов выбирайте по значимости ошибки и бюджету. Не называйте произвольные три запуска доказательством статистической устойчивости.
Часть входов полезно оставить вне первой настройки промпта. Если постоянно редактировать его по одним и тем же примерам, можно получить хорошую оценку знакомого набора и слабый результат на новых документах.
Автоматическая оценка тоже ошибается
Проверка точного поля или обязательного ключа сравнительно прозрачна. Оценка смысла другой моделью требует отдельного контроля: судья может предпочитать длинный ответ, пропускать фактическую ошибку или разделять предположение проверяемой системы.
Для учебного набора выше основная приёмка возможна по известным фактам источника. В неоднозначных случаях сохраняйте причину решения и просматривайте ответ вручную. Итоговый процент не должен скрывать несколько критических ошибок.
Что записать в отчёт
Покажите результат по каждому типу ошибки, несколько характерных ответов и условия сравнения. Если стоимость и длительность измерялись, укажите способ учёта. Если не измерялись, не включайте оценочные числа в таблицу.
Локальный запуск средства оценки не делает запросы к внешним моделям локальными. Провайдеры могут получать тестовые входы; результаты и отчёты тоже могут содержать исходные данные. Для первого набора достаточно публичных или синтетических материалов.
promptfoo полезно рассматривать вместе с OpenRouter, если сравниваются маршруты к моделям, и с n8n, если извлечение входит в более длинный процесс. Содержание исследовательских заданий помогает определить статья о доказательных промптах.