การเรียกใช้ฟังก์ชันและการใช้เครื่องมือด้วย LLM
การกำหนดเครื่องมือเป็นสคีมา JSON การจัดการ tool_calls ในการตอบกลับ การดำเนินการ และการส่งผลลัพธ์กลับ
การเรียกใช้ฟังก์ชันและการใช้เครื่องมือด้วย LLM เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
การเรียกใช้ฟังก์ชันคืออะไร
การเรียกใช้ฟังก์ชัน (หรือเรียกว่าการใช้เครื่องมือ) ช่วยให้ LLM ขอให้โค้ดของคุณเรียกใช้ฟังก์ชันได้ โมเดลไม่ได้ดำเนินการใด ๆ ด้วยตัวเอง แต่จะส่งคำขอแบบมีโครงสร้างที่ระบุว่า "เรียกใช้ฟังก์ชันนี้ด้วยอาร์กิวเมนต์เหล่านี้" จากนั้นโปรแกรมของคุณจะดำเนินการและส่งผลลัพธ์กลับไป
นี่คือวิธีที่ LLM ดึงข้อมูลปัจจุบัน คำนวณ หรือสั่งให้เกิดการดำเนินการจริง
การอธิบายเครื่องมือ
คุณส่งรายการ เครื่องมือ ให้โมเดล เครื่องมือแต่ละรายการมี name, description และ parameters ที่กำหนดเป็น JSON Schema คำอธิบายมีความสำคัญอย่างยิ่ง เพราะโมเดลใช้คำอธิบายนี้ตัดสินใจว่าเมื่อใดควรใช้เครื่องมือ
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get current weather for a city",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "City name"}
},
"required": ["city"]
}
}
}]JSON Schema สำหรับพารามิเตอร์
ฟิลด์ parameters เป็น JSON Schema มาตรฐาน คุณประกาศออบเจ็กต์ที่มี properties โดยแต่ละรายการมี type และคำอธิบาย พร้อมอาร์เรย์ required วิธีนี้จะบอกโมเดลอย่างชัดเจนว่าควรสร้างอาร์กิวเมนต์ใดบ้าง
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string"},
"units": {"type": "string", "enum": ["celsius", "fahrenheit"]}
},
"required": ["city"]
}ส่งเครื่องมือให้โมเดล
ส่งรายการ tools ให้กับ chat.completions.create() จากนั้นโมเดลอาจตอบกลับเป็นข้อความ หรือเรียกใช้เครื่องมือก็ได้ ขึ้นอยู่กับคำขอของผู้ใช้
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Weather in Tokyo?"}],
tools=tools
)ตรวจจับการเรียกใช้เครื่องมือ
เมื่อโมเดลต้องการใช้เครื่องมือ การตอบกลับจะมี message.tool_calls แทนข้อความปกติ ให้ตรวจสอบว่ารายการนี้มีอยู่หรือไม่ ก่อนสรุปว่าคุณได้รับคำตอบแบบข้อความธรรมดา
msg = response.choices[0].message
if msg.tool_calls:
print("Model wants to call a tool")
else:
print(msg.content)แยกวิเคราะห์อาร์กิวเมนต์
การเรียกใช้เครื่องมือแต่ละครั้งมี function.name และ function.arguments อาร์กิวเมนต์จะมาในรูปแบบ สตริง JSON ดังนั้นให้แยกวิเคราะห์ด้วย json.loads() ก่อนนำไปใช้
import json
call = msg.tool_calls[0]
name = call.function.name
args = json.loads(call.function.arguments)
print(name, args) # get_weather {"city": "Tokyo"}ดำเนินการฟังก์ชัน
ตอนนี้ให้เรียกใช้ฟังก์ชัน Python จริงของ YOU พร้อมอาร์กิวเมนต์ที่แยกวิเคราะห์แล้ว LLM เพียงตัดสินใจว่าจะเรียกใช้ฟังก์ชันใด ส่วนโค้ดของคุณเป็นผู้ดำเนินการจริง
def get_weather(city):
return {"city": city, "temp_c": 18, "condition": "Cloudy"}
result = get_weather(**args)ส่งผลลัพธ์กลับไปยังโมเดล
ส่งผลลัพธ์กลับไปเพื่อให้โมเดลเขียนคำตอบด้วยภาษาธรรมชาติ โดยผนวกข้อความเดิมของผู้ช่วยก่อน แล้วเพิ่มข้อความบทบาท tool ที่มีผลลัพธ์และ tool_call_id ที่ตรงกัน
messages.append(msg) # the assistant tool-call message
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": json.dumps(result)
})การสร้างคำตอบสุดท้าย
เรียกใช้โมเดลอีกครั้งพร้อม messages ที่อัปเดตแล้ว เมื่อมีผลลัพธ์จากเครื่องมือ โมเดลก็จะสร้างคำตอบสุดท้ายที่เป็นมิตรให้ผู้ใช้
final = client.chat.completions.create(
model="gpt-4o",
messages=messages,
tools=tools
)
print(final.choices[0].message.content)วงจรการใช้เครื่องมือทั้งหมด
วงจรทั้งหมดมีดังนี้: (1) ส่งเครื่องมือ (2) โมเดลส่งการเรียกใช้เครื่องมือกลับมา (3) แยกวิเคราะห์อาร์กิวเมนต์ (4) เรียกใช้ฟังก์ชัน (5) ส่งผลลัพธ์กลับเป็นข้อความเครื่องมือ (6) โมเดลเขียนคำตอบ โมเดลอาจขอเรียกใช้เครื่องมือหลายครั้งก่อนเสร็จสิ้น ดังนั้นให้วนลูปจนกว่า tool_calls จะว่าง
ควบคุมการเลือกเครื่องมือ
ใช้พารามิเตอร์ tool_choice เพื่อกำหนดพฤติกรรม "auto" (ค่าเริ่มต้น) อนุญาตให้โมเดลตัดสินใจเอง ส่วน "none" จะห้ามใช้เครื่องมือ และการส่งชื่อเครื่องมือที่เจาะจงจะบังคับให้เรียกใช้ฟังก์ชันนั้นโดยตรง วิธีนี้มีประโยชน์เมื่อต้องรับประกันผลลัพธ์ที่มีโครงสร้าง
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
tools=tools,
tool_choice={"type": "function", "function": {"name": "get_weather"}}
)ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจเรื่องการใช้เครื่องมือของคุณ
สรุป: การเรียกใช้ฟังก์ชัน
คุณกำหนด เครื่องมือ พร้อมชื่อ คำอธิบาย และพารามิเตอร์ JSON Schema แล้วส่งเครื่องมือเหล่านั้นให้โมเดล คุณตรวจจับ tool_calls แยกวิเคราะห์ function.arguments ด้วย json.loads() เรียกใช้ฟังก์ชันจริง และส่งผลลัพธ์กลับเป็นข้อความบทบาท tool พร้อม tool_call_id ที่ตรงกัน
การเรียกโมเดลครั้งสุดท้ายจะแปลงผลลัพธ์ดิบให้เป็นคำตอบที่เป็นธรรมชาติ ทำให้วงจรการใช้เครื่องมือเสร็จสมบูรณ์
คำถามที่พบบ่อย
บทเรียน “การเรียกใช้ฟังก์ชันและการใช้เครื่องมือด้วย LLM” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การเรียกใช้ฟังก์ชันและการใช้เครื่องมือด้วย LLM” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การเรียกใช้ฟังก์ชันและการใช้เครื่องมือด้วย LLM”
การกำหนดเครื่องมือเป็นสคีมา JSON การจัดการ tool_calls ในการตอบกลับ การดำเนินการ และการส่งผลลัพธ์กลับ คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การเรียกใช้ฟังก์ชันและการใช้เครื่องมือด้วย LLM” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม
ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- OpenAI API: chat.completions และการส่งข้อมูลแบบต่อเนื่อง
- Anthropic Claude API ใน Python
- การเรียกใช้ฟังก์ชันและการใช้เครื่องมือด้วย LLM
- วิศวกรรมพรอมต์สำหรับแอป LLM ในระบบจริง