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

การกำหนดโครงร่างเครื่องมือ (JSON Schema)

เขียนคำจำกัดความ JSON Schema สำหรับพารามิเตอร์เครื่องมือ โดยระบุชนิด คำอธิบาย ค่าที่เลือกได้ และฟิลด์ที่จำเป็น

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

สคีมาของเครื่องมือคือ JSON Schema

OpenAI, Anthropic และผู้ให้บริการรายอื่นส่วนใหญ่ใช้ สคีมา JSON สำหรับพารามิเตอร์ของเครื่องมือ

หากคุณเคยใช้ OpenAPI / สแวกเกอร์ คุณก็รู้เรื่องนี้ไปแล้ว 90%

ฟิลด์ที่จำเป็นสามรายการ

คำจำกัดความของเครื่องมือทุกตัวมี:

  1. name — ตัวระบุที่ไม่ซ้ำกัน (snake_case)
  2. description — เครื่องมือทำอะไรและควรใช้เมื่อใด
  3. parameters — สคีมา JSON ของอินพุต

สคีมาขั้นต่ำ

ออบเจ็กต์ที่มีฟิลด์สตริงที่จำเป็นหนึ่งรายการ:

schema = {
    'name': 'search_orders',
    'description': 'Find orders by customer email',
    'parameters': {
        'type': 'object',
        'properties': {
            'email': {
                'type': 'string',
                'description': 'Customer email address'
            }
        },
        'required': ['email']
    }
}
import json
print(json.dumps(schema, indent=2))

ชนิดข้อมูลของ JSON Schema

  • string — ข้อความ
  • integer, number — ตัวเลข
  • boolean — จริง/เท็จ
  • array — รายการ (ต้องมี items ด้วย)
  • object — พจนานุกรม (ต้องมี properties ด้วย)

Enum สำหรับชุดค่าที่จำกัด

ใช้ enum เมื่อมีค่าที่อนุญาตพอดี N ค่า:

unit_param = {
    'unit': {
        'type': 'string',
        'enum': ['C', 'F'],
        'description': 'Temperature unit'
    }
}
# The model will only ever output C or F
print(unit_param)
print("Allowed values:", unit_param['unit']['enum'])

พารามิเตอร์แบบอาร์เรย์

สำหรับอินพุตแบบรายการ ให้กำหนด items:

tags_param = {
    'tags': {
        'type': 'array',
        'items': {'type': 'string'},
        'description': 'List of tags to filter by'
    }
}
print(tags_param)

ออบเจ็กต์แบบซ้อนกัน

คุณสามารถซ้อนออบเจ็กต์ได้ แต่ควรรักษาสคีมาให้ตื้น (สูงสุด 2-3 ระดับ) เพื่อให้โมเดลทำงานได้อย่างน่าเชื่อถือ:

filter_param = {
    'filter': {
        'type': 'object',
        'properties': {
            'min_price': {'type': 'number'},
            'in_stock': {'type': 'boolean'}
        }
    }
}
print(filter_param)

ฟิลด์คำอธิบายมีความสำคัญอย่างยิ่ง

โมเดลเลือกเครื่องมือและเติมอาร์กิวเมนต์โดยอาศัย description ให้ถือว่าคำอธิบายเป็นเอกสาร API:

# Bad
bad = {'description': 'gets data'}

# Good
good = {'description': 'Fetch the most recent 50 orders for the given customer email. Returns order_id, status, total. Use this when the user asks about their order history or order status.'}
print("Bad description:", bad['description'])
print("Good description:", good['description'])

อาร์เรย์ required

ทำเครื่องหมายฟิลด์ที่จำเป็นอย่างชัดเจน โมเดลจะเติมฟิลด์เหล่านี้เสมอ ส่วนฟิลด์ทางเลือกจะเติมเฉพาะเมื่อเกี่ยวข้อง:

tool_params = {
    'parameters': {
        'properties': {
            'city': {'type': 'string'},
            'unit': {'type': 'string', 'enum': ['C', 'F']}
        },
        'required': ['city']
    }
}
print(tool_params)
print("Required fields:", tool_params['parameters']['required'])

Pydantic -> สคีมา JSON

คุณสามารถสร้างสคีมาจากโมเดล Pydantic โดยอัตโนมัติได้:

from pydantic import BaseModel, Field

class SearchArgs(BaseModel):
    email: str = Field(description='Customer email')
    limit: int = Field(50, description='Max orders to return')

schema = SearchArgs.model_json_schema()

โหมดเข้มงวด (เอาต์พุตแบบมีโครงสร้างของ OpenAI)

การเพิ่ม strict: true และ additionalProperties: false รับประกันว่าเอาต์พุตของโมเดลจะตรงกับสคีมาอย่างแม่นยำ:

tools = [{
    'type': 'function',
    'function': {
        'name': 'get_weather',
        'strict': True,
        'parameters': {
            'type': 'object',
            'properties': {'city': {'type': 'string'}},
            'required': ['city'],
            'additionalProperties': False
        }
    }
}]
import json
print(json.dumps(tools, indent=2))

ความสำคัญของคำอธิบาย

เหตุใด description ของเครื่องมือจึงสำคัญมาก

สรุปทบทวน

สคีมาเป็นตัวขับเคลื่อนโมเดล คำอธิบายที่ดี enum สำหรับชุดค่าที่จำกัด อาร์เรย์ required และโหมดเข้มงวดคือกลไกควบคุมความน่าเชื่อถือของคุณ

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

บทเรียน “การกำหนดโครงร่างเครื่องมือ (JSON Schema)” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การกำหนดโครงร่างเครื่องมือ (JSON Schema)”

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

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

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

บทเรียน “การกำหนดโครงร่างเครื่องมือ (JSON Schema)” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การทำงานของการเรียกใช้ฟังก์ชัน
  2. การกำหนดโครงร่างเครื่องมือ (JSON Schema)
  3. การเลือกเครื่องมือขณะทำงาน
  4. การส่งผลลัพธ์กลับไปยังโมเดล
← กลับไปที่ AI Agents