結構化大型語言模型¶
結構化大型語言模型任務和一般 LLM 任務類似,但會強制模型把回應整理成你指定的 JSON Schema 結構,方便後續步驟直接用程式取值,不必再從自由文字裡剖析。
它和一般 大型語言模型 任務一樣非常常用,差別只在「多了一份輸出結構」。提示詞(系統提示詞、使用者訊息、樣板)的寫法與一般 LLM 完全相同,本頁先帶你看特有的 JSON Schema 欄位,再用「怎麼寫提示詞」補上結構化任務特有的提示詞技巧。
這頁能幫你做什麼¶
- 讓模型輸出固定欄位的 JSON(例如把客訴內容拆成「分類」「情緒」「摘要」)。
- 從非結構化文字擷取結構化資料,直接餵給資料庫或 API(例如從合約抽出「甲方」「乙方」「金額」「到期日」)。
- 確保下游步驟拿到的資料格式穩定、可預期。
本頁只說明結構化 LLM 任務特有的欄位(主要是輸出結構 Schema 與相應的提示詞技巧)。名稱、附註、下一個狀態、輸入與輸出、錯誤處理及共用開關,集中在 Action 通用設定。
開始前¶
需要先建立 LLM 資源
與 LLM 任務相同,必須綁定一個已建立的 大型語言模型 (LLM) 資源。如何建立請見 LLM 資源。
操作步驟¶
-
在工作流程編輯器中新增一個 結構化大型語言模型 任務。

-
填入「名稱」。
-
在「大型語言模型」選擇 LLM 資源(可用調整()圖示覆寫系統提示詞與模型參數)。

-
在「對話」表格加入訊息,引導模型要產生什麼內容(提示詞寫法見下方教學)。
-
在「JSON Schema」定義你要的輸出結構(欄位、型別、是否必填),可用視覺化建構器或直接切到 JSON 模式編輯。

-
視需要展開「進階任務設定」設定 Guardrail、備用模型、允許重試等。

