OpenAI推出結構化輸出功能:讓AI生成的JSON更加可靠

OpenAI在其API中新增了結構化輸出功能,大幅提升了AI模型生成有效JSON的可靠性。這項功能不僅讓開發者能更輕鬆地建立穩定的應用程式,還為AI在非結構化輸入中生成結構化資料開闢了新的可能性。

結構化輸出:AI生成JSON的革命性進展

在人工智慧領域,從非結構化輸入中生成結構化資料一直是一個核心應用場景。無論是透過函數呼叫獲取資料、提取結構化資訊進行資料輸入,還是建立多步驟的代理工作流程,開發者們都在不斷探索如何讓AI更好地完成這些任務。

然而,在此之前,開發者們常常需要依賴開源工具、精心設計的提示,甚至反覆嘗試請求,來確保AI模型的輸出能夠符合他們系統所需的格式。這不僅耗時耗力,還可能影響應用程式的穩定性和可靠性。

結構化輸出的突破

OpenAI推出的結構化輸出功能,通過兩種方式解決了這個問題:

  1. 限制模型輸出: 確保AI模型的輸出嚴格遵循開發者提供的JSON模式。
  2. 模型優化: 訓練模型更好地理解和處理複雜的JSON模式。

這項功能的效果令人驚嘆。在複雜JSON模式的評估中,配備結構化輸出功能的新模型gpt-4o-2024-08-06取得了100%的得分,遠超前代模型gpt-4-0613不到40%的成績。

如何使用結構化輸出

OpenAI在API中提供了兩種使用結構化輸出的方式:

1. 函數呼叫

開發者可以在函數定義中設置strict: true來啟用結構化輸出。這適用於所有支援工具的模型,包括gpt-4-0613和gpt-3.5-turbo-0613及更高版本。

2. 回應格式的新選項

開發者可以使用response_format參數的新選項json_schema來提供JSON Schema。這特別適用於模型需要以結構化方式直接回應用戶,而不是呼叫工具時的情況。

結構化輸出的技術原理

OpenAI採用了一種稱為”約束取樣”或”約束解碼”的技術來實現結構化輸出。這種方法將模型的輸出限制在符合提供的JSON模式的有效標記範圍內,從而確保輸出的有效性。

具體實現步驟如下:

  1. 將JSON模式轉換為上下文無關語法(CFG)。
  2. 在取樣過程中,根據之前生成的標記和語法規則,動態確定下一個有效的標記。
  3. 使用這個有效標記列表來遮罩下一個取樣步驟,有效地將無效標記的概率降為零。

這種方法不僅能處理簡單的JSON結構,還能處理涉及嵌套或遞歸資料結構的複雜模式,這是基於有限狀態機(FSM)的方法難以實現的。

結構化輸出的應用場景

結構化輸出功能為開發者開啟了許多新的可能性,以下是一些潛在的應用場景:

  1. 動態生成用戶界面: 根據用戶意圖生成符合特定結構的UI元素描述。
  2. 資料提取與分析: 從非結構化文本中提取結構化資訊,如會議記錄中的待辦事項、截止日期等。
  3. 自動化報告生成: 將原始資料轉換為結構化的報告格式。
  4. 對話系統優化: 確保聊天機器人的回應符合預定義的結構,便於後續處理。

結構化輸出的限制與注意事項

雖然結構化輸出功能強大,但開發者在使用時仍需注意以下幾點:

  • 僅支援JSON模式的子集,詳情請參閱官方文檔。
  • 首次使用新模式可能會有額外延遲,但後續請求將快速響應。
  • 如果模型選擇拒絕不安全的請求,可能無法遵循模式。
  • 達到max_tokens限制或其他停止條件時,可能無法完全遵循模式。
  • 結構化輸出不能防止所有類型的模型錯誤,如數學計算錯誤。
  • 與並行函數呼叫不相容,需設置parallel_tool_calls: false
  • 不符合零資料保留(ZDR)標準。

結構化輸出的可用性

結構化輸出功能現已在OpenAI API中全面可用:

  • 支援函數呼叫的結構化輸出適用於所有支援API中函數呼叫的模型。
  • 支援響應格式的結構化輸出適用於gpt-4o-mini和gpt-4o-2024-08-06及其微調模型。
  • 兼容聊天完成API、助理API和批次API。
  • 支援視覺輸入。

開發者可以通過查閱OpenAI的官方文檔來開始使用結構化輸出功能。

