0Pricing
AI Agents · บทเรียน

การตรวจสอบผลลัพธ์เครื่องมือ (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.0

Validate 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เครื่องมือแบบทำซ้ำได้อย่างปลอดภัยและผลข้างเคียง
  2. การลองใหม่ด้วยการหน่วงแบบทวีคูณ
  3. หมดเวลาและตัวตัดวงจร
  4. การตรวจสอบผลลัพธ์เครื่องมือ (Pydantic)
← กลับไปที่ AI Agents