以 n8n 為核心,結合 AI 摘要與 LINE 通知的整體設計思路與具體流程:
1. 需求拆解
-
擷取世界新聞:週期性抓取來源(RSS、API、網站爬蟲)。
-
AI 整理:將抓到的新聞交由 AI(如 OpenAI)進行摘要、分類、標題重寫等。
-
LINE 通知:將整理後的內容推播到指定的 LINE 群組/個人。
-
錯誤處理與監控:若某個環節失敗,能在 n8n 裡回報或重試。
2. 技術選型與資源準備
-
n8n:負責協調、排程與串接各服務。
-
新聞來源:RSS Feed(如 BBC、CNN)、新聞 API(如 NewsAPI.org)。
-
AI 服務:OpenAI API(摘要、關鍵字提取)。
-
LINE Notify:利用 OAuth2 Token 推播訊息。
-
環境變數:在 n8n Secrets 裡配置
NEWS_API_KEY、OPENAI_API_KEY、LINE_NOTIFY_TOKEN。
3. n8n 工作流程架構
4. 各節點詳細設定
1. Cron Trigger
-
排程:如每 1 小時一次或每日 08:00。
-
範例:
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 範例:
-
Temperature:0.7
-
Max Tokens:200
5. Function Node(格式化)
-
目的:把 AI 回應切割成「新標題」+「三句摘要」,並加入原始連結與抓取時間。
-
範例程式碼:
6. LINE Notify Node
-
認證方式:使用環境變數
LINE_NOTIFY_TOKEN。 -
Message 範例:
-
Endpoint:
https://notify-api.line.me/api/notify -
Headers:
Authorization: Bearer {{ $credentials.LINE_NOTIFY_TOKEN }}
7. Error Workflow
-
在每個關鍵節點(如 HTTP Request、OpenAI Node)打開
Execute Workflow On Error,將錯誤訊息推送到專門的 Slack/LINE 群組或寫入資料庫,並可設定重試機制。
5. 部署與監控建議
-
n8n 部署:Docker 或 Kubernetes,並保護網域與憑證。
-
環境變數管理:n8n Secrets。
-
日誌:開啟內建日誌並將錯誤匯出到 ELK 或 Grafana。
-
通知頻率:避免一次推播過多新聞,可先做「篩選規則」(如只取關鍵字包含“Taiwan”或“AI”)。
-
版本控制:將 n8n Workflow JSON 存放在 Git,並設定 CI/CD 自動更新。