01 / DECIDE
架構決策
適合 extraction、classification、UI state,以及下一步要消費 typed data 的 workflow。
Structured Outputs 能降低 parsing 歧義,但產品仍要處理 refusal、incomplete result 與 domain-invalid value。 先把 input、output、state 與 side effect 畫成一條可觀察路徑,再決定 用 schema 定義 output contract 要放在哪一層。
02 / BUILD
三步實作
- 01
框定合約
先寫下 caller、資料分類、成功條件、timeout、取消與 ownership。適合 extraction、classification、UI state,以及下一步要消費 typed data 的 workflow。
- 02
建立單一路徑
只實作一條 end-to-end path,保留 request correlation、typed state 與可逆 failure handling。Structured Outputs 能降低 parsing 歧義,但產品仍要處理 refusal、incomplete result 與 domain-invalid value。
- 03
證明結果
把驗收寫成可重跑的 fixture、contract test 或 browser test。測試涵蓋 valid output、refusal、truncation、惡意輸入與每個 business-rule failure branch。
03 / BOUND
Production 邊界
符合 schema 不代表事實正確;仍需驗證 identifier、permission、total、date 與跨欄位 invariant。
04 / PROVE
驗收證據
測試涵蓋 valid output、refusal、truncation、惡意輸入與每個 business-rule failure branch。
SOURCE / HTTP
可重現來源探針
curl -fsSI 'https://developers.openai.com/api/docs/guides/structured-outputs' | sed -n '1,5p'