以 n8n 為核心,結合 AI 摘要與 LINE 通知的整體設計思路與具體流程

 以 n8n 為核心,結合 AI 摘要與 LINE 通知的整體設計思路與具體流程:


1. 需求拆解

  1. 擷取世界新聞:週期性抓取來源(RSS、API、網站爬蟲)。

  2. AI 整理:將抓到的新聞交由 AI(如 OpenAI)進行摘要、分類、標題重寫等。

  3. LINE 通知:將整理後的內容推播到指定的 LINE 群組/個人。

  4. 錯誤處理與監控:若某個環節失敗,能在 n8n 裡回報或重試。


2. 技術選型與資源準備

  • n8n:負責協調、排程與串接各服務。

  • 新聞來源:RSS Feed(如 BBC、CNN)、新聞 API(如 NewsAPI.org)。

  • AI 服務:OpenAI API(摘要、關鍵字提取)。

  • LINE Notify:利用 OAuth2 Token 推播訊息。

  • 環境變數:在 n8n Secrets 裡配置 NEWS_API_KEYOPENAI_API_KEYLINE_NOTIFY_TOKEN


3. n8n 工作流程架構


[1] Cron Trigger ↓ [2] HTTP Request / RSS Feed Read ↓ [3] SplitInBatches (逐篇處理) ↓ [4] OpenAI Node(摘要+標題重寫) ↓ [5] Function Node(格式化文字、加時間戳) ↓ [6] LINE Notify Node(推播) ↓ [7] Error Workflow (onError)

4. 各節點詳細設定

1. Cron Trigger

  • 排程:如每 1 小時一次或每日 08:00。

  • 範例:

    mode: everyHour

2. RSS Feed Read / HTTP Request

  • RSS Feed Node:可以直接用 n8n 的 RSS Feed 節點。

    • URL:https://feeds.bbci.co.uk/news/world/rss.xml

  • 或用 HTTP Request Node 讀取 JSON API:

    • Method:GET

    • URL:https://newsapi.org/v2/top-headlines?category=world&apiKey={{ $credentials.NEWS_API_KEY }}

3. SplitInBatches

  • Why:將一次取得的多篇新聞拆成單筆輸出,方便逐篇送 AI 處理。

  • Batch Size:5(可依實際情況調整)。

4. OpenAI Node

  • 動作:呼叫 chat.completions

  • Prompt 範例:


    請將下面新聞標題與內文做三句摘要,並重寫一個更吸睛的標題: 標題:{{$json["title"]}} 內容:{{$json["description"] || $json["content"]}}
  • Temperature:0.7

  • Max Tokens:200

5. Function Node(格式化)

  • 目的:把 AI 回應切割成「新標題」+「三句摘要」,並加入原始連結與抓取時間。

  • 範例程式碼


    const ai = items[0].json.choices[0].message.content; // 假設 AI 回「標題:…\n摘要:…」 const lines = ai.split('\n'); const newTitle = lines[0].replace(/^標題:/, ''); const summary = lines.slice(1).join('\n'); return { json: { title: newTitle, summary, url: items[0].json.url, fetchedAt: new Date().toISOString() } };

6. LINE Notify Node

  • 認證方式:使用環境變數 LINE_NOTIFY_TOKEN

  • Message 範例:


    【{{ $json.fetchedAt.substr(0,10) }} 世界新聞】 📰 {{ $json.title }} ✏️ 摘要: {{ $json.summary }} 🔗 來源:{{ $json.url }}
  • Endpointhttps://notify-api.line.me/api/notify

  • HeadersAuthorization: Bearer {{ $credentials.LINE_NOTIFY_TOKEN }}

7. Error Workflow

  • 在每個關鍵節點(如 HTTP Request、OpenAI Node)打開 Execute Workflow On Error,將錯誤訊息推送到專門的 Slack/LINE 群組或寫入資料庫,並可設定重試機制。


5. 部署與監控建議

  1. n8n 部署:Docker 或 Kubernetes,並保護網域與憑證。

  2. 環境變數管理:n8n Secrets。

  3. 日誌:開啟內建日誌並將錯誤匯出到 ELK 或 Grafana。

  4. 通知頻率:避免一次推播過多新聞,可先做「篩選規則」(如只取關鍵字包含“Taiwan”或“AI”)。

  5. 版本控制:將 n8n Workflow JSON 存放在 Git,並設定 CI/CD 自動更新。