-
設定「下一個狀態」,必要時填「附註」。
- 用測試按鈕()試跑,確認輸出符合 Schema。
結構化 LLM 任務特有欄位¶
設定分頁¶
| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| 大型語言模型 | 是 | 無 | 選擇這次呼叫要用的 LLM 資源,可用旁邊的調整()圖示覆寫系統提示詞與模型參數。也可切換為從工作流程輸入帶入。 |
| 對話 | 是 | 一列空白的使用者訊息 | 提供給模型的對話內容(多列表格),每列有 角色(使用者/系統助理)與 內容。內容可選「提示詞來源」並用樣板或 JSONPath 帶入前一步資料,行為與 LLM 任務完全相同,詳見 LLM 任務特有欄位 與 內容區塊的「編輯內容」。 |
| JSON Schema | 是 | 預設空白物件結構 | 定義模型輸出必須符合的結構。可用視覺化建構器逐欄新增欄位與型別,或切到 JSON 模式直接貼上一份 JSON Schema。模型會被要求依此結構回應,結果放在輸出的 response 欄位。也可切換為用 JSONPath 從輸入帶入整份 Schema。 |
Note
對話表格每列的「角色/內容」欄位,以及「系統提示詞」是獨立欄位(透過調整圖示設定)等行為,都與 LLM 任務相同,詳見 LLM 任務特有欄位。
進階任務設定(摺疊區塊)¶
與 LLM 任務相同,提供 Guardrail ID、Guardrail 版本、備用大型語言模型、允許重試等欄位。各欄位詳細說明見 LLM 任務特有欄位 與 Action 通用設定。
| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| Guardrail ID | 否 | 空白 | 指定要套用的 Guardrail 識別碼。 |
| Guardrail 版本 | 否 | DRAFT | 指定要使用的 Guardrail 設定版本。 |
| 備用大型語言模型 | 否 | 無 | 主模型失敗時依序改用的備援模型。設定備援模型時會沿用相同的 JSON Schema。 |
| 允許重試 | 否 | 關閉 | 開關。任務無法產生有效回應時自動重新產生,每次重試溫度加 0.1。 |
執行設定(摺疊區塊)¶
執行設定區塊(上傳輸出至外部記憶體、即時輸出串流、錯誤時中止、預設輸出)皆為共用欄位。其中「預設輸出」的結構會自動套用你定義的 JSON Schema,說明見 Action 通用設定。
怎麼寫提示詞(重點教學)¶
結構化任務的提示詞寫法(系統提示詞、使用者訊息、三種「提示詞來源」、樣板、改寫工具)與一般 LLM 完全相同,建議先讀 大型語言模型的「怎麼寫提示詞」。以下只補結構化任務特有的三個重點。
重點一:欄位的「指示」寫在 Schema,不是堆在提示詞¶
一般 LLM 要靠提示詞交代「輸出要有哪些欄位、格式長怎樣」;結構化任務則由 JSON Schema 直接規定。所以你的提示詞可以更精簡——把重心放在「要模型做什麼判斷」,欄位結構交給 Schema:
系統提示詞:
你是一位客服分析助理。
請閱讀使用者提供的客訴內容,做分類與情緒判斷,並寫一句摘要。
請完全依照指定的結構輸出,不要加入結構以外的文字。
對話(角色:使用者;提示詞來源:自訂提示詞,勾 JSONPath): $.customer_message
重點二:在 Schema 裡善用「欄位說明」引導模型¶
JSON Schema 的每個欄位都可以填「說明 (description) 」。模型會讀這段說明來決定填什麼,等於是「欄位層級的提示詞」。把判斷標準、可選值、格式要求寫在這裡,比全部塞進提示詞更精準:
{
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "客訴分類,只能是「物流延遲」「商品瑕疵」「服務態度」「其他」其中之一"
},
"sentiment": {
"type": "string",
"description": "顧客情緒,只能是「正面」「中立」「負面」"
},
"summary": {
"type": "string",
"description": "用一句話(30 字以內)摘要客訴重點"
}
},
"required": ["category", "sentiment", "summary"]
}
想限制只能填特定幾個值,就用列舉
像「分類」「情緒」這種只有固定幾個選項的欄位,除了在 description 寫清楚,也可在 Schema 用 enum 直接限制可選值(例如 "enum": ["正面", "中立", "負面"]),讓輸出更穩定。
重點三:用「必填」確保關鍵欄位一定有值¶
把一定要拿到的欄位放進 Schema 的 required 清單,模型就不會略過它們。選填欄位(例如「備註」)不放進 required,模型在資料不足時可以留空,避免硬編內容。
實際範例¶
JSON Schema¶
{
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "客訴分類,只能是「物流延遲」「商品瑕疵」「服務態度」「其他」其中之一"
},
"sentiment": {
"type": "string",
"description": "顧客情緒,只能是「正面」「中立」「負面」"
},
"summary": {
"type": "string",
"description": "用一句話摘要客訴重點"
}
},
"required": ["category", "sentiment", "summary"]
}
對話(使用者)¶
提示詞來源選「自訂提示詞樣板」,「樣板」寫:
請分析以下客訴並依結構回覆:
{{ customer_message }}
「樣板變數」:名稱 customer_message、值 $.customer_message。
測試執行輸出¶
{
"errors": null,
"action_type": "structured_llm_action",
"response": {
"category": "物流延遲",
"sentiment": "負面",
"summary": "顧客抱怨包裹超過預計到貨日仍未送達。"
}
}
結構化結果放在 response 欄位,可供後續步驟直接取用(例如 $.<步驟名>Result.response.category)。
技術識別¶
- action_type:
structured_llm_action
下一步¶
- 提示詞寫法詳見 大型語言模型的「怎麼寫提示詞」。
- 只需要自由文字回應時,改用 大型語言模型 (LLM)。
- 用 程式碼 (Code) 任務 進一步加工結構化輸出。
- 共用設定請見 Action 通用設定。