การกำหนดโครงร่างเครื่องมือ (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%
ฟิลด์ที่จำเป็นสามรายการ
คำจำกัดความของเครื่องมือทุกตัวมี:
name— ตัวระบุที่ไม่ซ้ำกัน (snake_case)description— เครื่องมือทำอะไรและควรใช้เมื่อใด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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การทำงานของการเรียกใช้ฟังก์ชัน
- การกำหนดโครงร่างเครื่องมือ (JSON Schema)
- การเลือกเครื่องมือขณะทำงาน
- การส่งผลลัพธ์กลับไปยังโมเดล