นักพัฒนาสามารถระบุ JSON Schema ผ่านพารามิเตอร์ response_format โดยใช้ json_schema ซึ่งต้องมีการนำไปใช้ dynamic constrained decoding โดยการสร้างไวยากรณ์ (grammar) ที่แทน Schema นั้น และต้องมีการประมวลผลล่วงหน้าเพื่อรองรับการสุ่มตัวอย่างของโมเดล
ในระหว่างการสุ่มตัวอย่าง โมเดลจะตรวจสอบความถูกต้องของแต่ละโทเค็นที่สร้างขึ้นตามกฎในไวยากรณ์ ซึ่งแตกต่างจากวิธีอื่นที่อาจใช้ finite state machines (FSMs) หรือ regexes แต่โมเดลใหม่ เช่น gpt-4o, gpt-4o-mini, และโมเดลที่ใหม่กว่า ยังคงรองรับการใช้งานนี้ และยังเข้ากันได้กับ Vision inputs ด้วย
การเปลี่ยนไปใช้ gpt-4o-2024-08-06 ช่วยให้นักพัฒนาประหยัดค่าใช้จ่ายได้ถึง 50% สำหรับอินพุต และ 33% สำหรับเอาต์พุต เมื่อเทียบกับ gpt-4o-2024-05-13
สำหรับรายละเอียดเพิ่มเติม สามารถศึกษาได้จากเอกสารของ OpenAI
ศัพท์ที่ควรรู้
- response_format – พารามิเตอร์ที่ใช้กำหนดรูปแบบการตอบกลับของโมเดล เช่น ต้องการให้เป็น JSON
- json_schema – โครงสร้างมาตรฐานที่ใช้กำหนดรูปแบบของข้อมูลที่ต้องการให้โมเดลสร้างขึ้น
- dynamic constrained decoding – กระบวนการที่โมเดลจะตรวจสอบความถูกต้องของแต่ละโทเค็นที่สร้างขึ้นตามกฎที่กำหนดแบบเรียลไทม์
- latency penalty – ความล่าช้าที่เกิดขึ้นในการเรียกใช้งานครั้งแรก เนื่องจากต้องมีการประมวลผล Schema ล่วงหน้า
- gaps between models – ความแตกต่างระหว่างโมเดล เช่น gpt-4o รองรับโครงสร้างที่ซับซ้อนกว่า FSMs ทั่วไป
ที่มา: OpenAI