การตรวจสอบผลลัพธ์เครื่องมือ (Pydantic)
แยกวิเคราะห์ผลลัพธ์เครื่องมือทุกครั้งผ่านโมเดล Pydantic เพื่อให้แสดงความล้มเหลวอย่างชัดเจนเมื่อการตอบกลับผิดรูปแบบ
การตรวจสอบผลลัพธ์เครื่องมือ (Pydantic) เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ
ไว้ใจแต่ต้องตรวจสอบ
ผลลัพธ์จากเครื่องมือมาจากโลกภายนอก ทั้ง API หน้าเว็บ และโมเดล การตอบกลับที่มีรูปแบบผิดหรือไม่คาดคิดอาจทำให้เอเจนต์หยุดทำงาน หรือที่แย่กว่านั้นคือป้อนข้อมูลผิดให้ LLM โดยไม่แสดงอาการ
ตรวจสอบผลลัพธ์จากเครื่องมือทุกครั้งเทียบกับแบบแผนข้อมูล
โมเดล Pydantic
กำหนดรูปแบบข้อมูลที่คาดหวัง:
from pydantic import BaseModel, HttpUrl
class SearchResult(BaseModel):
title: str
url: HttpUrl
snippet: str
score: float = 0.0Validate at the Boundary
from pydantic import ValidationError
def search(query):
raw = requests.post('https://api.tavily.com/search', json={'query': query}).json()
results = []
for r in raw.get('results', []):
try:
results.append(SearchResult.model_validate(r))
except ValidationError as e:
log.warning('Bad search result skipped: %s', e)
return resultsรายการที่มีการตรวจสอบด้วยโมเดล
ตรวจสอบการตอบกลับทั้งหมด:
from pydantic import BaseModel
class SearchResponse(BaseModel):
results: list[SearchResult]
response = SearchResponse.model_validate(raw)ตัวตรวจสอบฟิลด์
การตรวจสอบแบบกำหนดเองภายในฟิลด์:
from pydantic import field_validator
class SearchResult(BaseModel):
score: float
@field_validator('score')
@classmethod
def score_in_range(cls, v):
if not 0 <= v <= 1:
raise ValueError('score out of [0,1]')
return vเข้มงวดเทียบกับผ่อนปรน
โดยค่าเริ่มต้น Pydantic จะแปลงชนิดข้อมูลให้กันได้ เช่น แปลงสตริงเป็นจำนวนเต็มเมื่อทำได้ หากต้องการตรวจสอบอย่างเข้มงวด:
from pydantic import StrictInt
class User(BaseModel):
age: StrictInt # rejects '25' (string)Default Values for Missing Fields
class Tool(BaseModel):
name: str
description: str = 'No description provided' # fallbackตรวจสอบเอาต์พุตแบบมีโครงสร้างของ LLM
บังคับให้โมเดลส่งคืน JSON ที่ตรงกับแบบแผน Pydantic โปรดดูบทเรียนเอาต์พุตแบบมีโครงสร้าง จากนั้นตรวจสอบอีกครั้งที่ขอบเขตเพื่อเพิ่มการป้องกันอีกชั้น
ตรวจสอบอาร์กิวเมนต์ของเครื่องมือ
ตรวจสอบ tool_call.arguments ของโมเดลก่อนดำเนินการ:
class SearchArgs(BaseModel):
query: str
k: int = 5
args = SearchArgs.model_validate_json(tool_call.function.arguments)
results = search(args.query, args.k)ใช้ข้อผิดพลาดในการตรวจสอบเป็นผลลัพธ์ของเครื่องมือ
หากการตรวจสอบล้มเหลว ให้ส่งข้อผิดพลาดกลับไปยังโมเดล เพื่อให้โมเดลลองใหม่ด้วยอาร์กิวเมนต์ที่แก้ไขแล้ว:
try:
args = SearchArgs.model_validate_json(...)
except ValidationError as e:
return {'error': f'Invalid arguments: {e}'}การจัดการรุ่นของแบบแผนข้อมูล
เมื่อแบบแผนข้อมูลเอาต์พุตของเครื่องมือเปลี่ยนแปลง ให้กำหนดรุ่น:
class SearchResultV2(BaseModel):
title: str
url: HttpUrl
relevance: float # was 'score' in v1สร้างแบบแผน JSON จาก Pydantic
สำหรับคำจำกัดความแบบแผนของเครื่องมือ ให้สร้างจากคลาส Pydantic ของคุณ:
schema = SearchArgs.model_json_schema()
# Use directly as the 'parameters' for an OpenAI tool definition.เป้าหมายของการตรวจสอบ
เหตุใดจึงควรใช้ Pydantic กับผลลัพธ์จากเครื่องมือทุกครั้ง
สรุป
ใช้ Pydantic ที่ทุกขอบเขต ได้แก่ อาร์กิวเมนต์ของเครื่องมือขาเข้า ผลลัพธ์จากเครื่องมือขาออก และเอาต์พุตแบบมีโครงสร้างของ LLM ความล้มเหลวที่แสดงให้เห็นชัดเจนย่อมดีกว่าข้อมูลเสียหายที่เกิดขึ้นโดยไม่แสดงอาการ
คำถามที่พบบ่อย
บทเรียน “การตรวจสอบผลลัพธ์เครื่องมือ (Pydantic)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การตรวจสอบผลลัพธ์เครื่องมือ (Pydantic)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การตรวจสอบผลลัพธ์เครื่องมือ (Pydantic)”
แยกวิเคราะห์ผลลัพธ์เครื่องมือทุกครั้งผ่านโมเดล Pydantic เพื่อให้แสดงความล้มเหลวอย่างชัดเจนเมื่อการตอบกลับผิดรูปแบบ คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การตรวจสอบผลลัพธ์เครื่องมือ (Pydantic)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม
ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เครื่องมือแบบทำซ้ำได้อย่างปลอดภัยและผลข้างเคียง
- การลองใหม่ด้วยการหน่วงแบบทวีคูณ
- หมดเวลาและตัวตัดวงจร
- การตรวจสอบผลลัพธ์เครื่องมือ (Pydantic)