Yapılandırılmış Çıktılar Üretme

OpenAI Responses API ile Çalışmak

James Chapman

AI Curriculum Manager, DataCamp

Sırada neler var...

ch3_overview.jpg

OpenAI Responses API ile Çalışmak

Yapı İhtiyacı

language_app1.jpg

OpenAI Responses API ile Çalışmak

Yapı İhtiyacı

language_app2.jpg

OpenAI Responses API ile Çalışmak

Yapı İhtiyacı

language_app3.jpg

OpenAI Responses API ile Çalışmak

Bölüm 1: Çıktı Şemasını Tanımlama

from pydantic import BaseModel


class QuizResult(BaseModel): score: int passed: bool feedback: str
OpenAI Responses API ile Çalışmak

Bölüm 1: Çıktı Şemasını Tanımlama

from pydantic import BaseModel, Field

class QuizResult(BaseModel):
    score: int = Field(description="10 üzerinden doğru cevap sayısı")
    passed: bool = Field(description="Puan 7 veya üzeriyse True")
    feedback: str = Field(
        description="Geliştirmeye yönelik somut ipuçları içeren teşvik edici mesaj"
    )
OpenAI Responses API ile Çalışmak

Bölüm 2: İsteği Gönderme

response = client.responses.parse(

model="gpt-5.4-mini",
instructions="Bir İspanyolca kelime bilgisi eğitmenisiniz. Öğrencinin sınav yanıtlarını notlayın. Her doğru cevabı 2 puan olarak değerlendirin.", input="""1. casa = house 2. perro = dog 3. gato = car 4. libro = book 5. agua = water""",
text_format=QuizResult
)
OpenAI Responses API ile Çalışmak

Bölüm 3: Sonuçları Çıkarma

result = response.output_parsed

print(f"Score: {result.score}/10") print(f"Passed: {result.passed}") print(f"Feedback: {result.feedback}")
Score: 8/10
Passed: True
Feedback: Harika iş — 8/10 (4/5 doğru). Tek hata #3: 'gato'
'cat' demektir, 'car' değil (İspanyolcada 'car' için 'coche' veya 'carro'). İpucu: Anımsamayı pekiştirmek için yaygın hayvan kelimelerini flashcard ve kısa quizlerle gözden geçirin.
OpenAI Responses API ile Çalışmak

Daha Karmaşık Veri Yapıları

class Mistake(BaseModel):
    word: str = Field(description="Yanlış olan İspanyolca kelime")
    student_answer: str = Field(description="Öğrencinin yazdığı")
    correct_answer: str = Field(description="Doğru çeviri")

class DetailedQuizResult(BaseModel): score: int = Field(description="10 üzerinden doğru cevap sayısı") passed: bool = Field(description="Puan 7 veya üzeriyse True") feedback: str = Field(description="Somut ipuçları içeren teşvik edici mesaj")
mistakes: list[Mistake] = Field(description="Yanlış cevaplar listesi")
OpenAI Responses API ile Çalışmak
response = client.responses.parse(
    model="gpt-5.4-mini",
    instructions="Bir İspanyolca kelime bilgisi eğitmenisiniz. Öğrencinin sınav
    yanıtlarını notlayın. Her doğru cevabı 2 puan olarak değerlendirin.",
    input="""1. casa = house
             2. perro = dog
             3. gato = car
             4. libro = library
             5. agua = water""",

text_format=DetailedQuizResult
)
OpenAI Responses API ile Çalışmak
result = response.output_parsed
print(f"Score: {result.score}/10")
print(f"Passed: {result.passed}")

for mistake in result.mistakes: print(f"{mistake.word}: '{mistake.student_answer}' -> '{mistake.correct_answer}'")
Score: 6/10
Passed: False
gato: 'car' -> 'cat'
libro: 'library' -> 'book'
OpenAI Responses API ile Çalışmak

Özet

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"Passed: {result.passed}")
print(f"Feedback: {result.feedback}")
response = client.responses.parse(
    model="gpt-5.4-mini",
    instructions="...",
    input="...",

text_format=QuizResult
)
OpenAI Responses API ile Çalışmak

Hadi pratik yapalım!

OpenAI Responses API ile Çalışmak

Preparing Video For Download...