iT邦幫忙

2025 iThome 鐵人賽

DAY 26
0
生成式 AI

從零開始 : 學習運用 n8n 與 Dify 的 AI 自動化實戰系列 第 26

Day 26 : 解析 n8n 與 Dify 打造 AI 事件驅動式架構

  • 分享至 

  • xImage
  •  

一、理論背景:

當我們把 n8n(自動化流程工具)與 Dify(AI 應用開發平台)結合時,其實是實現了一種「AI 事件驅動式架構(AI Event-driven Workflow)」。

簡單來說:

  1. n8n 扮演「流程控制中心」,負責接收外部訊息、呼叫 API、回傳結果。
  2. Dify 扮演「智慧腦袋」,負責根據問題生成回覆。
  3. 兩者結合,就能做到:當收到一則訊息,就讓 AI 自動思考並回覆。

二、資料流(Data Flow)概念:

你可以把整個流程想成這樣:

使用者 → Webhook (n8n) → HTTP Request (呼叫 Dify API)
      → Dify 處理文字生成 → 回傳回答
      → (錯誤處理 / 格式化) → Respond to Webhook → 使用者

這整段流程中:

  • Webhook:負責接收訊息(例如使用者輸入「今天天氣怎樣」)
  • HTTP Request:把訊息丟給 Dify 的 /chat-messages API
  • Dify:分析問題並生成回覆
  • Respond to Webhook:把 Dify 的回答返回原本的來源(例如表單、系統或 LINE Bot)

三、技術核心說明:

模組 角色 功能重點
n8n Webhook 事件接收者 等待使用者的訊息請求(通常是 HTTP POST)
HTTP Request 節點 API 呼叫者 把訊息轉發到 Dify 的 API(帶上 Token)
Dify AI 核心 負責理解問題、生成回答
IF/Try/Catch 節點 流程判斷與健壯性 處理 API 呼叫失敗或根據 Dify 回覆結果進行下一步判斷 (新增)
Respond to Webhook 節點 回傳出口 把 AI 的回覆送回原請求端

四、API 結構理解(以 Dify 的 /chat-messages 為例)

在 n8n 的 HTTP Request 節點中,發送的 JSON Body 結構通常如下:

{
  "inputs": {},
  "query": "={{ $json['body']['message'] }}",
  "response_mode": "blocking",
  "user": "api-user",
  "conversation_id": "={{ $json['body']['session_id'] }}" 
}
  • query:AI 要回答的問題 (原來的 user_question 在新版 Dify API 中通常寫作 query)
  • response_mode:設定為 blocking 代表 n8n 會等待 Dify 回覆完才繼續
  • user:用來區分使用者
  • conversation_id(新增) 若要實現多輪對話,此參數是必須的。n8n 會從 Webhook 接收到的資料(例如 session_id)中擷取此 ID,確保 Dify 能維持上下文。

API 呼叫成功後,Dify 會回傳一個 JSON,例如:

{
  "id": "...",
  "answer": "今天台北的天氣晴朗,最高溫28度。",
  "conversation_id": "..."
}

五、流程健壯性與錯誤處理 (新增核心重點)

一個穩定的 AI 流程必須考慮失敗狀況。n8n 扮演的角色不只是傳遞,還要確保流程的健壯性

情境 n8n 的處理機制 目的
API 呼叫失敗 使用 Try/Catch 節點Try 區塊放 HTTP Request,若失敗則進入 Catch 區塊。 避免流程中斷,並執行備用應答。
備用應答 Catch 區塊中,設置一個 Respond to Webhook,回傳預設訊息:「系統忙碌中,請稍後再試。」 確保使用者在失敗時仍能收到回應,而非空白。

六、理論應用:AI 自動回覆系統的三層結構

  1. 輸入層(Input Layer):Webhook 或表單收集資料
  2. 智能層(Intelligence Layer):Dify 的 LLM 模型處理輸入並生成回答
  3. 輸出層(Output Layer):n8n 回傳資料、觸發通知或寄送郵件

這樣的架構可以被應用在:

  • 客服自動回覆(Email / LINE)
  • 學習助理問答系統
  • 表單智能回覆
  • Chatbot API 後端

上一篇
Day 25 : 每日新聞摘要信
下一篇
Day 27 : Dify 智能回覆強化 — 讓 AI 自動生成更自然的郵件內容
系列文
從零開始 : 學習運用 n8n 與 Dify 的 AI 自動化實戰30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言