iT邦幫忙

2025 iThome 鐵人賽

DAY 20
0
生成式 AI

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

Day 20 : n8n 串接 Dify RAG - 會議摘要的自動歸檔

  • 分享至 

  • xImage
  •  

前言:為什麼 RAG 是 AI 自動化的「核心武器」?

在前面的文章中,我們成功地讓 n8n 能夠呼叫 Dify API,將會議文字稿轉換成結構化的 JSON。然而,缺乏專業背景知識的 LLM 容易在專有名詞和分類上出錯。

今天,我們將引入 AI 自動化的核心武器:RAG (Retrieval Augmented Generation) 知識庫,讓我們的 AI 助理具備專案規範和背景知識,並最終將專業數據精準寫入 Google Sheets

核心概念:Dify RAG 的強大之處

RAG 讓 AI 能夠:

  • 理解專有名詞和人物職責,例如「小王的職責是 Notion 維護」。
  • 強制遵循我們在知識庫中定義的歸檔分類規範 (例如 type 只能是 專案討論客戶會議技術排查)。

步驟一:Dify 知識庫的設定與連結(RAG 教學)

我們首先將專案規範文件上傳至 Dify,作為 AI 的專業參考資料。

1. 上傳與優化知識庫

  1. 上傳文件: 進入 Dify 知識 (Knowledge) 頁面,建立知識庫後,上傳您的 專案規範與職責說明.docx 文件.
  2. 分塊優化:
    • 分段最大長度 (Chunking Length) 調整至 500-700 字符,並將 分段重疊長度 (Overlap) 調整至 100-150 字符,確保檢索到的上下文更連貫、更精確.
    • Top K 檢索數量從 2 提高到 3 或 4.

2. 連結知識庫與 Prompt 工程

  1. 建立應用: 建立新的 聊天助手 應用 (例如:AI 會議摘要 RAG 版).

  2. 連結 RAG: 進入應用程式的 編排 頁面,在 上下文 (Context) 區塊中,連結您的知識庫.

  3. 變數清理(關鍵):變數 (Variables) 區塊,將 knowledge_base_contextREQUIRED (必填) 設定關閉,否則 n8n 將無法呼叫.

  4. Prompt 內容強化:提示詞 編輯框中,加入 RAG 參考指令並設定 JSON 輸出格式:

    你是專業的會議記錄整理 AI 助理... 
    【RAG 知識庫與規範】
    請務必參考提供的知識庫上下文來理解人員職責和分類規範 (type 只能是 [專案討論/客戶會議/技術排查]),並根據這些資訊來填充 JSON 欄位。
    ...
    【輸入內容】
    這是需要你處理的會議文字稿:{{query}}
    

步驟三:n8n 流程建構(Google Sheets 整合)

使用 Manual Trigger 模擬輸入,專注於 AI 處理和 Sheets 歸檔。

1. Manual Trigger (模擬輸入)

  • 目標: 傳入測試數據。

  • JSON 內容: 讓數據包含您在 RAG 知識庫中定義的詞彙,以便驗證效果。

    {
      "meeting_transcript": "小王今天提出要暫停 Notion 串接,因為他發現 Google Sheets 的欄位結構不符,他需要在明天早上完成這個技術排查。"
    }
    

2. HTTP Request (Dify API 呼叫:解決所有 JSON 錯誤)

這是整個流程最難的部分,使用最穩定的 JSON 結構。

參數 設定值/操作 備註
URL https://api.dify.ai/v1/chat-messages 適用於 Dify 聊天助手應用。
Header Authorization: Bearer <Dify API Key>
JSON 內容 解決 queryuser 錯誤的最終結構
{
  "query": "{{ $json.meeting_transcript }}", 
  "inputs": {
    "query": "{{ $json.meeting_transcript }}" 
  },
  "user": "n8n_user",
  "response_mode": "blocking" 
}

3. Code / Function (JSON 清理與解析)

為了解決 Dify 輸出中的 ````json` 等標籤,我們必須使用 JavaScript 代碼提取和解析 JSON。

  • 代碼功能: 使用正規表達式 (/\{[\s\S]*\}/) 精確提取 {...} 區塊,然後進行 JSON.parse()

4. Google Sheets (數據歸檔教學)

這是最終的歸檔步驟。

  1. 新增節點: 選擇 Google Sheets 節點。
  2. Credential: 連接您的 Google 帳號,並授權 n8n 存取 Google Drive/Sheets。
  3. Operation: 選擇 Append Row in sheet (在工作表中新增一行)。
  4. Document & Sheet: 選擇您的目標試算表 ID 和工作表名稱。
  5. Values (欄位映射):
    • 使用 Expression 模式,將上一個 Code 節點輸出的 JSON 結構對應到 Google Sheets 的欄位:
Google Sheets 欄位 (Header) n8n Expression (JSON Key) 備註 (RAG 效果驗證)
標題 {{ $json.meeting_title }}
會議類型 {{ $json.type }} 應準確輸出 技術排查 (RAG 規範)
摘要 {{ $json.summary }}
待辦事項 {{ $json.action_items }} 應明確提及 小王 的職責 (RAG 知識庫)

上一篇
Day 19 : 將資料儲存至Google sheet
下一篇
Day 21 : 小結-目前系統可以做到哪些事情
系列文
從零開始 : 學習運用 n8n 與 Dify 的 AI 自動化實戰30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言