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