Вы обновили промпт для поддержки нового формата ответа, а через неделю модель начала галлюцинировать на простых запросах — точность упала на 30%. Каждое изменение промпта может незаметно сломать сценарии, которые работали годами. В одном проекте изменение одного слова в промпте снизило точность на 30% и потребовало недели ручного тестирования, чтобы отловить регрессию. Мы используем Promptfoo, чтобы за пару дней построить автоматическое регрессионное тестирование и навсегда забыть о таких сюрпризах. Promptfoo позволяет выполнять тестирование в 5 раз быстрее ручного и даёт объективные метрики, такие как LLM-rubric, ROUGE-N и contains-any, вместо субъективной оценки. Это открытое CLI-приложение с десятками типов assert'ов, которое интегрируется в любой CI/CD-пайплайн.
Наши инженеры выполнили 40+ проектов по интеграции LLM, и во всех случаях использование Promptfoo сократило время на выявление регрессий с недели до нескольких минут. Мы настраиваем тесты под конкретные сценарии: проверяем наличие обязательных фраз, отсутствие запрещённых слов, сравниваем ответы моделей и измеряем сходство с эталоном через эмбеддинги. В результате вы получаете прозрачный процесс, где каждый PR проверяется автоматически, а качество промптов контролируется метриками.
Какие проблемы решаем
- Регрессии после изменений промпта: новое условие может нарушить работу на других кейсах. Promptfoo прогоняет сотни тестов за секунды.
- Нестабильность моделей: поставщик обновил модель, и она начала выдавать другой формат. Тесты ловят это до деплоя.
- Субъективная оценка: вместо «кажется, отвечает хорошо» — объективные метрики (contains, LLM-rubric, ROUGE).
- Отсутствие CI/CD для промптов: разработку ведут без контроля качества — это как коммитить без юнит-тестов.
- RAG-сценарии: проверка корректности извлечения и релевантности ответа на основе векторного поиска.
- QA для AI: гарантия, что модель не выдаёт некорректные или unsafe ответы в production.
Почему регрессионное тестирование промптов критично?
LLM — вероятностные системы. Одно слово в промпте может изменить всю семантику ответа. Без автоматических тестов вы выпускаете изменения вслепую. Promptfoo даёт гарантию, что старые сценарии продолжают работать, а новые не ломают существующую логику. Это особенно важно в production-системах с тысячами запросов в день. Согласно официальной документации, Promptfoo is an open-source tool for evaluating and testing LLM prompts. Он зарекомендовал себя в проектах с объёмом до 10 тысяч запросов в сутки.
Как мы настраиваем Promptfoo под ваши задачи?
Мы начинаем с аудита текущих промптов: собираем все используемые шаблоны, выделяем ключевые сценарии и пишем тест-кейсы с expect'ами. Типичный конфиг выглядит так:
providers: - openai:gpt-4o - openai:gpt-4o-mini - anthropic:claude-3-5-sonnet-20241022 prompts: - "Summarize the following text in 3 sentences: {{text}}" - "Create a concise 3-sentence summary of: {{text}}" tests: - vars: text: "Long article about machine learning..." assert: - type: contains value: "machine learning" - type: llm-rubric value: "The summary is accurate and covers the main points" - type: javascript value: "output.split('.').length >= 3" - vars: text: "Another test document..." assert: - type: not-contains value: "I cannot" - type: rouge-n value: reference_summary threshold: 0.5 Мы используем не все assert'ы подряд, а только те, что реально нужны. Часто добавляем кастомные проверки через JavaScript: например, что ответ содержит ровно 3 пункта в markdown. Это даёт 100% уверенность в формате вывода.
Как интегрировать Promptfoo в CI/CD?
Достаточно добавить одну команду в ваш workflow:
promptfoo eval --ci GitHub Actions пример:
- name: Run prompt tests run: npx promptfoo eval --ci Если тест падает, CI завершается с ошибкой — PR не мержится. Мы также настраиваем автоматический просмотр отчёта через promptfoo view, чтобы команда видела дифф между версиями промптов.
Что входит в работу
- Аудит текущих промптов и выделение критичных сценариев.
- Написание 10–50 тест-кейсов с assert'ами под ваши метрики.
- Конфигурация Promptfoo и настройка провайдеров.
- Интеграция в CI/CD (GitHub Actions, GitLab CI) с уведомлениями.
- Документация и обучение команды: как добавлять новые тесты и интерпретировать результаты.
Процесс работы
- Анализ промптов — собираем текущие шаблоны, выявляем критичные кейсы (до 2 часов).
- Проектирование тестов — пишем 10–50 тест-кейсов с assert'ами под ваши метрики.
- Реализация — создаём конфигурацию Promptfoo, настраиваем провайдеров и переменные.
- Тестирование — запускаем eval, фиксим упавшие тесты, уточняем требования.
- Деплой в CI/CD — добавляем шаг в пайплайн, настраиваем уведомления.
Сроки
Работы занимают от 3 до 7 дней в зависимости от количества промптов и сложности assert'ов. Стоимость рассчитывается индивидуально после аудита. Получите бесплатную консультацию — оценим ваш проект за один день.
Чек-лист: что проверить в тестах промптов
| Тип проверки | Что ловит | Пример assert |
|---|---|---|
| contains | Наличие обязательной фразы | contains: "Hello" |
| not-contains | Запрещённые слова (отказы, инвективы) | not-contains: "I cannot" |
| llm-rubric | Качество ответа (субъективная оценка LLM) | llm-rubric: "Informative" |
| javascript | Произвольные проверки (длина, формат, JSON) | output.length > 0 |
| rouge-n | Сходство с эталоном (для суммаризации) | threshold: 0.5 |
| contains-any | Хотя бы один из вариантов | contains-any: ["good","bad"] |
Сравнение Promptfoo с ручным тестированием
| Критерий | Ручное тестирование | Promptfoo автоматизация |
|---|---|---|
| Время на один прогон | 1–2 часа на 10 кейсов | 2–5 минут на 100 кейсов |
| Точность | Субъективная оценка | Объективные метрики и assert'ы |
| Масштабируемость | Ограничено человеческими ресурсами | Запуск на сотни тестов в CI |
| CI/CD интеграция | Требует ручного запуска | Автоматически на каждый коммит |
Пример Python-скрипта для кастомной проверки
import promptfoo results = promptfoo.evaluate({ "prompts": ["Classify sentiment: {{text}}"], "providers": ["openai:gpt-4o-mini"], "tests": [ { "vars": {"text": "Great product!"}, "assert": [{"type": "contains", "value": "positive"}] } ] }) print(f"Pass rate: {results.stats.successes}/{results.stats.total}") Наши инженеры с 5+ летним опытом в AI/ML выполнили 40+ проектов по интеграции LLM. Мы гарантируем, что тестовое покрытие будет поддерживаться и расширяться под ваши задачи. Promptfoo — не единственный инструмент в стеке, но для регрессионного тестирования промптов он наиболее гибок и прост в интеграции.
Закажите консультацию — мы покажем, как Promptfoo встраивается в ваш существующий workflow, и оценим объём работы за один день. Подход «под ключ»: от тест-кейсов до CI/CD, с документацией и обучением команды. Получите бесплатный аудит промптов — свяжитесь с нами!







