DSPy: prompty ako kompilovaný kód, nie ručná literatúra
DSPy (Declarative Self-improving Python) je framework od Stanford NLP (Omar Khattab a kol.) na programovanie a optimalizovanie LLM pipeline-ov. Hlavná myšlienka je provokatívna: prestaňte ručne ladiť prompty. Namiesto toho deklaratívne popíšte, čo má model robiť (vstup → výstup) a DSPy automaticky vygeneruje a optimalizuje konkrétne prompty na základe vašich vlastných dát.
V roku 2026 sa DSPy etabloval ako de-facto štandard pre produkčné AI pipeline-y, kde manuálne ladenie promptov narazilo na strop.
1. Problém, ktorý DSPy rieši
Klasický prompt engineering vyzerá takto:
- Napíšeš si prompt: "Si expert na X, urob Y, vráť ako JSON…"
- Otestuješ na 10 príkladoch, niečo nefunguje.
- Pridáš inštrukciu "…a NEZABUDNI dať always include the source".
- Test pass.
- Pridáš nový use-case → predchádzajúce regresne padne.
- GOTO 1.
Po 6 mesiacoch máš 4-stránkový prompt, ktorý sa nikto nedotkne, lebo nikto nevie, ktorá veta čo robí. Pri zmene modelu (z GPT-5 na Claude Opus 4.7) sa kvalita prepadne, lebo prompt bol nešťastne overfitnutý na špecifické správanie OpenAI.
DSPy hovorí: toto je úloha kompilátora, nie človeka.
2. Ako DSPy funguje (3 koncepty)
Signature. Deklaruješ vstupy a výstupy ako Python triedu:
class FAQAnswer(dspy.Signature): """Odpovedz na zákaznícku otázku na základe znalostnej bázy.""" question = dspy.InputField() kb_snippet = dspy.InputField() answer = dspy.OutputField(desc="odpoveď v 2-3 vetách")Žiadny prompt. Iba kontrakt.
Module. Skladá signature-y do pipeline-u. Štandardné moduly:
dspy.Predict(jeden hit modelu),dspy.ChainOfThought(s thinking),dspy.ReAct(s tool-use),dspy.MultiHop,dspy.ProgramOfThought.rag = dspy.ChainOfThought(FAQAnswer) result = rag(question="...", kb_snippet="...")Optimizer (compiler). Najdôležitejšia časť. Vezmeš dataset s príkladmi vstup → správny výstup a DSPy:
- vygeneruje few-shot príklady automaticky z vašich dát,
- prepíše a doladí instrukcie v signature pomocou meta-LLM,
- vyberie najlepšiu kombináciu podľa zadanej metriky (presnosť, F1, BLEU, custom skóre).
Optimizery:
BootstrapFewShot,MIPRO(multi-iteration prompt optimization),BetterTogether(kombinácia s fine-tuningom),COPRO.
3. Príklad: RAG pipeline za 20 riadkov
import dspy
dspy.configure(lm=dspy.LM("openai/gpt-5-turbo"))
class Answer(dspy.Signature):
"""Odpovedz na otázku používateľa pomocou poskytnutých dokumentov."""
question = dspy.InputField()
docs = dspy.InputField(desc="zoznam relevantných dokumentov")
answer = dspy.OutputField()
class RAG(dspy.Module):
def __init__(self):
self.retrieve = dspy.Retrieve(k=5)
self.generate = dspy.ChainOfThought(Answer)
def forward(self, question):
docs = self.retrieve(question).passages
return self.generate(question=question, docs=docs)
# Kompilácia na vlastných dátach
trainset = [...] # 50 príkladov question → expected answer
metric = lambda ex, pred: ex.answer.lower() in pred.answer.lower()
rag = dspy.MIPRO(metric=metric).compile(RAG(), trainset=trainset)
Po .compile() máš na ruke vyladenú pipeline, ktorá za teba sama vybrala few-shot príklady a doladila inštrukcie. Žiaden ručne písaný prompt.
4. Kedy DSPy stojí za zavedenie
- Pipeline má > 1 LLM volanie. Pri jednom hite je DSPy overkill — staré prompty stačia.
- Máš dáta na evaluáciu. Bez aspoň 30-50 labelovaných príkladov optimizer nemá z čoho učiť.
- Plánuješ meniť modely. DSPy pipeline rekompiluješ na nový model za 5 minút (vs. týždeň ručného ladenia).
- Tím má > 1 prompt-engineera. Verzionovaná .py súbory zvládneš v code-review; 4-stránkový prompt nie.
Naopak: pre jednoduchý chatbot s jediným systémovým promptom je DSPy zbytočná réžia.
5. Ekosystém okolo DSPy v 2026
- MLflow integrácia — DSPy programy sa logujú a verzionujú ako MLflow modely.
- LiteLLM backend — DSPy vie hovoriť cez akýkoľvek model (OpenAI, Anthropic, Google, lokálny Llama 4) bez zmeny kódu (viď článok LiteLLM).
- dspy.evaluate.Evaluate — evaluation harness s parallel execution a caching.
- Komunitné moduly — knižnice ako
dspy-airline-agents,dspy-medical-qaposkytujú predpripravené pipeline-y. - TextGrad — komplementárny prístup, používa "gradientné" descenty cez text feedback (autori sa explicitne odkazujú na DSPy).
6. Kritika a limity
- Krivka učenia — človeku zvyknutému na "napíš prompt a vyskúšaj" trvá týždeň, kým mu DSPy myšlienka klikne.
- Latencia kompilácie —
MIPRO.compile()na 100-vzorkovom datasete s GPT-5 stojí 5-50 USD a beží 10-30 minút. - Optimizer dáva niekedy bizzarné few-shot examples — treba ručne skontrolovať výstup kompilácie.
- Stabilita medzi verziami — DSPy 2.x → 3.x prinieslo breaking changes; produkčné nasadenia treba pinovať na verziu.
7. Vzťah k iným technikám
- Prompt Engineering je vstupom (DSPy nahrádza ručné iteratívne ladenie).
- RAG sa robí pomocou
dspy.Retrievemodulu. - Few-Shot Prompting je čo optimizer automaticky generuje.
- Promptfoo rieši evaluáciu a red-teaming; DSPy rieši samotné generovanie pipeline-u — sú komplementárne.
- Fine-tuning je drahá alternatíva; DSPy
BetterTogetherich vie kombinovať.
Súvisiace témy
- Prompt Engineering Pokrocile — manuálny prístup, ktorý DSPy automatizuje.
- Promptfoo — evaluation a red-teaming.
- RAG — typický use-case pre DSPy.
- LiteLLM — backend gateway pre DSPy.
- Mixture of Experts — paralelný smer optimalizácie (architektúra modelu, nie pipeline).