基于 n8n 搭建智能学术文献收集与个性化推荐工作流

liangxuanpan 发布于 2026-06-26 218 次阅读


AI 摘要

还在手动刷PubMed?用n8n全自动抓取Science、Cell等顶刊,AI秒出摘要,再结合你的日程生成个性化学术建议,直接推送到飞书。每周一自动更新,省下大把时间专注科研。

在科研和学术研究中,高效获取、整理并利用前沿文献是提升研究效率的关键。本文将详细介绍如何基于 n8n 这款开源自动化工具,搭建一套从多期刊 RSS 订阅、文献筛选整理,到 AI 摘要生成、飞书多维联动的全流程学术文献管理工作流,实现文献收集的自动化与个性化学术建议生成。

一、工作流整体架构与核心目标

本工作流的核心目标是自动化完成多期刊文献抓取 - 筛选 - 整理 - 存储 - 智能推荐全链路,具体实现:

  1. 定时抓取 PubMed、Science、Cell 三大顶刊的最新 RSS 文献;
  2. 按时间维度筛选近 30 天文献,提取核心字段并标准化;
  3. 利用 AI 生成文献摘要,将结构化数据存入飞书多维表格;
  4. 结合飞书日程,通过 AI Agent 生成个性化学术建议并推送至飞书群。

工作流整体分为四大模块:定时触发与数据源采集数据清洗与标准化AI 处理与数据存储智能推荐与消息推送,节点间通过 n8n 的连接机制实现数据流转,整体架构清晰且可扩展。

二、核心节点拆解与功能说明

1. 定时触发模块:Schedule Trigger

作为整个工作流的起点,Schedule Trigger节点实现定时执行逻辑,配置如下:

  • 触发规则:每周一上午 9 点自动执行工作流,确保每周固定时间获取最新文献;
  • 输出:触发信号同时传递至 PubMed、Science、Cell 三个 RSS 采集节点,实现多源并行采集。

2. 数据源采集模块:RSS Feed Read

配置 3 个rssFeedRead节点分别抓取三大期刊的 RSS 流:

节点名称RSS 地址核心配置
PubMedhttps://pubmed.ncbi.nlm.nih.gov/rssignoreSSL: true
Sciencehttps://feeds.science.org/rss/science.xmlalwaysOutputData: false
Cellhttps://www.cell.com/cell/current.rssignoreSSL: true
  • 功能:解析 RSS 流获取文献原始数据(标题、内容、发布时间、链接等);
  • 注意点:不同期刊的 RSS 字段命名存在差异(如 Cell 使用dc:date,PubMed 使用pubDate),为后续字段标准化埋下伏笔。

3. 数据限流与标准化:Limit + Set 节点

(1)Limit 节点:限流控制

配置 3 个limit节点(Limit_01/02/03),均设置maxItems: 20,作用是:

  • 限制单期刊单次抓取的文献数量,避免数据量过大导致下游处理超时;
  • 分别对应 PubMed、Science、Cell 三个数据源,保证各来源数据量均衡。

(2)Set 节点:字段标准化(Edit Fields 系列)

针对不同期刊的字段差异,通过 3 个set节点统一字段格式,核心配置示例(以 PubMed 为例):

  • 统一字段名:将各期刊的原始字段映射为「标题、内容、日期、链接、期刊」5 个标准字段;
  • 统一期刊标识:手动指定期刊名称(如 PubMed/Science/Cell),便于后续分类;
  • 适配字段差异:Cell 的日期字段使用$json['dc:date'],与其他期刊区分处理。

4. 数据筛选:Filter 节点

Filter节点实现时间维度的筛选,核心逻辑:

"leftValue": "={{ new Date($json[\"日期\"]).toISOString().slice(0,10) }}",
"rightValue": "={{ new Date(new Date().setDate(new Date().getDate() - 30)).toISOString().slice(0,10) }}",
"operator": {
  "type": "dateTime",
  "operation": "afterOrEquals"
}
  • 筛选规则:仅保留近 30 天发布的文献,过滤过期内容;
  • 实现方式:将文献发布日期与「当前日期 - 30 天」转换为 ISO 格式(YYYY-MM-DD)后对比,保证日期格式统一。

5. AI 处理模块:LLM Chain + DeepSeek Chat Model

(1)Basic LLM Chain 节点

核心作用是调用 AI 生成文献摘要,prompt 配置:

把你收到的文献资料都整理成干净的格式,内容需要总结为摘要,以下是文献:
标题 :{{ $json['标题'] }} 
内容:{{ $json['内容'] }} 
日期:{{ $json['日期'] }} 
链接:{{ $json['链接'] }} 
期刊:{{ $json['期刊'] }}
  • 功能:将标准化后的文献数据传入 AI,生成结构化的摘要内容;
  • 配套节点:DeepSeek Chat Model指定模型为deepseek-chat,通过 API 密钥调用 DeepSeek 大模型;Structured Output Parser实现 AI 输出的结构化解析。

(2)AI Agent 节点:个性化建议生成

这是工作流的核心智能模块,实现「文献 + 日程」的联动分析,核心配置:

  • 工具调用:关联paper_tool(飞书多维表格近 2 天文献查询)和daily_tool(飞书日历未来 7 天日程查询)两个工具节点;
  • Prompt 设计:明确 AI 角色为「学术助理文献通」,指定输出格式为 Markdown,包含「文献看板、日程概览、综合建议」三大模块;
  • 逻辑规则:根据文献有无、日程忙闲生成差异化建议(如 “有文献且有空时推荐精读篇目标题 + 理由”)。
