使用 JSON Mode 讓 OpenAI API 乖乖回傳 JSON

圖片

有在使用 ChatGPT(OpenAI API)開發的Developers 一定知道,對於開發人員來說,使用OpenAI API有一個重要的技巧,就是要求 API 回傳JSON格式的物件。

這樣的 Prompt 非常好用,因為 ChatGPT 最強的功能可能不是回答正確的答案,但對於理解用戶說的自然語言,絕對可以說是所向披靡、無人能及。

如果在程式碼中,能夠要求OpenAI API固定的回傳JSON格式,這樣我們就可以輕鬆的Parsing回傳結果。然而,過去的OpenAI API,就算你的 Prompt 寫的再好,在幾十次的呼叫當中,總是會有一兩次回傳給你的不是精準的JSON格式,而是帶有描述性的字串,這可能會讓接收的程式立刻崩潰,除非你在程式碼中額外做一些判斷,然後重新呼叫API,retry到接收到正確的JSON格式為止。但顯然,這樣的結構設計會讓程式顯得有點傻。

如果OpenAI API能乖乖的回傳 JSON 不就好了嗎?
恩~ 恩~ OpenAI DevDay 之後,這件事情實現了。

現在你可以在呼叫 Chat API 的時候,加上底下的參數:

"response_format"  :  {"type":  "json_object"  }

這會讓回傳的結果一律變成 JSON 形式。
圖片
這指令必須搭配新的 Model 👉gpt-4-1106-preview 或 gpt-3.5-turbo-1106

JSON Mode可以確保你拿到的一定是一個可以解析(Parsing)的 JSON 字串,這使得你 parsing JSON 的時候,不會得到 null,開發人員終於可以不再碰到因為 ChatGPT 的回傳不確定性,所可能帶來的程式崩潰問題。

我自己覺得,OpenAI DevDay中新推出的JSON Mode這個小功能反而是對開發人員最大的幫助。

留言

這個網誌中的熱門文章

使用LM Studio輕鬆在本地端以API呼叫大語言模型(LLM)

使用 Dify 以No Code方式建立記帳機器人

使用 Dify 建立企業請假機器人

VS Code的字體大小

使用 Dify API 快速建立一個包含前後文記憶的對談機器人