Tạo đầu ra có cấu trúc

Làm việc với OpenAI Responses API

James Chapman

AI Curriculum Manager, DataCamp

Sắp tới...

tổng quan ch3

Làm việc với OpenAI Responses API

Nhu cầu về cấu trúc

ứng dụng ngôn ngữ 1

Làm việc với OpenAI Responses API

Nhu cầu về cấu trúc

ứng dụng ngôn ngữ 2

Làm việc với OpenAI Responses API

Nhu cầu về cấu trúc

ứng dụng ngôn ngữ 3

Làm việc với OpenAI Responses API

Phần 1: Định nghĩa lược đồ đầu ra

from pydantic import BaseModel


class QuizResult(BaseModel): score: int passed: bool feedback: str
Làm việc với OpenAI Responses API

Phần 1: Định nghĩa lược đồ đầu ra

from pydantic import BaseModel, Field

class QuizResult(BaseModel):
    score: int = Field(description="Số câu đúng trên 10")
    passed: bool = Field(description="True nếu điểm từ 7 trở lên")
    feedback: str = Field(
        description="Thông điệp khích lệ kèm mẹo cải thiện cụ thể"
    )
Làm việc với OpenAI Responses API

Phần 2: Gửi yêu cầu

response = client.responses.parse(

model="gpt-5.4-mini",
instructions="Bạn là gia sư từ vựng tiếng Tây Ban Nha. Chấm bài trắc nghiệm của học viên. Mỗi câu đúng được 2 điểm.", input="""1. casa = house 2. perro = dog 3. gato = car 4. libro = book 5. agua = water""",
text_format=QuizResult
)
Làm việc với OpenAI Responses API

Phần 3: Trích xuất kết quả

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: Làm tốt lắm - bạn đạt 8/10 (đúng 4/5). Lỗi duy nhất là #3: 'gato'
nghĩa là 'cat', không phải 'car' (tiếng Tây Ban Nha cho 'car' là 'coche' hoặc 'carro'). Mẹo: ôn từ vựng về động vật bằng flashcard và các bài kiểm tra ngắn để củng cố ghi nhớ.
Làm việc với OpenAI Responses API

Cấu trúc dữ liệu phức tạp hơn

class Mistake(BaseModel):
    word: str = Field(description="Từ tiếng Tây Ban Nha bị sai")
    student_answer: str = Field(description="Học viên đã viết gì")
    correct_answer: str = Field(description="Bản dịch đúng")

class DetailedQuizResult(BaseModel): score: int = Field(description="Số câu đúng trên 10") passed: bool = Field(description="True nếu điểm từ 7 trở lên") feedback: str = Field(description="Thông điệp khích lệ kèm mẹo cụ thể")
mistakes: list[Mistake] = Field(description="Danh sách các câu sai")
Làm việc với OpenAI Responses API
response = client.responses.parse(
    model="gpt-5.4-mini",
    instructions="Bạn là gia sư từ vựng tiếng Tây Ban Nha. Chấm bài trắc nghiệm của học viên. Mỗi câu đúng được 2 điểm.",
    input="""1. casa = house
             2. perro = dog
             3. gato = car
             4. libro = library
             5. agua = water""",

text_format=DetailedQuizResult
)
Làm việc với OpenAI Responses API
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'
Làm việc với OpenAI Responses API

Tóm tắt

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
)
Làm việc với OpenAI Responses API

Cùng luyện tập nào!

Làm việc với OpenAI Responses API

Preparing Video For Download...