你是我的专属学术助理“文献通”。你的任务:
1. 调用工具获取最新文献和我的日程。
2. 根据信息生成一段 Markdown 格式的建议,用于飞书卡片展示。

你有两个工具(请确保在 n8n 中它们拥有不同的节点名称,例如一个叫“paper_tool”,另一个叫“daily_tool”):
- 工具A(paper_tool):返回近2天的文献列表,每条文献包含:标题、发表时间、期刊、摘要、原文链接。
- 工具B(daily_tool):返回我未来7天的日程,每条日程包含:日期、时间、事件标题。

执行步骤:
第一步:同时调用 paper_tool 和 daily_tool 工具,获取真实数据。
第二步:严格按照下面的 Markdown 结构输出。不要输出任何额外解释、不要用代码块包裹、不要加前后缀。

输出结构(请原样使用,但替换 [] 中的内容为实际数据):

### 📚 学术前沿今日速递与【**专属建议**】

**🌟 今日文献看板:**

如果 paper_tool 返回了至少一条文献,则按以下格式逐条列出(每条之间用 "---" 分隔):
将标题和摘要翻译成中文
*   ---
*   **标题:** [实际标题]
*   **发表时间:** [实际发表时间]
*   **发表期刊:** [实际期刊名]
*   **核心摘要:** [实际摘要]
*   **原文链接:** [点击查看详情](实际URL)

如果 paper 未返回任何文献,则只写:
*   今天学术圈风平浪静,暂未捕获到新的重要文献。是时候走出实验室活动活动了!

**📅 我的近期日程概览:**
根据 daily_tool 返回的日程,用列表形式列出未来7天的关键安排,并标明空闲时段。示例:
*   4月14日 (周一):上午 组会汇报;下午 暂无安排
*   4月15日 (周二):全天 实验数据分析

**💡 综合建议与排期参考:**
根据文献情况和日程空闲度,给出具体建议。逻辑如下:
- 有文献且有空:推荐优先精读哪一篇(标题+理由),建议安排在哪个空闲时段。
- 有文献但日程满:提醒专注已有工作,建议存入阅读清单,并提示未来可能的空档。
- 无文献且有空:推荐一个具体的放松活动(如散步、看电影、咖啡馆发呆)。
- 无文献且日程满:鼓励专注当前工作,不强行推荐活动。

语气积极、专业、有创造力。输出必须从 "### 📚" 开始,到建议结束。

6. 数据存储与推送模块

(1)Feishu Node:飞书多维表格存储

将标准化的文献数据写入飞书多维表格(bitable),核心配置:

  • 日期格式化:转换为上海时区的中文格式(YYYY-MM-DD HH:mm:ss);
  • 链接处理:去除换行符,生成可点击的 “文献原文” 链接;
  • 认证方式:通过飞书 API 密钥(credentials)实现权限验证。

(2)HTTP Request:飞书群消息推送

将 AI Agent 生成的 Markdown 建议推送至飞书群机器人,核心配置:

{
  "msg_type": "interactive",
  "card": {
    "schema": "2.0",
    "config": {
      "update_multi": true,
      "style": {
        "text_size": {
          "normal_v2": {
            "default": "normal",
            "pc": "normal",
            "mobile": "heading"
          }
        }
      }
    },
    "body": {
      "direction": "vertical",
      "padding": "12px 12px 12px 12px",
      "elements": [
        {
          "tag": "markdown",
          "content": "{{ $json.output ? JSON.stringify($json.output).slice(1, -1) : '' }}",
          "text_align": "left",
          "text_size": "normal_v2",
          "margin": "0px 0px 0px 0px"
        }
      ]
    },
    "header": {
      "title": {
        "tag": "plain_text",
        "content": "AI News"
      },
      "subtitle": {
        "tag": "plain_text",
        "content": ""
      },
      "template": "blue",
      "padding": "12px 12px 12px 12px"
    }
  }
}
  • 消息类型:交互式卡片(interactive),支持 Markdown 渲染;
  • 内容处理:提取 AI Agent 的输出内容,去除 JSON 字符串的首尾引号,保证格式正确。

三、工作流执行流程

  1. 触发阶段:每周一 9 点,Schedule Trigger 触发,同时启动 PubMed/Science/Cell 的 RSS 采集;
  2. 采集与限流:各期刊 RSS 数据经 Limit 节点限流(≤20 条)后,进入 Set 节点标准化字段;
  3. 筛选与 AI 处理:Filter 节点筛选近 30 天文献,Basic LLM Chain 调用 DeepSeek 生成摘要;
  4. 数据存储:标准化 + AI 摘要后的文献数据写入飞书多维表格;
  5. 智能推荐:Feishu Node 触发 “仅触发,不传参” 节点,启动 AI Agent 调用文献 / 日程工具,生成个性化建议;
  6. 消息推送:AI 建议通过 HTTP Request 推送至飞书群,完成全流程。

四、总结

本工作流基于 n8n 实现了学术文献收集的全自动化,从多源 RSS 采集到 AI 智能推荐,再到飞书生态的深度整合,完整覆盖了 “数据获取 - 处理 - 存储 - 应用” 的全链路。该方案不仅提升了文献收集的效率,还通过 AI Agent 实现了个性化的学术建议生成,为科研工作者节省了大量手动整理和筛选的时间,是低代码工具在学术场景的典型落地案例。

通过调整 RSS 源、定时规则、AI prompt 等配置,该工作流可快速适配不同学科、不同期刊的需求,具备较强的通用性和扩展性。

此作者没有提供个人介绍。
最后更新于 2026-06-29