Ви оновили промпт для підтримки нового формату відповіді, а через тиждень модель почала галюцинувати на простих запитах — точність впала на 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 — це інструмент з відкритим кодом для оцінки та тестування LLM промптів. Він зарекомендував себе в проектах з об'ємом до 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, з документацією та навчанням команди. Отримайте безкоштовний аудит промптів — зв'яжіться з нами!







