Function Calling
Eine Fähigkeit moderner LLMs, strukturierte Funktionsaufrufe zu generieren, die externe Tools, APIs oder Datenbanken ansprechen können.
Eine Technik, bei der LLMs ihre Antworten in einem vordefinierten Format (meist JSON) ausgeben, statt freiem Text – für zuverlässige Integration in Anwendungen.
Structured Output bedeutet, dass ein LLM seine Antwort in einem vordefinierten Format ausgibt – meist JSON mit einem festen Schema. Das macht LLM-Ausgaben zuverlässig für die Weiterverarbeitung in Code.
Warum ist das wichtig?
Ohne Structured Output variiert die Ausgabe: Mal kommt “Der Preis ist 29,99€”, mal “29.99 EUR”, mal eine Tabelle. Mit Structured Output bekommst du immer {"price": 29.99, "currency": "EUR"}.
Beispiel:
Prompt: Extrahiere Produktinfos aus diesem Text: "Das iPhone 15 Pro
kostet 1199€ und hat 256GB Speicher."
Ohne Structured Output:
"Das Produkt ist ein iPhone 15 Pro. Es kostet 1199 Euro und
bietet 256 Gigabyte Speicherplatz."
Mit Structured Output:
{
"name": "iPhone 15 Pro",
"price": 1199,
"currency": "EUR",
"storage_gb": 256
}
from openai import OpenAI
from pydantic import BaseModel
class Product(BaseModel):
name: str
price: float
currency: str
storage_gb: int | None
client = OpenAI()
response = client.beta.chat.completions.parse(
model="gpt-5",
messages=[{"role": "user", "content": "Extrahiere: iPhone 15 Pro, 1199€, 256GB"}],
response_format=Product
)
product = response.choices[0].message.parsed
Wenn keine native Unterstützung verfügbar:
Antworte ausschließlich als gültiges JSON mit diesem Schema:
{
"name": string,
"price": number,
"currency": "EUR" | "USD",
"storage_gb": number | null
}
Kein Text außerhalb des JSON-Objekts.
Structured Output ist wie ein Formular statt eines Freitextfelds: Statt 'Schreib mir was über das Produkt' bekommst du definierte Felder wie Name, Preis, Beschreibung – immer im gleichen Format.
LLM-Ausgaben in validem JSON, XML oder anderen strukturierten Formaten
Ermöglicht zuverlässige Weiterverarbeitung in Code und Pipelines
Moderne APIs bieten native Unterstützung mit JSON Schema Validation
Datenextraktion
Strukturierte Informationen aus unstrukturiertem Text extrahieren
API-Responses
LLM-Antworten direkt als API-Response verwenden
Automatisierte Pipelines
LLM-Ausgaben ohne manuelle Nachbearbeitung weiterverarbeiten
JSON Mode garantiert nur valides JSON. Structured Output garantiert valides JSON UND Einhaltung eines spezifischen Schemas (bestimmte Felder, Typen, Constraints). Structured Output ist strenger und zuverlässiger.
Native Unterstützung gibt es bei OpenAI, Anthropic und einigen anderen. Bei Modellen ohne native Unterstützung kann man es per Prompt erzwingen, aber mit geringerer Zuverlässigkeit.
Bei nativer Unterstützung: Die API gibt einen Fehler zurück oder versucht automatisch zu korrigieren. Bei Prompt-basiertem Ansatz: Du musst selbst validieren und ggf. neu anfragen.