Интеграция Promptfoo для автоматического тестирования промптов
Promptfoo — open-source CLI и библиотека для тестирования LLM промптов. Позволяет запускать один и тот же набор тест-кейсов против разных моделей и промптов, автоматически сравнивать результаты и интегрировать в CI/CD.
Установка и конфигурация
npm install -g promptfoo
# или
pip install promptfoo
promptfooconfig.yaml:
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" # Минимум 3 предложения
- vars:
text: "Another test document..."
assert:
- type: not-contains
value: "I cannot" # Модель не должна отказываться
- type: rouge-n
value: reference_summary
threshold: 0.5
Запуск тестов
# Запуск evaluation
promptfoo eval
# Просмотр результатов
promptfoo view
# CI mode (exit code 1 при неудаче)
promptfoo eval --ci
Интеграция в 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}")
Promptfoo позволяет за 1-2 дня создать regression test suite для всех промптов приложения и запускать его в GitHub Actions при каждом PR, предотвращая случайные деградации качества.







