درس ۵ از ۶، خروجی و ابزار

خروجی ساخت‌یافته با Pydantic

متنی ۱۸ دقیقه به‌روز شده در ۶ آبان ۱۴۰۵

وقتی خروجی مدل قرار است به کد دیگری برسد، متن آزاد کافی نیست. with_structured_output شِمای شما را به مدل می‌دهد و پاسخ را به همان شکل برمی‌گرداند.

from pydantic import BaseModel, Field

class Concept(BaseModel):
    """توضیح یک مفهوم برنامه‌نویسی"""
    name: str = Field(description="نام مفهوم")
    summary: str = Field(description="توضیح در یک یا دو جمله")
    difficulty: int = Field(ge=1, le=5, description="سختی از ۱ تا ۵")

structured = model.with_structured_output(Concept)
result = structured.invoke("مفهوم closure در پایتون را توضیح بده")
print(result.name, result.difficulty)

result یک نمونه‌ی Concept است، نه رشته. اعتبارسنجی Pydantic هم انجام می‌شود.

توضیح فیلدها مهم است

description هر فیلد بخشی از پرامپت است. هرچه دقیق‌تر بنویسید، خروجی بهتری می‌گیرید.