สรุปเทคนิค Function Calling
สรุปเทคนิค Function Calling
1. นิยาม
Function Calling เป็นกลไกที่ช่วยให้นักพัฒนาสามารถอธิบายเครื่องมือภายนอก (เช่น API) ให้กับ Large Language Model (LLM) ผ่าน JSON schema เมื่อโมเดลตัดสินใจว่าจำเป็นต้องเรียกใช้เครื่องมือเพื่อตอบคำถามของผู้ใช้ โมเดลจะส่งออกข้อมูล JSON แบบมีโครงสร้าง tool_calls ซึ่งระบุชื่อฟังก์ชันและพารามิเตอร์ที่ต้องการเรียกใช้ โค้ดโฮสต์จะแยกวิเคราะห์และดำเนินการเรียกใช้นั้น จากนั้นส่งผลลัพธ์กลับไปยังโมเดลเพื่อสร้างคำตอบสุดท้าย
2. หลักการสำคัญและปัญหาที่แก้ไข
- สาระสำคัญ: วงจรปิดของ "การสนทนาสองรอบ + การดำเนินการระหว่างกลาง" รอบแรกโมเดลตัดสินใจและส่งออกคำขอเรียกใช้เครื่องมือ ขั้นกลางโค้ดดำเนินการเครื่องมือ รอบที่สองโมเดลสร้างคำตอบสุดท้ายตามผลลัพธ์
- ปัญหาที่แก้ไข: แก้ไขปัญหาที่ก่อนหน้านี้การให้โมเดลเรียกใช้เครื่องมือต้องพึ่งพาการแยกวิเคราะห์ภาษาธรรมชาติที่ไม่เสถียรและมีข้อผิดพลาดง่าย (การตัดสินแบบ if/else) โดยใช้เอาต์พุตแบบมีโครงสร้างเพื่อเพิ่มมาตรฐานและความแม่นยำ
3. การแบ่งหน้าที่ (เปรียบเทียบกับการมอบหมายงาน)
- นักพัฒนา (HR): กำหนดเครื่องมือ เขียน JSON Schema ที่อธิบายฟังก์ชัน พารามิเตอร์ ฯลฯ
- โมเดล LLM (ผู้จัดการ): ทำความเข้าใจคำอธิบายเครื่องมือ ตัดสินใจว่าจำเป็นต้องเรียกใช้หรือไม่ เรียกใช้เครื่องมือใด และพารามิเตอร์อะไร จากนั้นส่งออกคำขอเรียกใช้แบบมีโครงสร้าง (
tool_calls) โมเดลทำเพียงการตัดสินใจและสร้างข้อความ ไม่ได้ดำเนินการโค้ดด้วยตนเอง - ตัวดำเนินการ/โค้ดโฮสต์ (พนักงาน): แยกวิเคราะห์คำขอ
tool_callsจากโมเดล ดำเนินการฟังก์ชันหรือ API จริง และส่งคืนผลลัพธ์
4. การกำหนดเครื่องมือ (JSON Schema)
Schema คือ "คู่มือ" ของเครื่องมือ ข้อมูลสำคัญได้แก่:
- name: ตัวระบุเฉพาะของเครื่องมือ
- description: สำคัญอย่างยิ่ง โมเดลพึ่งพาคำอธิบายนี้ทั้งหมดในการตัดสินใจว่าจะเรียกใช้เครื่องมือหรือไม่ ยิ่งคำอธิบายชัดเจนและแม่นยำมากเท่าไร การตัดสินใจของโมเดลก็ยิ่งแม่นยำมากขึ้นเท่านั้น
- parameters: กำหนดพารามิเตอร์ที่เครื่องมือต้องการ พร้อมประเภท คำอธิบาย ข้อจำกัด (เช่น ค่า enum, จำเป็นหรือไม่ ฯลฯ)
5. ขั้นตอนการเรียกใช้แบบสมบูรณ์
บทความใช้ตัวอย่างโค้ดการสอบถามสภาพอากาศเพื่อแสดงกระบวนการทั้งหมด ตั้งแต่ผู้ใช้ถามคำถาม การเรียกใช้โมเดลครั้งแรกพร้อมคำจำกัดความของเครื่องมือ โมเดลส่งคืน tool_calls โค้ดดำเนินการฟังก์ชัน การใส่ผลลัพธ์กลับเข้าไปในประวัติการสนทนาในรูปแบบข้อความ role: "tool" และสุดท้ายโมเดลสร้างคำตอบภาษาธรรมชาติ
6. คุณสมบัติขั้นสูง - การเรียกใช้เครื่องมือแบบขนาน
เมื่อคำถามของผู้ใช้ต้องการเครื่องมือหลายตัวทำงานร่วมกัน (เช่น สอบถามสภาพอากาศของหลายเมืองพร้อมกัน) โมเดลสามารถส่งออกรายการ tool_calls หลายรายการในการตอบสนองครั้งเดียว โค้ดโฮสต์สามารถเรียกใช้เครื่องมือเหล่านี้แบบขนาน จากนั้นส่งผลลัพธ์ทั้งหมดกลับไปยังโมเดลเพื่อสังเคราะห์ ช่วยเพิ่มประสิทธิภาพ
评论
暂无已展示的评论。
发表评论(匿名)