Function Calling
Eine Fähigkeit moderner LLMs, strukturierte Funktionsaufrufe zu generieren, die externe Tools, APIs oder Datenbanken ansprechen können.
Eine Funktion vieler LLM-APIs, die die Ausgabe auf valides JSON oder strukturierte Schemas einschränkt – hilfreich für die Integration von KI in Software-Pipelines und Datenverarbeitung.
Wenn du ein LLM in Software integrierst, brauchst du häufig maschinenlesbare Ausgaben. JSON Mode und Structured Output reduzieren das Problem, dass LLMs standardmäßig Freitext produzieren.
Drei Stufen der Kontrolle:
1. Prompt-basiert: "Antworte bitte als JSON" → oft, aber nicht zuverlässig
2. JSON Mode: response_format: "json_object" → syntaktisch valides JSON möglich
3. Structured Output: response_format: { schema } → Schema-Einhaltung stärker kontrolliert
from openai import OpenAI
from pydantic import BaseModel
class ProductInfo(BaseModel):
name: str
price: float
category: str
in_stock: bool
client = OpenAI()
response = client.beta.chat.completions.parse(
model="model-with-structured-output",
messages=[
{"role": "user", "content": "Extrahiere die Produktinfo aus diesem Produkttext."}
],
response_format=ProductInfo,
)
product = response.choices[0].message.parsed
# ProductInfo(name='...', price=..., category='...', in_stock=...)
| Methode | Zuverlässigkeit | Flexibilität | Anbieter |
|---|---|---|---|
| Prompt Engineering | variabel | hoch | viele Modelle |
| JSON Mode | hoch für Syntax, API-abhängig | mittel | unterstützende Anbieter |
| Structured Output | hoch für Schema, API-abhängig | geringer | unterstützende Anbieter |
| Constrained Decoding | hoch für Grammar, setupabhängig | hoch | Libraries und eigene Serving-Setups |
JSON Mode ist wie ein Formular statt eines Freitextfelds: Statt dem Modell zu sagen 'Beschreibe das Produkt', gibst du ihm Felder für Name, Preis und Beschreibung – und bekommst deutlich besser verarbeitbare Antworten.
Kann syntaktisch valides JSON in der Modellantwort sicherstellen
Structured Output geht weiter: Schema-Einhaltung wird stärker kontrolliert
Wichtig für robuste KI-Integrationen in Softwaresystemen
Datenextraktion
Aus unstrukturiertem Text strukturierte Daten extrahieren (Namen, Adressen, Produkte)
API-Integration
LLM-Antworten besser als API-Responses nutzen und Parsing-Fehler reduzieren
Workflow-Automation
KI-Agenten liefern strukturierte Entscheidungen, die automatisiert weiterverarbeitet werden
JSON Mode stellt typischerweise syntaktisch valides JSON sicher, kontrolliert aber nicht immer die gewünschte Struktur. Structured Output kann zusätzlich ein JSON-Schema mit Feldern, Typen und Pflichtfeldern stärker durchsetzen.
Prompt-basierte Anfragen funktionieren oft, sind aber fehleranfälliger. Das Modell kann zusätzlichen Text ausgeben, Felder weglassen oder invalides JSON produzieren. JSON Mode oder Structured Output reduzieren solche Fehler auf API- oder Decoding-Ebene.
Nein. Unterstützung hängt von Anbieter, Modell und API ab. Viele kommerzielle APIs bieten JSON- oder Structured-Output-Funktionen; für Open-Weight-Modelle gibt es Libraries und Grammar- oder Constrained-Decoding-Ansätze.