常見問題

  1. Q: 結構化輸出功能如何提高JSON生成的可靠性? A: 結構化輸出通過限制模型輸出和優化模型理解複雜JSON模式的能力,將JSON生成的可靠性提高到了100%。

  2. Q: 結構化輸出功能適用於哪些OpenAI模型? A: 結構化輸出適用於支援函數呼叫的所有模型,包括最新的gpt-4o系列和gpt-3.5-turbo系列。

  3. Q: 使用結構化輸出功能會影響API的響應速度嗎? A: 首次使用新的JSON模式可能會有些許延遲,但後續請求不會受到影響,響應速度很快。

  4. Q: 結構化輸出功能有哪些局限性? A: 主要局限包括只支援JSON模式的子集、無法防止所有類型的模型錯誤,以及與並行函數呼叫不相容等。

  5. Q: 如何開始使用結構化輸出功能? A: 開發者可以查閱OpenAI的官方文檔,了解如何在API調用中啟用和配置結構化輸出功能。

Share on:
Previous: 在 Wix 上善用 Google Workspace 的 Gemini AI:提升小型企業效率的革命性工具
Next: ChatGPT進階語音模式:AI對話革命,你準備好了嗎?
DMflow.chat

DMflow.chat

廣告

DMflow.chat:智能整合,創新溝通!支援持久記憶、客製欄位,無縫連接資料庫與表單,還能自行接 API 輸出資料,讓網頁互動更加靈活高效!

ChatGPT 搜尋免登入上線:Google 搜尋會受到怎樣的影響?
7 February 2025

ChatGPT 搜尋免登入上線:Google 搜尋會受到怎樣的影響?

ChatGPT 搜尋免登入上線:Google 搜尋會受到怎樣的影響? 近期 OpenAI 在 ChatGPT.com 推出一項新功能,讓使用者可以不用登入就能使用 ChatGPT 搜尋。...

Deep Research:ChatGPT 革命性研究功能全面解析
3 February 2025

Deep Research:ChatGPT 革命性研究功能全面解析

Deep Research:ChatGPT 革命性研究功能全面解析 引言:AI 研究助理的新紀元 在當今快速發展的科技世界中,資訊獲取和深度研究變得越來越重要。OpenAI 推出的 D...

OpenAI 最新推出 o3-mini 模型:高效能 AI 的新里程碑
1 February 2025

OpenAI 最新推出 o3-mini 模型:高效能 AI 的新里程碑

OpenAI 最新推出 o3-mini 模型:高效能 AI 的新里程碑 OpenAI 於 2025 年1月底推出最新一代的小型 AI 模型 - o3-mini,這款模型不僅延續了前代產品...

OpenAI推出Operator:AI代理自動化網頁任務
24 January 2025

OpenAI推出Operator:AI代理自動化網頁任務

OpenAI推出Operator:AI代理自動化網頁任務 OpenAI 最新推出名為「Operator」的 AI 代理,它能夠像人類一樣使用瀏覽器完成各種網頁任務,從訂購雜貨到預訂行程,...

OpenAI ChatGPT 免費版大升級:全新 o3-mini 模型登場,付費用戶獨享更多優勢!
24 January 2025

OpenAI ChatGPT 免費版大升級:全新 o3-mini 模型登場,付費用戶獨享更多優勢!

OpenAI ChatGPT 免費版大升級:全新 o3-mini 模型登場,付費用戶獨享更多優勢! OpenAI 宣布 ChatGPT 免費版將升級至全新 o3-mini 模型,提供更快...

ChatGPT 排程任務完整使用指南:讓 AI 助理自動化完成您的日常工作
16 January 2025

ChatGPT 排程任務完整使用指南:讓 AI 助理自動化完成您的日常工作

ChatGPT 排程任務完整使用指南:讓 AI 助理自動化完成您的日常工作 前言:為什麼需要 ChatGPT 排程任務? 在現代數位工作環境中,自動化已成為提升工作效率的關鍵。ChatGPT...

打造智慧對話:DMflow.chat 助您輕鬆建立機器人(什麼是dmflow.chat)
15 January 2025

打造智慧對話:DMflow.chat 助您輕鬆建立機器人(什麼是dmflow.chat)

打造智慧對話:DMflow.chat 助您輕鬆建立機器人(什麼是dmflow.chat) DMflow.chat 是一個功能強大的多管道問答機器人平台,結合了大型語言模型 (LLM) 的...

Canva 收購 Leonardo.AI:擴展 AI 功能,挑戰 Adobe
30 July 2024

Canva 收購 Leonardo.AI:擴展 AI 功能,挑戰 Adobe

Canva收購Leonardo.AI:人工智能設計領域的重大突破 澳洲設計平台巨頭Canva收購AI新創Leonardo.AI,強化生成式AI能力,挑戰Adobe市場地位。本文深入分析此次收購...

提示工程:優化大型語言模型輸出的策略與技巧
23 July 2024

提示工程:優化大型語言模型輸出的策略與技巧

提示工程:優化大型語言模型輸出的策略與技巧 本指南分享了如何從大型語言模型(如 GPT-4)中獲得更好結果的策略和技巧。這些方法可以單獨使用,也可以組合使用以達到更好的效果。 六大策略獲...