Instructor / Outlines für garantierte Strukturen
Instructor (Python) und Outlines schränken das Decoding ein, sodass das Modell buchstäblich kein ungültiges JSON erzeugen kann.
Instructor / Outlines für garantierte Strukturen ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Agents-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
Zwei wichtige Bibliotheken
Zwei führende Ansätze für garantiert strukturierte Ausgaben:
- Instructor (Jason Liu) – Pydantic-Wrapper für OpenAI, Anthropic und viele weitere Anbieter
- Outlines (.txt) – gesteuerte Dekodierung für OSS-Modelle
Instructor Basics
# pip install instructor openai
import instructor
from openai import OpenAI
from pydantic import BaseModel
client = instructor.from_openai(OpenAI())
class User(BaseModel):
name: str
age: int
user = client.chat.completions.create(
model='gpt-4o-mini',
response_model=User,
messages=[{'role': 'user', 'content': 'Alice, 30'}]
)
print(user.name, user.age)Instructor-Magie
Hinter den Kulissen:
- generiert Instructor ein JSON Schema aus Ihrem Pydantic-Modell
- fügt es dem OpenAI-Aufruf als Tool hinzu
- erzwingt den Aufruf dieses Tools
- parst die Argumente und gibt eine Pydantic-Instanz zurück
- wiederholt den Aufruf bei Validierungsfehlern mit einer Reparatur
Instructor with Validation
from pydantic import field_validator
class User(BaseModel):
name: str
age: int
@field_validator('age')
@classmethod
def positive(cls, v):
if v <= 0:
raise ValueError('Age must be positive')
return v
# Instructor catches ValidationError and retries automaticallyStreaming Instructor
for partial in client.chat.completions.create_partial(
model='gpt-4o-mini',
response_model=User,
messages=[{'role': 'user', 'content': 'Alice, 30'}]
):
print(partial)
# Streams partial Pydantic instances as fields fill in.Instructor with Anthropic
from anthropic import Anthropic
client = instructor.from_anthropic(Anthropic())
user = client.messages.create(
model='claude-sonnet-4-5',
max_tokens=1024,
response_model=User,
messages=[{'role': 'user', 'content': 'Alice, 30'}]
)Outlines für OSS-Modelle
Outlines verwendet eine grammatikbeschränkte Dekodierung. Es funktioniert mit HuggingFace, vLLM und llama.cpp:
# pip install outlines
import outlines
model = outlines.models.transformers('mistralai/Mistral-7B-Instruct-v0.2')
generator = outlines.generate.json(model, User)
user = generator('Alice, 30')Warum gesteuerte Dekodierung?
Outlines erkennt anhand des Schemas, welche Tokens in jedem Schritt zulässig sind, und maskiert unzulässige Tokens. Das Modell kann buchstäblich kein ungültiges JSON ausgeben.
Outlines: Regex / Auswahl
Sie können die Ausgabe auf einen regulären Ausdruck oder eine Auswahlliste beschränken:
import outlines.text.generate as g
yes_no = g.choice(model, ['yes', 'no'])
result = yes_no('Are bananas fruits?') # 'yes'Beide kombinieren
Für maximale Zuverlässigkeit:
- Verwenden Sie Instructor für verwaltete oder geschlossene Modelle (OpenAI, Anthropic).
- Verwenden Sie Outlines für selbst gehostete Modelle.
- Pydantic-Modelle werden von beiden Ansätzen gemeinsam verwendet.
Kostenvergleich
- Strict Outputs (native OpenAI) – im Preis enthalten
- Instructor – geringfügiger Mehraufwand durch Wiederholungen bei der Validierung
- Outlines – leicht verringerter Durchsatz durch Maskierung, aber keine zusätzlichen Aufrufe
Wann Sie welches verwenden sollten
| Anwendungsfall | Tool |
|---|---|
| OpenAI/Anthropic | Instructor + Pydantic |
| Selbst gehostete OSS-Modelle | Outlines |
| Latenzkritisch | OpenAI Structured Outputs (native) |
Outlines-Ansatz
Wie garantiert Outlines eine strukturierte Ausgabe?
Zusammenfassung
Verwenden Sie für OpenAI und Anthropic native Structured Outputs oder Instructor. Verwenden Sie für OSS Outlines. Pydantic-Modelle verbinden alle Komponenten.
Häufig gestellte Fragen
Ist die Lektion „Instructor / Outlines für garantierte Strukturen“ kostenlos?
Ja — der vollständige Text von „Instructor / Outlines für garantierte Strukturen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Agents-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Instructor / Outlines für garantierte Strukturen“?
Instructor (Python) und Outlines schränken das Decoding ein, sodass das Modell buchstäblich kein ungültiges JSON erzeugen kann. Du übst AI Agents mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um AI Agents zu starten?
Keine Vorkenntnisse erforderlich. AI Agents auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Instructor / Outlines für garantierte Strukturen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser AI Agents-Lektion Code schreiben und ausführen?
Ja. Jede AI Agents-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- JSON-Modus und Tool-Call-Ausgaben
- Pydantic-Schema-Validierung
- Reparaturschleifen für fehlerhafte Ausgaben
- Instructor / Outlines für garantierte Strukturen