0Pricing
Learn AI with Python · บทเรียน

การเรียกใช้ฟังก์ชันและการใช้เครื่องมือด้วย 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. OpenAI API: chat.completions และการส่งข้อมูลแบบต่อเนื่อง
  2. Anthropic Claude API ใน Python
  3. การเรียกใช้ฟังก์ชันและการใช้เครื่องมือด้วย LLM
  4. วิศวกรรมพรอมต์สำหรับแอป LLM ในระบบจริง
← กลับไปที่ Learn AI with Python