AutomationFlowsAI & RAG › 每週 AI 新聞摘要 (weekly AI News Digest · 本機 Ollama)

每週 AI 新聞摘要 (weekly AI News Digest · 本機 Ollama)

每週 AI 新聞摘要 (Weekly AI News Digest · 本機 Ollama). Uses rssFeedRead, httpRequest. Scheduled trigger; 8 nodes.

Cron / scheduled trigger★★★★☆ complexity8 nodesRSS Feed ReadHTTP Request
AI & RAG Trigger: Cron / scheduled Nodes: 8 Complexity: ★★★★☆ Added:

This workflow follows the HTTP Request → RSS Feed Read recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "WkAiNewsDigest01",
  "name": "\u6bcf\u9031 AI \u65b0\u805e\u6458\u8981 (Weekly AI News Digest \u00b7 \u672c\u6a5f Ollama)",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 9 * * 1"
            }
          ]
        }
      },
      "id": "node-schedule",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        240,
        400
      ]
    },
    {
      "parameters": {
        "url": "https://news.google.com/rss/search?q=AI&hl=zh-TW&gl=TW&ceid=TW:zh-Hant",
        "options": {}
      },
      "id": "node-rss-google",
      "name": "RSS Google News",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1.1,
      "position": [
        480,
        280
      ]
    },
    {
      "parameters": {
        "url": "https://tw.news.yahoo.com/rss/",
        "options": {}
      },
      "id": "node-rss-yahoo",
      "name": "RSS Yahoo News",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1.1,
      "position": [
        480,
        520
      ]
    },
    {
      "parameters": {
        "mode": "append",
        "numberInputs": 2
      },
      "id": "node-merge",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3,
      "position": [
        720,
        400
      ]
    },
    {
      "parameters": {
        "jsCode": "const seen = new Set();\nconst items = [];\nfor (const it of $input.all()) {\n  const j = it.json;\n  const title = (j.title || '').trim();\n  const link = j.link || j.url || '';\n  if (!title || seen.has(title)) continue;\n  seen.add(title);\n  items.push({ title, link });\n  if (items.length >= 15) break;\n}\nconst newsText = items.map((n, i) => (i + 1) + '. ' + n.title + ' \u2014 ' + n.link).join('\\n');\nconst prompt = '\u4f60\u662f\u4e00\u4f4d\u79d1\u6280\u65b0\u805e\u7de8\u8f2f\u3002\u4ee5\u4e0b\u662f\u672c\u9031\u591a\u5247\u65b0\u805e\u6a19\u984c\u8207\u9023\u7d50\uff0c\u8acb\u7528\u7e41\u9ad4\u4e2d\u6587\u6574\u7406\u6210\u4e00\u4efd\u300c\u6bcf\u9031 AI \u65b0\u805e\u6458\u8981\u300d\uff1a\u6311\u51fa\u6700\u91cd\u8981\u7684 5-7 \u5247\uff0c\u6bcf\u5247\u7528\u4e00\u53e5\u8a71\u8aaa\u660e\u91cd\u9ede\uff0c\u6700\u5f8c\u518d\u7d66 2 \u53e5\u6574\u9ad4\u8da8\u52e2\u7e3d\u7d50\u3002\\n\\n' + newsText;\nreturn [{ json: { count: items.length, items, newsText, prompt } }];"
      },
      "id": "node-prepare",
      "name": "Prepare News Text",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        940,
        400
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "http://host.docker.internal:11434/api/chat",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={{ JSON.stringify({ model: 'qwen2.5:latest', messages: [ { role: 'system', content: '\u4f60\u662f\u53f0\u7063\u4eba\uff0c\u4e00\u5f8b\u4f7f\u7528\u53f0\u7063\u7e41\u9ad4\u4e2d\u6587\u8207\u53f0\u7063\u6163\u7528\u8a9e\u56de\u8986\uff0c\u7d55\u5c0d\u4e0d\u8981\u51fa\u73fe\u4efb\u4f55\u7c21\u9ad4\u5b57\u6216\u4e2d\u570b\u7528\u8a9e\u3002' }, { role: 'user', content: $json.prompt } ], stream: false }) }}",
        "options": {
          "timeout": 180000
        }
      },
      "id": "node-ollama",
      "name": "Summarize with Ollama",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1160,
        400
      ]
    },
    {
      "parameters": {
        "jsCode": "const data = $input.first().json;\nlet summary = '';\ntry { summary = (data.message && data.message.content) || (data.content && data.content[0] && data.content[0].text) || data.response || ''; } catch (e) {}\nif (!summary) summary = JSON.stringify(data);\nreturn [{ json: { summary } }];"
      },
      "id": "node-extract",
      "name": "Extract Summary",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1380,
        400
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://discord.com/api/webhooks/REPLACE_WITH_YOUR_WEBHOOK_URL",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={{ JSON.stringify({ content: ('\ud83d\udcf0 \u6bcf\u9031 AI \u65b0\u805e\u6458\u8981\\n\\n' + ($json.summary || '')).slice(0, 1900) }) }}",
        "options": {}
      },
      "id": "node-discord",
      "name": "Send to Discord",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1600,
        400
      ]
    }
  ],
  "connections": {
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "RSS Google News",
            "type": "main",
            "index": 0
          },
          {
            "node": "RSS Yahoo News",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS Google News": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS Yahoo News": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Prepare News Text",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare News Text": {
      "main": [
        [
          {
            "node": "Summarize with Ollama",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Summarize with Ollama": {
      "main": [
        [
          {
            "node": "Extract Summary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Summary": {
      "main": [
        [
          {
            "node": "Send to Discord",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "tags": []
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

每週 AI 新聞摘要 (Weekly AI News Digest · 本機 Ollama). Uses rssFeedRead, httpRequest. Scheduled trigger; 8 nodes.

Source: https://github.com/YuriCrystal/n8n-marketing-flows/blob/main/templates/01-weekly-ai-news-digest.local-ollama.json — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Automatically fetch, rank, and summarize the top financial stories from curated RSS feeds each day, then deliver a concise AI-written digest to Telegram and log the run to Google Sheets. Runs on a dai

Google Sheets, HTTP Request, RSS Feed Read
AI & RAG

Stay on top of what’s happening in your community without drowning in endless RSS feeds.

RSS Feed Read, HTTP Request, Discord
AI & RAG

Automatically collect, analyze, and store industry news articles with intelligent filtering and dual-database storage

RSS Feed Read, HTTP Request
AI & RAG

整理多新聞來源的熱門議題. Uses rssFeedRead, httpRequest. Scheduled trigger; 8 nodes.

RSS Feed Read, HTTP Request
AI & RAG

把 Google 新聞整理成一篇文章. Uses rssFeedRead, httpRequest. Scheduled trigger; 6 nodes.

RSS Feed Read, HTTP Request