OpenAI 最近因應用戶需求推出了一項重要的新功能:API 的結構化輸出。這項功能旨在解決大型語言模型(LLMs)生成 JSON 內容時出現的問題,如幻覺或不完整解析。
新的結構化輸出功能確保模型生成的輸出符合指定的 JSON 架構。這對於維持應用程式間的一致性至關重要,也是開發者最常要求的功能之一。OpenAI 執行長 Sam Altman 表示,這項發布「滿足了許多用戶的迫切需求」。
關於結構化輸出功能的重點:
- 適用於 GPT-4o-mini、GPT-4o 及其微調版本
- 與聊天完成 API、助理 API、批次 API 和視覺輸入相容
- 允許開發者限制 OpenAI 模型以符合數據架構
- 改善模型對複雜數據架構的理解
- 確保遵守數據架構,防止缺少鍵值或無效的枚舉值
- 支援逐步答案生成
- 簡化提示並提供清晰的拒絕聲明
- 遵循現有的 OpenAI 安全政策
OpenAI 聲稱他們最新的 GPT-4o 模型在結構化輸出評估中獲得了「100% 完美」的分數。
該公司承認從開源項目如 outlines、jsonformer、instructor、guidance 和 lark 庫中汲取靈感。
雖然這項功能解決了一個重大需求,但一些開發者指出潛在的限制:
- 由於架構編譯,第一個標記的生成速度較慢
- API 對 JSON 架構的接受度有限
- Python SDK 中廣告宣傳的變更未完全實現
一些開發者建議,像 Instructor + Pydantic 這樣的組合可能仍是使用 OpenAI 和其他 LLM 解決方案實現結構化輸出的最簡單方法。
總的來說,在 OpenAI 的 API 中引入原生結構化輸出支援代表了一個重大進步,但在生產環境中廣泛採用之前可能還需要進一步完善。