Prompt engineering je umenie formulovania inštrukcií pre LLM. Drobná zmena v prompte môže dramaticky zmeniť kvalitu výstupu.
Základné princípy
1. Buďte špecifický
❌ Napíš niečo o Pythone
✅ Napíš 500-slovný tutoriál o list comprehensions v Pythone
pre stredne pokročilých vývojárov. Zahrň 3 praktické príklady.
2. Poskytnite kontext
❌ Zreviduj tento kód
✅ Si senior Python developer. Zreviduj tento Flask endpoint
z pohľadu bezpečnosti a výkonu. Projekt používa PostgreSQL
a beží na AWS Lambda.
3. Definujte formát výstupu
✅ Odpovedz vo formáte JSON:
{
"summary": "stručný prehľad",
"pros": ["výhoda 1", "výhoda 2"],
"cons": ["nevýhoda 1"],
"recommendation": "záverečné odporúčanie"
}
Pokročilé techniky
Chain of Thought (CoT)
Nechajte model "premýšľať" krok za krokom:
Vyrieš tento problém krok za krokom:
Firma má 150 zamestnancov. 40% pracuje remote.
Z remote pracovníkov 25% používa Mac.
Koľko remote zamestnancov používa Mac?
Ukáž svoj myšlienkový postup pred finálnou odpoveďou.
Few-Shot Learning
Poskytnite príklady:
Klasifikuj sentiment recenzií:
Recenzia: "Produkt je úžasný, odporúčam!"
Sentiment: pozitívny
Recenzia: "Kvalita slabá, rýchlo sa pokazilo"
Sentiment: negatívny
Recenzia: "Je to OK, nič špeciálne"
Sentiment: neutrálny
Recenzia: "Nikdy som nebol spokojnejší s nákupom!"
Sentiment:
Role Playing
Zadajte modelu rolu:
Si skúsený DevOps engineer s 10 rokmi praxe.
Máš expertízu v Kubernetes, AWS a Terraform.
Navrhni CI/CD pipeline pre Node.js microservices aplikáciu
s nasledovnými požiadavkami:
- Automatické testy pri každom PR
- Staging a production prostredia
- Blue-green deployment
Self-Consistency
Generujte viac odpovedí a vyberte najčastejšiu:
responses = []
for _ in range(5):
response = llm.generate(prompt)
responses.append(response)
# Vyberte najkonzistentnejšiu odpoveď
final = most_common(responses)
System Prompts
Definujte správanie pre celú konverzáciu:
messages = [
{
"role": "system",
"content": """Si technický asistent pre e-commerce platformu.
Pravidlá:
- Odpovedaj stručne a technicky presne
- Pri nejasnostiach sa pýtaj
- Nikdy neodporúčaj nesúvisiace produkty
- Používaj slovenčinu
"""
},
{
"role": "user",
"content": "Ako implementovať platobný gateway?"
}
]
Čomu sa vyhnúť
Vágne inštrukcie
❌ Napíš dobrý kód
✅ Napíš TypeScript funkciu, ktorá validuje email adresy
pomocou regex. Pridaj unit testy s Jest.
Príliš veľa naraz
❌ Napíš celú aplikáciu s autentifikáciou, databázou,
API, frontendom a testami
✅ Rozdeľ úlohu na menšie časti a riešte postupne
Predpoklady bez overenia
✅ "Predpokladám, že používaš React 18. Je to správne?"
Prompt Templates
REVIEW_TEMPLATE = """
Zreviduj nasledujúci {language} kód:
```{language}
{code}
Zameraj sa na:
- Bezpečnostné riziká
- Performance problémy
- Best practices
- Čitateľnosť
Formát odpovede:
- Celkové hodnotenie (1-10)
- Zoznam problémov s prioritou
- Konkrétne návrhy na zlepšenie """
## Záver
Prompt engineering je skill, ktorý sa dá naučiť. Experimentujte, iterujte a dokumentujte čo funguje pre váš use case.