27 marca 2026
Czym jest Promptfoo? Praktyczny przewodnik po testowaniu i ocenie promptów AI
Jak testować, oceniać i ulepszać prompty do modeli językowych z użyciem Promptfoo
Czym jest Promptfoo?
Promptfoo to open-source’owy framework do ewaluacji i testowania aplikacji LLM, najczęściej promptów, dzięki któremu możesz porównywać wyniki, wykrywać regresje i poprawiać jakość w sposób powtarzalny
Z Promptfoo możesz:
- uruchamiać wiele wariantów promptu na tych samych danych wejściowych
- porównywać odpowiedzi między modelami obok siebie
- automatycznie oceniać odpowiedzi regułami deterministycznymi i rubrykami model-graded
- przyspieszać ewaluację przez cache i współbieżność
- używać narzędzia z CLI oraz w pipeline’ach CI/CD
To podejście działa jak testy jednostkowe dla promptów, ale asercje mogą być zarówno twarde, jak i wspierane przez LLM
Dlaczego testowanie promptów ma znaczenie
Nawet drobna zmiana promptu albo modelu może mocno wpłynąć na wynik
Bez testowania:
- regresje łatwo przechodzą niezauważone
- zachowanie systemu staje się niespójne między promptami, wejściami i modelami
- trudno obiektywnie ocenić jakość
Z Promptfoo:
- eksperymenty są powtarzalne
- jakość jest mierzalna
- zmiany promptów wdrażasz bezpieczniej
Jak działa Promptfoo
Ewaluacje Promptfoo opierają się zwykle na trzech elementach: promptach, przypadkach testowych i asercjach lub metrykach
1. Prompty
Prompt A: Explain this like I'm five
Prompt B: Provide a concise technical explanation
2. Przypadki testowe
Input: "What is blockchain?"
Input: "Explain photosynthesis"
3. Asercje i metryki
Przykłady:
- testy deterministyczne, np
containsiequals - wagi i progi punktowe
- ocena model-graded z użyciem
llm-rubric
Instalacja
Najszybciej wystartujesz przez gotowy przykład:
npx promptfoo@latest init --example getting-started
Możesz też zainstalować globalnie:
npm install -g promptfoo
Albo przez Homebrew:
brew install promptfoo
Większość providerów wymaga credentials. Dla OpenAI:
export OPENAI_API_KEY=sk-...
Podstawowa konfiguracja
Najczęściej używasz pliku promptfooconfig.yaml:
prompts:
- "Explain {{topic}} in simple terms."
- "Provide a concise technical explanation of {{topic}}."
providers:
- openai:gpt-4.1-mini
tests:
- vars:
topic: "quantum computing"
assert:
- type: contains
value: "quantum"
- type: llm-rubric
value: "Is the explanation accurate and appropriate for the requested style?"
provider: openai:gpt-4.1-mini
threshold: 0.7
- vars:
topic: "machine learning"
assert:
- type: llm-rubric
value: "Does the answer avoid hallucinations and keep a clear structure?"
provider: openai:gpt-4.1-mini
Testy możesz ładować też z YAML, JSON, JSONL, CSV, TypeScript, JavaScript oraz źródeł zewnętrznych jak Google Sheets
Podgląd wyników
Po ewaluacji uruchom interaktywny podgląd w przeglądarce:
npx promptfoo@latest view
Jeśli chcesz tryb prowadzony:
npx promptfoo@latest eval setup
W praktyce warto też:
- walidować konfigurację przez
promptfoo validate - traktować custom assertions i pluginy jak lokalny kod Node.js uruchamiany z Twoimi uprawnieniami
Podsumowanie
Prompt engineering bez testowania to najczęściej zgadywanie
Promptfoo zamienia to w uporządkowany, powtarzalny i mierzalny proces