درس ۵ از ۶، خروجی و ابزار
خروجی ساختیافته با 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 هر فیلد بخشی از پرامپت است. هرچه دقیقتر بنویسید، خروجی بهتری میگیرید.