Что это
promptfoo сравнивает ответы на заранее подготовленных примерах. Вы задаете входные данные, модель и критерии, затем видите, какие случаи прошли проверку. Например, после правки промпта можно убедиться, что обращения по оплате по-прежнему попадают в нужную категорию.
Качество проверки зависит от критериев. Точное совпадение удобно для короткой метки, но плохо подходит для свободного объяснения. Оценка другой моделью учитывает смысл, однако сама может ошибаться и расходовать дополнительный бюджет.
В карточке речь прежде всего об открытом CLI для evals. У платформы есть отдельные продукты безопасности и Enterprise-возможности. Тестирование RAG не превращает promptfoo в базу знаний, а зеленый отчет не доказывает безопасность системы при любых входных данных.
Ключевые параметры
- Категория: Оценка, мониторинг и evals
- Сложность: Для разработчика
- Запуск: Около 30 минут
- Open-source: Да
- Данные: Не известно
- Чувствительные данные: Только с настройками
Доступные модели и версии
Сильные стороны
- Один набор тестов можно повторить после изменения промпта или провайдера.
- Есть точные assertions и модельные оценки для разных типов ответа.
- Поддерживаются локальные модели, HTTP и собственные программные обработчики.
- Локальный просмотрщик показывает ответы и причины проваленных проверок рядом.
Ограничения
- Нужны осмысленные примеры и ожидаемые результаты; инструмент не знает ваши бизнес-правила сам.
- Внешние модели и оценщики оплачиваются отдельно, число вызовов растет с тестами и вариантами.
- Модельные оценки и red team могут давать ложные выводы; спорные случаи проверяют вручную.
- Локальный CLI не гарантирует отсутствие облачных обращений: red team имеет отдельные настройки генерации.
Как использовать
1. Подготовка. Установите поддерживаемый Node.js и выделите учебную папку. Подготовьте три обезличенных обращения и ожидаемые метки billing, technical, other. Для локального теста заранее запустите Ollama с доступной моделью; платный API не обязателен.
2. Настройка. Запустите npx promptfoo@latest init. В promptfooconfig.yaml задайте prompts с переменной {{text}} и требованием вернуть ровно одну метку. В providers укажите ollama:chat:ИМЯ_ВАШЕЙ_МОДЕЛИ. В tests для каждого примера заполните vars.text и assert с type: equals и нужной value. Для reasoning-модели настройте вывод так, чтобы trace не подмешивался к метке.
3. Первый результат. Выполните npx promptfoo@latest eval, затем npx promptfoo@latest view. Просмотрите ответ и результат assertion для каждого из трех обращений; сообщение об ошибке провайдера не считайте ответом модели.
4. Проверка. Убедитесь, что метки совпадают с эталонами. В копии теста замените одну ожидаемую метку на заведомо неверную и проверьте, что assertion падает. Верните эталон, добавьте сложные случаи и сравните варианты промпта. Перед CI ограничьте параллелизм и расходы; удаленный red team не включайте ради первого теста.
Примеры сценариев
- Не допустить регрессии классификации обращений.
- Сравнить ответы двух промптов на одних вопросах.
- Проверить формат и качество ответа RAG-сценария.
Доступ и оплата
- Модель оплаты: Бесплатный тариф + платные возможности
- Бесплатный тариф: Да
- Работа в РФ: Нужно проверять
- VPN: Не известно
- Русский интерфейс: Не известно
- Русский язык: Не известно
Community бесплатен, открытый CLI распространяется по MIT. Enterprise и размещение имеют отдельные условия; red team имеет свои квоты. API в карточке включает программный Node-интерфейс; облачный Promptfoo API не обещается бесплатно. Выбор модели и локального оценщика определяет доступ и расходы, поэтому работу всех интеграций из России не подтверждаем.
Когда не подходит
- Заменить тестовые примеры одним общим вопросом
- Считать оценку модели-судьи безошибочной
- Запускать red team против чужой системы без разрешения
Альтернативы
DeepEval подходит для программных проверок на Python. Ragas специализируется на оценке RAG и связанных сценариев. LangSmith сочетает трассировку и оценивание. Сравнивайте не только интерфейс, но и критерии, хранение тестов и стоимость модельных оценок.