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

Instructor / Outlines สำหรับโครงสร้างที่รับประกัน

Instructor (Python) และ Outlines จำกัดการถอดรหัส เพื่อไม่ให้โมเดลสร้าง JSON ที่ไม่ถูกต้องได้

Instructor / Outlines สำหรับโครงสร้างที่รับประกัน เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

ไลบรารีหลักสองรายการ

แนวทางหลักสองแบบสำหรับเอาต์พุตแบบมีโครงสร้างที่รับประกัน:

  • Instructor (Jason Liu) — ตัวครอบ Pydantic สำหรับ OpenAI, Anthropic และผู้ให้บริการอีกมากมาย
  • Outlines (.txt) — การถอดรหัสแบบมีข้อจำกัดสำหรับโมเดล OSS

Instructor Basics

# pip install instructor openai
import instructor
from openai import OpenAI
from pydantic import BaseModel

client = instructor.from_openai(OpenAI())

class User(BaseModel):
    name: str
    age: int

user = client.chat.completions.create(
    model='gpt-4o-mini',
    response_model=User,
    messages=[{'role': 'user', 'content': 'Alice, 30'}]
)
print(user.name, user.age)

กลไกเบื้องหลังของ Instructor

เบื้องหลัง Instructor จะ:

  1. สร้างสคีมา JSON จากโมเดล Pydantic ของคุณ
  2. เพิ่มสคีมานั้นเป็นเครื่องมือในการเรียกใช้ OpenAI
  3. บังคับให้เรียกใช้เครื่องมือนั้น
  4. แยกวิเคราะห์อาร์กิวเมนต์และส่งคืนอินสแตนซ์ Pydantic
  5. ลองใหม่พร้อมซ่อมแซมเมื่อการตรวจสอบความถูกต้องเกิดข้อผิดพลาด

Instructor with Validation

from pydantic import field_validator

class User(BaseModel):
    name: str
    age: int

    @field_validator('age')
    @classmethod
    def positive(cls, v):
        if v <= 0:
            raise ValueError('Age must be positive')
        return v

# Instructor catches ValidationError and retries automatically

Streaming Instructor

for partial in client.chat.completions.create_partial(
    model='gpt-4o-mini',
    response_model=User,
    messages=[{'role': 'user', 'content': 'Alice, 30'}]
):
    print(partial)
# Streams partial Pydantic instances as fields fill in.

Instructor with Anthropic

from anthropic import Anthropic
client = instructor.from_anthropic(Anthropic())

user = client.messages.create(
    model='claude-sonnet-4-5',
    max_tokens=1024,
    response_model=User,
    messages=[{'role': 'user', 'content': 'Alice, 30'}]
)

Outlines สำหรับโมเดล OSS

Outlines ใช้การถอดรหัสที่จำกัดด้วยไวยากรณ์ โดยทำงานร่วมกับ HuggingFace, vLLM และ llama.cpp:

# pip install outlines
import outlines

model = outlines.models.transformers('mistralai/Mistral-7B-Instruct-v0.2')

generator = outlines.generate.json(model, User)
user = generator('Alice, 30')

เหตุใดจึงใช้การถอดรหัสแบบมีข้อจำกัด

Outlines ตรวจสอบว่าโทเค็นใดถูกต้องตามสคีมาในแต่ละขั้นตอน แล้วปิดกั้นโทเค็นที่ไม่ถูกต้อง โมเดลจึงไม่สามารถส่ง JSON ที่ไม่ถูกต้องออกมาได้โดยแท้จริง

นิพจน์ปกติและตัวเลือกของ Outlines

คุณสามารถจำกัดผลลัพธ์ให้ตรงกับนิพจน์ปกติหรือรายการตัวเลือกได้:

import outlines.text.generate as g
yes_no = g.choice(model, ['yes', 'no'])
result = yes_no('Are bananas fruits?')   # 'yes'

การใช้ทั้งสองแนวทางร่วมกัน

เพื่อความน่าเชื่อถือสูงสุด:

  1. ใช้ Instructor สำหรับโมเดลที่มีการจัดการหรือโมเดลปิด (OpenAI, Anthropic)
  2. ใช้ Outlines สำหรับโมเดลที่โฮสต์ด้วยตนเอง
  3. ใช้โมเดล Pydantic ร่วมกันได้ทั้งสองแนวทาง

การเปรียบเทียบต้นทุน

  • Strict Outputs (แบบเนทีฟของ OpenAI) — รวมอยู่ในราคาแล้ว
  • Instructor — มีค่าใช้จ่ายเพิ่มเติมเล็กน้อยจากการลองใหม่เมื่อการตรวจสอบความถูกต้องล้มเหลว
  • Outlines — ปริมาณงานลดลงเล็กน้อยจากการปิดกั้นโทเค็น แต่ไม่มีการเรียกใช้เพิ่มเติม

ควรใช้แบบใดเมื่อใด

กรณีใช้งานเครื่องมือ
OpenAI/AnthropicInstructor + Pydantic
OSS ที่โฮสต์ด้วยตนเองOutlines
เส้นทางที่ไวต่อเวลาแฝงStructured Outputs ของ OpenAI (แบบเนทีฟ)

แนวทางของ Outlines

Outlines รับประกันเอาต์พุตแบบมีโครงสร้างได้อย่างไร

สรุป

สำหรับ OpenAI/Anthropic ให้ใช้ Structured Outputs แบบเนทีฟหรือ Instructor สำหรับ OSS ให้ใช้ Outlines โมเดล Pydantic ทำหน้าที่เชื่อมทุกอย่างเข้าด้วยกัน

คำถามที่พบบ่อย

บทเรียน “Instructor / Outlines สำหรับโครงสร้างที่รับประกัน” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “Instructor / Outlines สำหรับโครงสร้างที่รับประกัน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “Instructor / Outlines สำหรับโครงสร้างที่รับประกัน”

Instructor (Python) และ Outlines จำกัดการถอดรหัส เพื่อไม่ให้โมเดลสร้าง JSON ที่ไม่ถูกต้องได้ คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “Instructor / Outlines สำหรับโครงสร้างที่รับประกัน” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม

ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. โหมด JSON และผลลัพธ์จากการเรียกใช้เครื่องมือ
  2. การตรวจสอบโครงร่างด้วย Pydantic
  3. ลูปซ่อมแซมผลลัพธ์ผิดรูปแบบ
  4. Instructor / Outlines สำหรับโครงสร้างที่รับประกัน
← กลับไปที่ AI Agents