指南

Schema 設計

設計 AI 能可靠擷取的 JSON Schema

你傳給 /extract 的 Schema 本身就是 prompt。每個欄位名稱、description 與型別提示都會被模型讀取。一份形狀良好的 Schema 能大幅提升準確率。

欄位命名

用讀起來像英文的名字。模型對 productName 的表現遠優於 pnname1

{ "type": "object", "properties": {
  "productName": { "type": "string" },
  "currentPrice": { "type": "number" }
} }

欄位描述

對任何有歧義的欄位都加上 description"price" 可能是 MSRP、現價或單位價 —— 寫清楚:

{ "currentPrice": {
  "type": "number",
  "description": "Final price after discount, in USD"
} }

必填 vs 選填

只標記你真正需要的欄位。必填欄位一旦模型找不到就會讓整個擷取失敗 —— 用得越省越好。

巢狀

有用時可以接受一層巢狀(address.city)。更深層(3 層以上)通常會傷害擷取品質。

常見陷阱

  • 用了有歧義的型別(對 "$19.99" 這類數字使用 string)—— 改用 number,讓模型自己解析
  • 模糊的 enum 卻沒有 description
  • 把實際上不是每頁都會出現的欄位設成必填

本頁正在補充 Schema 食譜 —— 敬請回訪。