Strukturierte Ausgaben erzeugen

Arbeiten mit der OpenAI Responses API

James Chapman

AI Curriculum Manager, DataCamp

Als Nächstes ...

ch3_overview.jpg

Arbeiten mit der OpenAI Responses API

Warum Struktur?

Sprachlern-App, Ergebnisliste

Arbeiten mit der OpenAI Responses API

Warum Struktur?

Sprachlern-App, Bewertungsbildschirm

Arbeiten mit der OpenAI Responses API

Warum Struktur?

Sprachlern-App, Fortschrittsansicht

Arbeiten mit der OpenAI Responses API

Teil 1: Ausgabeschema definieren

from pydantic import BaseModel


class QuizResult(BaseModel): score: int passed: bool feedback: str
Arbeiten mit der OpenAI Responses API

Teil 1: Ausgabeschema definieren

from pydantic import BaseModel, Field

class QuizResult(BaseModel):
    score: int = Field(description="Anzahl der richtigen Antworten von 10")
    passed: bool = Field(description="True, wenn score 7 oder höher ist")
    feedback: str = Field(
        description="Ermutigende Nachricht mit konkreten Verbesserungstipps"
    )
Arbeiten mit der OpenAI Responses API

Teil 2: Anfrage senden

response = client.responses.parse(

model="gpt-5-mini",
instructions="Du bist ein Spanisch-Vokabelcoach. Bewerte das Quiz der Lernenden. 2 Punkte pro richtiger Antwort.", input="""1. casa = house 2. perro = dog 3. gato = car 4. libro = book 5. agua = water""",
text_format=QuizResult
)
Arbeiten mit der OpenAI Responses API

Teil 3: Ergebnisse auslesen

result = response.output_parsed

print(f"Score: {result.score}/10") print(f"Bestanden: {result.passed}") print(f"Feedback: {result.feedback}")
Score: 8/10
Bestanden: True
Feedback: Super – du hast 8/10 (4/5 richtig). Einziger Fehler: #3: 'gato'
heißt 'cat', nicht 'car' (Spanisch für 'car' ist 'coche' oder 'carro'). Tipp: Wiederhole Tier-Vokabeln mit Karteikarten und kurzen Quizzes.
Arbeiten mit der OpenAI Responses API

Komplexere Datenstrukturen

class Mistake(BaseModel):
    word: str = Field(description="Das falsche spanische Wort")
    student_answer: str = Field(description="Antwort der lernenden Person")
    correct_answer: str = Field(description="Die korrekte Übersetzung")

class DetailedQuizResult(BaseModel): score: int = Field(description="Anzahl der richtigen Antworten von 10") passed: bool = Field(description="True, wenn score 7 oder höher ist") feedback: str = Field(description="Ermutigendes Feedback mit konkreten Tipps")
mistakes: list[Mistake] = Field(description="Liste falscher Antworten")
Arbeiten mit der OpenAI Responses API
response = client.responses.parse(
    model="gpt-5-mini",
    instructions="Du bist ein Spanisch-Vokabelcoach. Bewerte das Quiz der
    Lernenden. 2 Punkte pro richtiger Antwort.",
    input="""1. casa = house
             2. perro = dog
             3. gato = car
             4. libro = library
             5. agua = water""",

text_format=DetailedQuizResult
)
Arbeiten mit der OpenAI Responses API
result = response.output_parsed
print(f"Score: {result.score}/10")
print(f"Bestanden: {result.passed}")

for mistake in result.mistakes: print(f"{mistake.word}: '{mistake.student_answer}' -> '{mistake.correct_answer}'")
Score: 6/10
Bestanden: False
gato: 'car' -> 'cat'
libro: 'library' -> 'book'
Arbeiten mit der OpenAI Responses API

Zusammenfassung

from pydantic import BaseModel, Field

class QuizResult(BaseModel):
    score: int = Field(...)
    passed: bool = Field(...)
    feedback: str = Field(...)
result = response.output_parsed

print(f"Score: {result.score}/10")
print(f"Bestanden: {result.passed}")
print(f"Feedback: {result.feedback}")
response = client.responses.parse(
    model="gpt-5-mini",
    instructions="...",
    input="...",

text_format=QuizResult
)
Arbeiten mit der OpenAI Responses API

Lass uns üben!

Arbeiten mit der OpenAI Responses API

Preparing Video For Download...