iT邦幫忙

2026 iThome 鐵人賽

DAY 16
0
AI 自動化

30 天打造我的 AI 自動化工作流系列 第 16 篇

Day 16|AI 怎麼老是不照格式回答?讓輸出變得更穩定

  • 分享至 

  • xImage
  •  

昨天使用 Switch Node,把 AI 的分類結果分成:

urgent

question

suggestion

接著讓不同類型的資料進入不同的處理流程。

不過在測試的時候,我發現一個 AI 自動化很容易遇到的問題:

我明明叫 AI 只回答 urgent,它為什麼還是可能多講一堆?

例如我們希望得到:

urgent

AI 卻可能回答:

This message is classified as urgent.

對人來說意思完全一樣,但對 Switch Node 來說:

urgent

和

This message is classified as urgent.

是兩個不同的字串。

所以今天要解決的問題就是:

如何讓 AI 的輸出更固定,讓後面的 Node 可以穩定使用?


為什麼 AI 輸出格式很重要?

平常使用 ChatGPT 時,我通常希望回答越完整越好。

但在自動化 Workflow 裡,情況有點不一樣。

假設 Switch Node 的規則設定:

AI Output = urgent

那前面的 AI 最好就真的輸出:

urgent

而不是:

這是一個 urgent 的問題。

不然原本設計好的自動化流程就可能無法正確分流。

所以今天我開始理解:

在 AI 自動化中,不只要在意 AI 回答得對不對,還要在意回答的「格式」對不對。


Step 1:先看看不夠明確的 Prompt

假設 Prompt 只寫:

請幫我判斷以下內容屬於哪種類型:

{{ $json.text }}

類型有 urgent、question、suggestion。

這個 Prompt 人類看起來沒有什麼問題。

但 AI 可能回答:

這段內容屬於 urgent,因為使用者表示系統目前完全無法使用。

甚至可能回答:

分類結果:urgent

分類其實都是正確的,但這些結果對後面的 Switch Node 不一定好處理。

https://ithelp.ithome.com.tw/upload/images/20260930/20178835tZmCtiMvyP.png

圖 1 沒有嚴格限制格式時的 AI 輸出


Step 2:把 Prompt 寫得更明確

接著修改 Prompt。

這次除了告訴 AI「要做什麼」,也明確告訴它:

「要怎麼回答。」

例如:

你是一個文字分類器。

請將使用者輸入分類成以下其中一種類別:

urgent:需要立即處理的嚴重問題
question:一般問題或操作詢問
suggestion:功能建議或改善意見

規則:
1. 只能選擇一個類別。
2. 只能回答 urgent、question 或 suggestion。
3. 不要提供原因。
4. 不要加入標點符號或其他文字。

使用者輸入:
{{ $json.text }}

這次 AI 的任務就清楚很多。

希望最後只得到:

urgent

https://ithelp.ithome.com.tw/upload/images/20260930/20178835civA8O9dld.png

圖 2 增加輸出規則後的 Prompt


Step 3:加入範例

除了直接寫規則,也可以在 Prompt 裡提供一些例子。

例如:

範例:

輸入:系統完全無法登入
輸出:urgent

輸入:請問密碼要去哪裡修改?
輸出:question

輸入:希望增加深色模式
輸出:suggestion

然後再放真正要分類的資料:

現在請分類:

{{ $json.text }}

這種方式的好處是,除了用文字描述規則之外,也直接讓 AI 看到:

「我要的答案長這樣。」

例如:

輸入:網站一直出現錯誤,現在完全不能使用!
輸出:urgent

而不是輸出一整段解釋。


Step 4:測試不同句子

Prompt 修改完成後,不能只測試一次。

所以今天可以準備幾種不同的內容。

測試內容預期輸出
系統完全無法登入,請立即處理 urgent
請問要怎麼修改密碼? question

https://ithelp.ithome.com.tw/upload/images/20260930/20178835Bs99BXROoP.png

| 希望可以增加深色模式 | suggestion |

https://ithelp.ithome.com.tw/upload/images/20260930/20178835CPjrCtjVcI.png

| APP 一直閃退,完全不能使用 | urgent |

https://ithelp.ithome.com.tw/upload/images/20260930/20178835s1LnbLwgXG.png

| 可以增加搜尋功能嗎? | suggestion |

https://ithelp.ithome.com.tw/upload/images/20260930/201788352yAd7qq9JF.png

每一筆都送進 Workflow,看看 AI 能不能只回傳指定的三個結果。

