ณ วันที่ 11 มีนาคม 2025 เราได้เปิดตัวองค์ประกอบพื้นฐานของแพลตฟอร์มเอเจนต์ใหม่ของเราแล้ว สำหรับรายละเอียด โปรดดูเอกสาร API สำหรับResponses API, เครื่องมือซึ่งรวมถึงWeb Search, File Search และ Computer Use รวมถึงAgents SDK พร้อมTracing ของเรา
Function Calling ช่วยให้คุณเชื่อมต่อโมเดลของ OpenAI กับเครื่องมือและระบบภายนอกได้ ฟีเจอร์นี้มีประโยชน์ในหลายด้าน เช่น เพิ่มความสามารถให้ผู้ช่วย AI หรือสร้างการผสานรวมอย่างลึกซึ้งระหว่างแอปพลิเคชันของคุณกับ LLM
ดูข้อมูลเพิ่มเติมในคู่มือนักพัฒนาเกี่ยวกับ Function Callingของเรา
ในเดือนมิถุนายน 2024 เราได้เปิดตัวผลลัพธ์แบบมีโครงสร้าง สำหรับโมเดลและการกำหนดค่าคำขอที่รองรับ เมื่อโมเดลส่ง Function Calling ออกมา การตั้งค่า strict: true ในคำจำกัดความของฟังก์ชันจะช่วยให้มั่นใจว่าอาร์กิวเมนต์ที่สร้างขึ้นเป็นไปตาม Schema ที่ระบุ ตราบใดที่ Schema นั้นใช้ชุดย่อยของ JSON Schema ที่รองรับและตรงตามข้อกำหนดของโหมดเข้มงวด คำขอที่ใช้ Schema ซึ่งไม่รองรับหรือไม่เป็นไปตามข้อกำหนดจะถูกปฏิเสธพร้อมข้อความแสดงข้อผิดพลาด
ในเดือนตุลาคม 2024 เราได้เปิดตัวฟีเจอร์ “สร้างอะไรก็ได้” ซึ่งช่วยให้นักพัฒนาอธิบายฟังก์ชันแล้ววางคำอธิบายนั้นโดยตรง หรือวางโค้ดเพื่อสร้าง Schema ของฟังก์ชันที่ถูกต้องได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับ “สร้างอะไรก็ได้” ได้ในบทความในศูนย์ช่วยเหลือนี้
ฉันจะใช้ Function Calling ได้อย่างไร
Function Calling มีประโยชน์สำหรับกรณีการใช้งานจำนวนมาก เช่น:
ช่วยให้ผู้ช่วยดึงข้อมูลได้:
ช่วยให้ผู้ช่วยดำเนินการได้:
ช่วยให้ผู้ช่วยทำการคำนวณได้:
การสร้างเวิร์กโฟลว์ที่สมบูรณ์:
ไปป์ไลน์การดึงข้อมูลที่ดึงข้อความดิบ จากนั้นแปลงเป็นข้อมูลแบบมีโครงสร้างและบันทึกไว้ในฐานข้อมูล
Function Calling รองรับใน Responses API ซึ่งรวมความสามารถที่ก่อนหน้านี้แยกอยู่ใน Chat Completions API และ Assistants API เข้าด้วยกัน
ฉันจะใช้โหมด JSON ได้อย่างไร
เมื่อเปิดโหมด JSON แล้ว เอาต์พุตของโมเดลจะได้รับการรับประกันว่าเป็น JSON ที่ถูกต้อง ยกเว้นในบางกรณีพิเศษที่คุณควรตรวจพบและจัดการอย่างเหมาะสม
หากต้องการขอโหมด JSON ด้วย Chat Completions API ให้ตั้งค่า response_format เป็น { "type": "json_object" } บนโมเดลที่รองรับ เมื่อใช้ Responses API ให้ตั้งค่า text.format เป็น { "type": "json_object" } เช่น text: { "format": { "type": "json_object" } } ในกรณีที่ใช้ได้ ไม่ว่าจะใช้ API ใด โหมด JSON จะทำงานก็ต่อเมื่อเป็นไปตามข้อกำหนดเบื้องต้นของโมเดล/ข้อความ/เครื่องมือเท่านั้น (เช่น โมเดลรองรับ json_object, การสนทนามีคำสั่งให้สร้าง JSON และข้อจำกัดของเครื่องมือใดๆ เข้ากันได้) ข้อความคำขอหรือข้อความอินพุตอย่างน้อยหนึ่งรายการในบริบทอินพุตที่มีผลใช้งานต้องมี json ในรูปแบบที่ไม่คำนึงถึงตัวพิมพ์เล็ก-ใหญ่ เช่น JSON, json หรือ Json; มิฉะนั้น API จะส่งคืนข้อผิดพลาด ใน Responses ฟิลด์ instructions ระดับบนสุดเพียงอย่างเดียวไม่ผ่านการตรวจสอบนี้ เมื่อใช้ Function Calling บนโมเดล/เส้นทางที่เข้ากันได้ ข้อจำกัด JSON จะถูกนำไปใช้กับอาร์กิวเมนต์การเรียกฟังก์ชันโดยอัตโนมัติ; โมเดลหรือชุดเครื่องมือ/รูปแบบการตอบกลับที่ไม่เข้ากันอาจถูกปฏิเสธหรืออาจไม่ใช้การสุ่มตัวอย่างที่ถูกจำกัดด้วย JSON
หมายเหตุสำคัญ:
เมื่อใช้โหมด JSON คุณต้องสั่งให้โมเดลสร้าง JSON ผ่านข้อความบางรายการในการสนทนาเสมอ เช่น ผ่านข้อความระบบของคุณ หากคุณไม่ใส่คำสั่งที่ชัดเจนให้สร้าง JSON โมเดลอาจสร้างลำดับอักขระเว้นว่างที่ไม่สิ้นสุด และคำขออาจทำงานต่อเนื่องจนกว่าจะถึงขีดจำกัด Token เพื่อช่วยให้แน่ใจว่าคุณจะไม่ลืม โหมด JSON จะปฏิเสธคำขอ เว้นแต่ว่าข้อความอินพุตหรือคำสั่งที่เกี่ยวข้องจะมีคำว่า
jsonในรูปแบบใดรูปแบบหนึ่ง โดยไม่คำนึงถึงตัวพิมพ์เล็ก-ใหญ่โหมด JSON จะไม่รับประกันว่าเอาต์พุตตรงกับ Schema ใดๆ ที่เฉพาะเจาะจง เพียงรับประกันว่าเอาต์พุตถูกต้องและแยกวิเคราะห์ได้โดยไม่มีข้อผิดพลาดเท่านั้น คุณควรใช้ผลลัพธ์แบบมีโครงสร้างเพื่อให้แน่ใจว่าเอาต์พุตตรงกับ Schema ของคุณ หรือหากทำไม่ได้ คุณควรใช้ไลบรารีตรวจสอบความถูกต้องและอาจลองใหม่ เพื่อให้แน่ใจว่าเอาต์พุตตรงกับ Schema ที่คุณต้องการ
แอปพลิเคชันของคุณต้องตรวจพบและจัดการกรณีพิเศษที่อาจทำให้เอาต์พุตของโมเดลไม่ใช่อ็อบเจ็กต์ JSON ที่สมบูรณ์ (ดูด้านล่าง)
