Prompt Engineering
Die Kunst und Technik, Anweisungen für KI-Sprachmodelle so zu formulieren, dass sie optimale und zielgerichtete Ergebnisse liefern.
Eine Technik, bei der komplexe Aufgaben in mehrere aufeinanderfolgende LLM-Aufrufe zerlegt werden – die Ausgabe eines Prompts wird zur Eingabe des nächsten.
Prompt Chaining bedeutet, komplexe Aufgaben in mehrere LLM-Aufrufe zu zerlegen. Die Ausgabe eines Schritts wird zur Eingabe des nächsten – wie eine Kette.
Warum ist das besser als ein einzelner Prompt?
Beispiel Dokumentenanalyse:
Schritt 1: "Extrahiere alle Fakten aus diesem Text"
↓ [Liste von Fakten]
Schritt 2: "Kategorisiere diese Fakten nach Thema"
↓ [Kategorisierte Fakten]
Schritt 3: "Schreibe eine Zusammenfassung basierend auf den wichtigsten Fakten"
↓ [Finale Zusammenfassung]
def document_analysis_chain(document: str) -> str:
# Schritt 1: Fakten extrahieren
facts = llm.complete(f"Extrahiere alle Fakten:\n{document}")
# Schritt 2: Kategorisieren
categorized = llm.complete(f"Kategorisiere diese Fakten:\n{facts}")
# Schritt 3: Zusammenfassen
summary = llm.complete(f"Schreibe eine Zusammenfassung:\n{categorized}")
return summary
from langchain import PromptTemplate, LLMChain
from langchain.chains import SequentialChain
extract_chain = LLMChain(
llm=llm,
prompt=PromptTemplate.from_template("Extrahiere Fakten: {document}"),
output_key="facts"
)
summarize_chain = LLMChain(
llm=llm,
prompt=PromptTemplate.from_template("Fasse zusammen: {facts}"),
output_key="summary"
)
chain = SequentialChain(
chains=[extract_chain, summarize_chain],
input_variables=["document"],
output_variables=["summary"]
)
| Practice | Beschreibung |
|---|---|
| Validierung | Zwischenergebnisse prüfen |
| Fehlerbehandlung | Retry, Fallback, Logging |
| Modell-Auswahl | Günstigere Modelle für einfache Schritte |
| Parallelisierung | Unabhängige Schritte parallel ausführen |
Prompt Chaining ist wie eine Fließbandproduktion: Statt dass ein Arbeiter das ganze Auto baut, macht jeder einen Schritt – Karosserie, Motor, Lackierung. Das Ergebnis jedes Schritts geht zum nächsten weiter.
Komplexe Aufgaben in einfachere Teilschritte zerlegen
Jeder Schritt kann optimiert und getestet werden
Bessere Kontrolle und Debugging als ein einzelner komplexer Prompt
Dokumentenverarbeitung
Extrahieren → Zusammenfassen → Formatieren
Code-Generierung
Planen → Implementieren → Testen → Refactoren
Content-Erstellung
Recherche → Outline → Schreiben → Editieren
Bei komplexen Aufgaben mit mehreren Schritten, wenn Zwischenergebnisse validiert werden müssen, oder wenn verschiedene Schritte unterschiedliche Prompts/Modelle brauchen. Für einfache Aufgaben ist ein einzelner Prompt effizienter.
Ja, mehr API-Calls = mehr Kosten. Aber oft ist die Qualität besser und die Gesamtkosten niedriger, weil weniger Nacharbeit nötig ist. Außerdem können für einfache Schritte günstigere Modelle verwendet werden.
Validierung nach jedem Schritt, Retry-Logik bei Fehlern, Fallback-Strategien. Bei kritischen Fehlern: Abbruch und Logging statt fehlerhafte Ergebnisse weiterzugeben.