這一步讓我發現,Prompt 不能只測試「最簡單的例子」。

如果真的要放進自動化流程,最好用不同寫法多測幾次。


Step 5:讓輸出變成 JSON

前面的方法還是讓 AI 回傳一個單字。

但如果未來希望 AI 一次產生很多資料,例如:

分類

摘要

是否需要通知

如果全部混在一段文字裡,後面的 Node 又會變得不好處理。

這時候就可以要求 AI 使用 JSON。

例如希望得到:

{
  "category": "urgent",
  "summary": "使用者目前無法登入系統",
  "notify": true
}

這樣就跟 Day 8 學過的 JSON 接起來了。

我們可以很清楚知道:

category → urgent
summary → 使用者目前無法登入系統
notify → true

接下來不同 Node 就可以使用自己需要的欄位。


Step 6:認識 Structured Output

除了直接在 Prompt 裡寫「請輸出 JSON」,在支援結構化輸出的 AI 流程中,也可以進一步限制輸出的資料結構。

這就是今天另外認識的一個概念:

Structured Output(結構化輸出)

簡單來說,就是希望 AI 不要自由發揮輸出格式,而是按照我們指定的資料結構產生結果。

例如我們希望每次都有:

{
  "category": "",
  "summary": "",
  "notify": false
}

其中:

category 只能是:

urgent
question
suggestion

summary 放簡短摘要。

notify 則使用:

true / false

這樣後面的 Workflow 就更容易使用這些資料。

https://ithelp.ithome.com.tw/upload/images/20260930/20178835STzLRyS1tJ.png

圖 3 設定 AI 的結構化輸出格式

如果目前使用的 Node 沒有這個選項也沒關係,今天先用 Prompt 要求 JSON 格式,一樣可以理解這個概念。


Step 7:把 Switch Node 改成讀取 category

昨天 Switch Node 是直接判斷 AI 回傳的整段文字。

如果今天 AI 回傳:

{
  "category": "urgent",
  "summary": "系統目前完全無法登入",
  "notify": true
}

那 Switch Node 就不需要處理整段內容。

只需要讀取:

category

然後判斷:

category = urgent
category = question
category = suggestion

整個流程就變成:

Webhook
   ↓
  AI
   ↓
Structured Output
   ↓
 category
   ↓
 Switch
 ↙  ↓  ↘
urgent question suggestion

https://ithelp.ithome.com.tw/upload/images/20260930/20178835vfr6cY9oy0.png

圖 4 使用固定 AI 輸出進行 Switch 分流


Prompt 寫得越長就越好嗎?

做到今天,我也發現不是把 Prompt 寫得很長就一定比較好。

真正重要的是:

任務清楚、分類規則清楚、輸出格式清楚。

例如我們真正需要的只有:

urgent
question
suggestion

就沒有必要叫 AI 寫一大段分析。

因為對 Workflow 來說:

穩定、可預測的輸出,有時候比漂亮的回答更重要。

這跟平常直接跟 ChatGPT 聊天的使用方式真的不太一樣。


今天遇到的一個問題

即使 Prompt 寫得很清楚,AI 還是不能保證所有內容都一定判斷正確。

例如:

「系統有點慢,我等等就要交作業了。」

這句話到底是 urgent 還是 question?

其實就沒有前面的例子那麼明確。

所以除了限制輸出格式之外,分類標準本身也要定義清楚。

也就是說:

格式穩定 ≠ 判斷一定正確

這兩件事情要分開看。


今日小結

今天沒有增加很多新的 Node,反而回頭改善前面 AI 的輸出方式。

從原本可能得到:

我認為這是一個 urgent 的問題,因為……

慢慢改成:

urgent

甚至進一步變成:

{
  "category": "urgent",
  "summary": "系統目前無法登入",
  "notify": true
}

這讓我發現,建立 AI Workflow 不只是「把 AI 接進去」而已。

還需要考慮:

AI 的結果能不能穩定地交給下一個 Node 使用?

到目前為止,我們已經可以接收資料、讓 AI 分類、Switch 分流、寄 Email、儲存 Google Sheets。

下一步就可以把這些功能組合起來,做一個比較完整的小作品。


上一篇
Day 15|不只 True 和 False!使用 Switch Node 建立多條自動化路線
下一篇
Day 17|把前面全部組起來!打造 AI 客服訊息自動分類系統
系列文
30 天打造我的 AI 自動化工作流 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言