การตรวจสอบโครงร่างด้วย Pydantic
กำหนดผลลัพธ์เป็น Pydantic BaseModel ตรวจสอบ JSON และดักจับการตอบกลับผิดรูปแบบตั้งแต่เนิ่น ๆ
การตรวจสอบโครงร่างด้วย Pydantic เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ
เหตุใดจึงใช้ Pydantic
Pydantic เป็นไลบรารีด้านความปลอดภัยของชนิดข้อมูลสำหรับ Python ที่ใช้กันเป็นมาตรฐานโดยพฤตินัย โดยมีความสามารถดังนี้:
- ตรวจสอบพจนานุกรมเทียบกับคลาสที่มีคำอธิบายชนิดข้อมูล
- แปลงชนิดข้อมูลให้ตรงกันหรือปฏิเสธเมื่อไม่ตรงกัน
- สร้างสคีมา JSON สำหรับ OpenAI API โดยอัตโนมัติ
- ทำงานร่วมกับ FastAPI, LangChain และ LlamaIndex ได้ดี
Defining a Schema
from pydantic import BaseModel, Field
class Product(BaseModel):
name: str
price: float = Field(gt=0, description='Positive price in USD')
in_stock: bool
tags: list[str] = []Validating a Dict
data = {'name': 'Mug', 'price': 9.99, 'in_stock': True, 'tags': ['kitchen']}
product = Product.model_validate(data)
print(product.price) # 9.99Validating JSON
json_str = '{"name":"Mug","price":9.99,"in_stock":true}'
product = Product.model_validate_json(json_str)Validation Errors
from pydantic import ValidationError
try:
Product.model_validate({'name': 'Mug', 'price': -1, 'in_stock': True})
except ValidationError as e:
print(e)
# [{'type': 'greater_than', 'loc': ('price',), 'msg': 'Input should be greater than 0', ...}]Field-Level Validators
from pydantic import field_validator
class User(BaseModel):
email: str
@field_validator('email')
@classmethod
def must_have_at(cls, v):
if '@' not in v:
raise ValueError('Invalid email')
return v.lower()Nested Models
class Address(BaseModel):
city: str
zip: str
class User(BaseModel):
name: str
address: Address
data = {'name': 'Alice', 'address': {'city': 'Berlin', 'zip': '10115'}}
user = User.model_validate(data)
print(user.address.city)Generating JSON Schema
schema = Product.model_json_schema()
# Pass straight to OpenAI tools or response_formatUsing With OpenAI SDK
from openai import OpenAI
client = OpenAI()
response = client.beta.chat.completions.parse(
model='gpt-4o-2024-08-06',
messages=[{'role': 'user', 'content': 'Give me a product.'}],
response_format=Product
)
product = response.choices[0].message.parsedOptional Fields
from typing import Optional
class Order(BaseModel):
id: int
note: Optional[str] = NoneDefaults
class Settings(BaseModel):
units: str = 'celsius'
notify: bool = Trueชื่อแทน
สำหรับการจับคู่ JSON แบบ snake_case กับ camelCase ของ Python หรือในทางกลับกัน:
class User(BaseModel):
user_id: int = Field(alias='userId')
u = User.model_validate({'userId': 42})
print(u.user_id) # 42ยูเนียนแบบแยกแยะชนิด
สำหรับชนิดข้อมูลหลายรูปแบบ ให้ใช้ยูเนียนแบบแยกแยะชนิดของ Pydantic:
from typing import Literal, Union
from pydantic import Field
class TextMessage(BaseModel):
type: Literal['text']
content: str
class ImageMessage(BaseModel):
type: Literal['image']
url: str
Message = Annotated[Union[TextMessage, ImageMessage], Field(discriminator='type')]เป้าหมายของการตรวจสอบความถูกต้อง
เหตุใดจึงใช้ Pydantic กับเอาต์พุตของเครื่องมือทุกครั้ง
สรุป
Pydantic เป็นชั้นสัญญาระหว่างเอาต์พุตของ LLM เอาต์พุตของเครื่องมือ และโค้ดของคุณ ควรใช้ทุกที่ และใช้ร่วมกับเอาต์พุตแบบมีโครงสร้างเพื่อรับประกันความถูกต้อง
คำถามที่พบบ่อย
บทเรียน “การตรวจสอบโครงร่างด้วย Pydantic” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การตรวจสอบโครงร่างด้วย Pydantic” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การตรวจสอบโครงร่างด้วย Pydantic”
กำหนดผลลัพธ์เป็น Pydantic BaseModel ตรวจสอบ JSON และดักจับการตอบกลับผิดรูปแบบตั้งแต่เนิ่น ๆ คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การตรวจสอบโครงร่างด้วย Pydantic” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม
ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โหมด JSON และผลลัพธ์จากการเรียกใช้เครื่องมือ
- การตรวจสอบโครงร่างด้วย Pydantic
- ลูปซ่อมแซมผลลัพธ์ผิดรูปแบบ
- Instructor / Outlines สำหรับโครงสร้างที่รับประกัน