教育局『智』啟學教撥款計劃 · 撥款使用期限 2028 年 8 月 31 日前,把握機會,聯絡我們!English
第 15 課模組四:進階技巧與長期維護 12 分鐘· 程度: 進階

結構化輸出:欄位寫死,三十份才合得併

從 Markdown 表格到嚴格 JSON,示範怎樣指定欄位名稱、次序與允許值,為何合併試算表時欄位漂移比內容出錯更難補,以及怎樣處理 JSON 前後多餘說明。

Read in English

週五放學後,中四生物科黃老師把全班 32 份實驗報告初評結果貼進試算表,發現七份多了一欄「總評」,五份把「改進建議」寫成項目符號而不是儲存格,還有三份在表格前加了「以下是我的評語」。內容大致可用,她花了 90 分鐘對齊欄位。她對科組說:「問題不在 AI 不懂生物,在於我沒有告訴它欄位長甚麼樣。」

結構化輸出是把 AI 由「寫一段給我看」推進到「連續處理三十份給我合併」。本課是模組四第 15 課,下一課處理圖片與語音輸入時,同樣需要固定欄位。


每次生成都重新決定格式

模型逐字預測時,沒有給輸出規格,它會按「這次怎樣呈現最合理」即興發揮——寫文章是優點,要合併資料是災難。你只說「用表格列出優點與建議」,今次兩欄、下次三欄,合併就要人手對齊。

結構化輸出的本質,是把呈現方式從模型的自由改成你的規格:欄位名稱、次序、每格字數上限、允許值清單,以及「只輸出表格、前後不得有任何文字」。

給人看的表格規格

Markdown 表格適合教師會議、科組紀錄、直接複製到 Google 試算表。關鍵不是漂亮,是第三十一份貼上去仍對齊:

角色:你是[科目]科實驗報告初評助理。
任務:評閱下方報告並輸出單一表格。
輸出格式:Markdown 表格,欄位依序為——學生代號、假設清晰度(1-5)、數據記錄(1-5)、結論邏輯(1-5)、一項優點(一句)、一項改進(一句)、需教師核實(是/否)。
限制:只輸出表格,前後不得有說明;不得增減或重新排列欄位;每格不多於 25 字;分數為 1 至 5 整數。無法判斷的項目,分數留空並把「需教師核實」填「是」。不得重寫學生報告原文。
報告:[貼上內容]

「需教師核實」欄是防呆設計:模型不確定時有地方誠實交代,而不是編數字填滿——與 引用式提示 裡授權「找不到」同一邏輯。

允許值要封閉

「類別」「嚴重程度」「是/否」等欄,把允許值列成清單,並規定無法歸類時用固定的「其他」。否則今次寫「概念不清」、下次寫「理解不足」,統計時變成兩類。

欄位漂移比內容出錯更難補救——錯一句評語你會改,錯一欄位置你要重跑三十份。

給系統看的 JSON

JSON 比表格嚴格:欄位名稱、大小寫、型別都要事先講清。聊天介面教師可靠提示加完整示例;學校要把輸出接進校務系統,應同時使用供應商 structured output(見 sources 連結),由 API 保證符合 schema,而不是只靠運氣。

角色:你是只輸出 JSON 的評卷服務,不與人對話。
任務:按評分準則評閱學生作答,輸出一個 JSON 物件。
輸出格式:只輸出以下結構,欄位名稱與大小寫完全一致:
{
  "student_ref": "字串",
  "criteria": [
    { "name": "字串", "score": 整數1-5, "evidence": "引自學生原文的一句", "comment": "不多於40字" }
  ],
  "total": 整數,
  "needs_teacher_review": true或false,
  "review_reason": "字串,若false則填\"none\""
}
限制:只輸出 JSON,前後不得有任何文字;不得省略欄位,無值用約定空值;evidence 必須是學生原文,不得改寫。依據不足時 needs_teacher_review 填 true。
評分準則:[貼上]
學生作答:[貼上]

同一份資料既要開會表格又要存檔時:先要 JSON,再請模型依 JSON 轉表格,數值不得改動。轉換模板見本課 FAQ 所述做法。

處理 JSON 外的多餘文字

即使寫了「只輸出 JSON」,仍可能收到開場白。由易到難:給一整段完整示例;逐項列出禁止的前言、結語、標題、Markdown 圍欄;改用 API structured output。只用聊天介面時,前兩項通常已足夠;接系統時第三項不能省。

容易走歪的地方

  • 只寫「用表格呈現」。 每次欄位不同,合併變成對齊地獄。自查:你的提示能否讓同事不看內容就知道有幾欄、叫甚麼?
  • 缺值時刪掉整欄或整個 JSON 欄位。 下游程式會直接報錯。自查:是否規定無值時填固定字串或 null,結構保持完整?
  • 格式整齊但沒有核實欄。 錯誤被整齊掩蓋。自查:不確定時模型有沒有「需教師核實」可填?限制行是否說明何時填「是」?

動手做一次

時間: 10 至 15 分鐘。

做甚麼: 選你常做的一類批量任務(例如觀課紀錄、學生回饋、問卷開放題整理)。先用「請用表格整理」跑一次;再按上面表格模板寫死欄位名稱、次序、允許值與「需教師核實」,用同一份輸入重跑。

交出甚麼: 兩份輸出;列出第二份比第一份多了哪幾條格式限制,以及若要把兩份貼進試算表,第二份省了多少對齊步驟(可估計分鐘數)。

怎樣算做對: 第二份可直接整段貼上試算表而欄位不漂移;且至少有一格因不確定而標「需教師核實」,代表核實欄在發揮作用。

這一課的重點

  • 能夠逐欄寫明名稱、次序與允許值,並在限制行禁止增減欄位。
  • 能夠說明固定結構的價值在於「第三十一份怎樣合併」,而不在於表格是否美觀。
  • 能夠為 JSON 場景寫出「只輸出物件、無前後文字、缺值用約定空值」三條規則。
  • 能夠在輸出中加入「需教師核實」欄,避免模型為填滿表格而編造。

幾條常被問到的問題

因為你只說了「用表格」,沒有列欄位。模型會按內容即興決定欄數與名稱。把欄位與次序寫死,並規定無內容時填固定字串而不是刪欄,合併才自動化。

提示層:給完整 JSON 示例,並逐項列出禁止的前言與結語。系統層:用供應商 structured output 或 JSON mode,由 API 保證符合 schema。兩層一起做,失敗率才適合自動處理。

人看、貼文件、複製到試算表用 Markdown 表格;程式讀取、匯入系統、長期統計用 JSON。兩種都要時,先要 JSON 再請它依同一份 JSON 生成表格,兩邊才一致。

資料來源與免責
  • · 文中的價格、功能與規格以上列官方文檔為準。供應商隨時會改,採購之前請自行覆核一次。
  • · 文中提及的產品名稱與商標屬各自擁有者所有。Edor.ai 與該等公司沒有合作、代理或贊助關係。
  • · 這是為教育用途做的獨立整理,不是採購建議,也不是法律意見。
  • · 凡涉及學生個人資料的用法,請先按學校政策與《個人資料(私隱)條例》(PDPO)評估,然後才在校內推行。

訂閱教室手記

每月一至兩封:課堂做法、系統更新與撥款資訊。隨時可以退訂。

這個電郵只用來寄通訊,不會給第三方。