DMflow.chat
一站式整合Facebook、Instagram、Telegram、LINE和網站的聊天機器人,支持ChatGPT和Gemini模型,具備保留歷史紀錄、推播通知、行銷活動和客服轉接功能。
OpenAI在其API中新增了結構化輸出功能,大幅提升了AI模型生成有效JSON的可靠性。這項功能不僅讓開發者能更輕鬆地建立穩定的應用程式,還為AI在非結構化輸入中生成結構化資料開闢了新的可能性。
在人工智慧領域,從非結構化輸入中生成結構化資料一直是一個核心應用場景。無論是透過函數呼叫獲取資料、提取結構化資訊進行資料輸入,還是建立多步驟的代理工作流程,開發者們都在不斷探索如何讓AI更好地完成這些任務。
然而,在此之前,開發者們常常需要依賴開源工具、精心設計的提示,甚至反覆嘗試請求,來確保AI模型的輸出能夠符合他們系統所需的格式。這不僅耗時耗力,還可能影響應用程式的穩定性和可靠性。
OpenAI推出的結構化輸出功能,通過兩種方式解決了這個問題:
這項功能的效果令人驚嘆。在複雜JSON模式的評估中,配備結構化輸出功能的新模型gpt-4o-2024-08-06取得了100%的得分,遠超前代模型gpt-4-0613不到40%的成績。
OpenAI在API中提供了兩種使用結構化輸出的方式:
開發者可以在函數定義中設置strict: true
來啟用結構化輸出。這適用於所有支援工具的模型,包括gpt-4-0613和gpt-3.5-turbo-0613及更高版本。
開發者可以使用response_format
參數的新選項json_schema
來提供JSON Schema。這特別適用於模型需要以結構化方式直接回應用戶,而不是呼叫工具時的情況。
OpenAI採用了一種稱為”約束取樣”或”約束解碼”的技術來實現結構化輸出。這種方法將模型的輸出限制在符合提供的JSON模式的有效標記範圍內,從而確保輸出的有效性。
具體實現步驟如下:
這種方法不僅能處理簡單的JSON結構,還能處理涉及嵌套或遞歸資料結構的複雜模式,這是基於有限狀態機(FSM)的方法難以實現的。
結構化輸出功能為開發者開啟了許多新的可能性,以下是一些潛在的應用場景:
雖然結構化輸出功能強大,但開發者在使用時仍需注意以下幾點:
max_tokens
限制或其他停止條件時,可能無法完全遵循模式。parallel_tool_calls: false
。結構化輸出功能現已在OpenAI API中全面可用:
開發者可以通過查閱OpenAI的官方文檔來開始使用結構化輸出功能。
Q: 結構化輸出功能如何提高JSON生成的可靠性? A: 結構化輸出通過限制模型輸出和優化模型理解複雜JSON模式的能力,將JSON生成的可靠性提高到了100%。
Q: 結構化輸出功能適用於哪些OpenAI模型? A: 結構化輸出適用於支援函數呼叫的所有模型,包括最新的gpt-4o系列和gpt-3.5-turbo系列。
Q: 使用結構化輸出功能會影響API的響應速度嗎? A: 首次使用新的JSON模式可能會有些許延遲,但後續請求不會受到影響,響應速度很快。
Q: 結構化輸出功能有哪些局限性? A: 主要局限包括只支援JSON模式的子集、無法防止所有類型的模型錯誤,以及與並行函數呼叫不相容等。
Q: 如何開始使用結構化輸出功能? A: 開發者可以查閱OpenAI的官方文檔,了解如何在API調用中啟用和配置結構化輸出功能。
一站式整合Facebook、Instagram、Telegram、LINE和網站的聊天機器人,支持ChatGPT和Gemini模型,具備保留歷史紀錄、推播通知、行銷活動和客服轉接功能。
OpenAI o1 模型:解決複雜問題的全新思考型 AI 突破性的 AI 推理能力,為科學、編程和數學領域帶來革命性進展 OpenAI 最近推出了一系列全新的 AI 模型,旨在解決複雜問題並...
GPT-4o-2024 震撼登場:OpenAI 最新人工智能模型帶來革命性突破 OpenAI 最新發布的 GPT-4o-2024-08-06 模型不僅性能大幅提升,還引入了突破性的結構化輸出功...
DMflow.chat 1.0.17版本新功能:Gemini 1.5 Flash模型上線 在DMflow.chat的1.0.17版本中,新增了Gemini 1.5 Flash模型(簡稱Ge...