實用工具

JSON 轉 JSON Schema 產生器

從 JSON 範例推斷 JSON Schema,可切換 OpenAI 嚴格模式,直接用於結構化輸出和函式呼叫。

瀏覽器本機執行AI 開發工具1.4萬
免費

輸入

0 B

結果

結果會顯示在這裡。

結構化輸出和函式呼叫都需要一份 JSON Schema,而替層層巢狀的 API 回應手寫 Schema 既慢又容易寫出細微的錯誤。貼上一份真實範例——最好是包含多筆紀錄的陣列——就能拿到 Schema。推斷時會合併看到的每一個樣本:某筆紀錄缺少的鍵會變成選填,有時是 null 的值會變成可為 null,一律是 ISO 時間戳記的欄位會標上 format: date-time。開啟嚴格模式後,結果會改寫成 OpenAI Structured Outputs 能接受的子集。

它是怎麼運作的

  • 推斷邏輯是本工具自己寫的,沒有用 quicktype,因為它產生的 Schema 會把巢狀物件藏在依猜測型別命名的 $ref 定義後面,不適合直接貼進函式定義。
  • $schema 可選 2020-12 或 draft-07;物件一律以內嵌方式寫出,所以除了這一行,兩種版本的內容完全相同。
  • 嚴格模式會把所有屬性列進 required、把選填屬性改成可為 null、替每個物件加上 additionalProperties: false,非物件的根會包到 items 鍵底下,OpenAI 文件沒列出的 format(例如 uri)會被移除。

你的資料去了哪裡

哪也沒去。本工具完全在你的瀏覽器裡執行:你貼上的文字由頁面處理,不會傳輸到任何伺服器,也不會寫進任何紀錄。

本工具免費且免登入,執行結果只存在於你目前的頁面裡,不會被儲存到任何地方。

它要花多少

本工具完全免費,不需要登入,也不消耗點數。

常見問題

某個欄位幾乎每筆紀錄都有,為什麼還是選填?
因為至少有一個樣本缺了它,而 Schema 描述的是你的資料實際的樣子。如果這個欄位確實必填,那麼缺了它的那個樣本本身就是問題所在。把那筆紀錄從輸入中刪掉再重新產生,或事後手動把它加進 required。
OpenAI 嚴格模式有哪些要求?
每個屬性都必須出現在 required 裡,每個物件都要把 additionalProperties 設為 false,根必須是物件,不能是陣列或 anyOf。選填的值以包含 null 的型別來表達。字串 format 只支援 date-time、date、time、duration、email、hostname、ipv4、ipv6 和 uuid,所以本工具在嚴格模式下會移除 uri。
嚴格模式為什麼對空陣列回報錯誤?
空陣列無法讓推斷得知任何元素型別的資訊,而嚴格模式不接受什麼都允許的 items。在範例的這個陣列裡放一個真實的元素,再執行一次即可。非嚴格模式下,這種陣列會寫成不限制元素型別的 items。

背後的開源專案

本工具是獨立實作,並未打包第三方函式庫。glideapps/quicktype(Apache-2.0)在程式碼層面做的是同一件事——如果你需要在自己的程式裡實作它,從那裡開始,而不是呼叫一個網頁。

glideapps/quicktype

也常被稱作

  • json schema 產生器
  • json 轉 json schema
  • json schema 線上產生
  • 結構化輸出 schema
  • function calling 參數定義
  • openai strict 模式