AI PLAY玩法更新持续收录
← 回到更新流

2026-09-02 · 原文发布日

每天自动汇总药物研发情报并打分提醒

面向医药研发情报的 n8n 免费模板:每天定时抓取 PubMed、bioRxiv/medRxiv、专利接口和 ClinicalTrials.gov 的新条目,去重后用 Claude 提取靶点、分子、作用机制和研发阶段等结构化字段,按关注靶点和首创信号打分,嵌入存入 Pinecone、记录进 Airtable,高分发现即时推送 Slack 并发运行摘要。

原文要点

该免费模板每天 6 点(或手动)运行:先载入关键词、关注靶点清单、阈值与目的地配置;从 PubMed(NCBI E-utilities)、bioRxiv/medRxiv、所配置的专利接口与 ClinicalTrials.gov 抓取新条目;统一为单一文档格式,并用 workflow static data 与历史记录去重;逐条送 Anthropic Claude 提取靶点、分子、作用机制、研发阶段、竞争机构与摘要;按靶点命中与首创信号打相关性分;用 Voyage AI 生成嵌入并带元数据 upsert 进 Pinecone;结构化记录 upsert 进 Airtable(列出 URL、DocID、RelevanceScore 等字段);高分条目即时推 Slack,运行结束发含累计索引数的摘要。

这次做成什么

照此思路在自有 n8n 搭一条“每日药研情报管线”练习版:定时触发→四源抓取→去重→Claude 结构化抽取→打分→Pinecone/Airtable/Slack 输出。配置、提示词与测试数据为本站独立设计,原模板各 HTTP 源的精确参数未逐条核对,需以原模板为准。

准备什么

  • n8n 实例及 Anthropic、Voyage AI、Pinecone、Airtable、Slack 五套 API 凭据
  • PubMed、bioRxiv、所选专利接口、ClinicalTrials.gov 的访问配置(部分需要各自 header 或 key)
  • 已按字段清单建好的 Airtable 表,及维度与 Voyage 嵌入一致的 Pinecone 索引
  • 一份测试用药研文档条目(可用本站合成数据)

具体怎么做

  1. 定时与配置

    用 Schedule Trigger 设为每天 06:00,保留手动执行用于调试;接 Set 节点写入 searchKeywords、watchTargets(如 ["KRAS","GLP-1"])、noveltyThreshold(如 70)、slackChannel、airtableBase、airtableTable、pineconeIndexUrl、namespace。

  2. 四源抓取与归一

    并行放四个 HTTP Request 节点分别请求 PubMed E-utilities、bioRxiv、专利接口、ClinicalTrials.gov,各自用对应凭据;汇流后用 Code 节点把不同响应统一成 {docId,title,abstract,url,sourceType,publishedDate}。

  3. 去重

    用 Code 节点读取 workflow static data 里的 seenDocIds,过滤掉已见 docId,仅保留新文档,运行成功后把新 id 写回 static data,避免次日重复处理。

  4. Claude 抽取与打分

    循环每条新文档,HTTP 请求 Anthropic 消息接口,提示词用下方材料;解析返回 JSON 后,按规则打分:标题或摘要命中 watchTargets 加 40 分,IsFirstInClass 为 true 加 30 分,临床阶段在 II 期及以后加 20 分,基准 10 分,得到 RelevanceScore。

  5. 入库与提醒

    用 Voyage 凭据对 summary 生成嵌入,upsert 到 Pinecone(metadata 带 docId、title、score);Airtable 节点按下方字段映射 upsert;IF 判断 RelevanceScore≥noveltyThreshold,为真发 Slack 即时提醒;末尾汇总本条运行处理数与累计索引数发 Slack 摘要。

可直接复制的材料

运行配置 JSON 示例

本站设计示例;base id、索引地址、频道名均需替换为你自己的,勿放真实密钥。

{
  "searchKeywords": ["KRAS inhibitor", "GLP-1 receptor agonist"],
  "watchTargets": ["KRAS", "GLP1R"],
  "noveltyThreshold": 70,
  "slackChannel": "#rd-intel",
  "airtableBase": "appExampleBase01",
  "airtableTable": "DrugIntel",
  "pineconeIndexUrl": "https://example-index.svc.pinecone.io",
  "pineconeNamespace": "daily-rd"
}

Claude 结构化抽取提示词

本站独立编写示例,字段名与 Airtable 列对应,可按需调整。

你是药物研发情报分析员。根据下面的文献/专利/临床条目文本,只输出 JSON 对象,不要解释。字段:Title(原文标题)、Summary(80 字内中文摘要)、Molecules(分子或药物名数组)、DrugTargets(靶点数组)、MechanismOfAction(作用机制,未知填 null)、DevelopmentStage(Discovery/Preclinical/Phase I/Phase II/Phase III/Approved/Unknown 之一)、CompetingOrganizations(机构数组)、IsFirstInClass(布尔,仅当文本明确支持首创判断时为 true,否则 false)。文本:
{{$json.title}}
{{$json.abstract}}

Airtable 字段映射

与来源列出的写入列一致,建表时列名需完全匹配。

URL←url;DocID←docId;Title←Title;Summary←Summary;Molecules←Molecules 拼接;DrugTargets←DrugTargets 拼接;SourceType←sourceType;PublishedDate←publishedDate;IsFirstInClass←布尔;RelevanceScore←打分结果;DevelopmentStage←阶段;MechanismOfAction←机制;CompetingOrganizations←机构拼接

输入与输出示例

本站虚构演示,未真实调用任何外部 API。

输入

合成测试条目:docId=pmid-demo-9001,sourceType=PubMed,标题“Novel covalent KRAS G12C inhibitor XP-105 shows preclinical efficacy”,摘要描述一款新共价 KRAS G12C 抑制剂临床前数据,由 DemoBio 公司发布。watchTargets 含 KRAS。

对应输出

Claude 抽取:DrugTargets=["KRAS"], Molecules=["XP-105"], DevelopmentStage="Preclinical", IsFirstInClass=false, CompetingOrganizations=["DemoBio"]。打分:靶点命中+40,首创+0,阶段+0,基准 10 → RelevanceScore=50,低于阈值 70,不写 Slack 即时提醒,仅 upsert 进 Airtable 与 Pinecone,并计入运行摘要。

做完检查这些

  • 同一天重复手动运行第二次时,去重节点输出 0 条新文档
  • Claude 返回字段名与 Airtable 十三列一一对应,upsert 无未映射列报错
  • RelevanceScore 大于等于阈值的条目触发 Slack 即时消息,低于阈值只进 Airtable
  • 运行结束的 Slack 摘要包含本次处理条数与累计索引文档数

容易卡住的地方

  • 四个外部源接口格式差异大,归一化映射写错会让后续抽取全部拿到空文本
  • static data 在手动测试频繁重跑时会累积脏 id,调试期应先清空
  • Pinecone 索引维度与所选 Voyage 模型不一致会 upsert 失败
  • Anthropic、Voyage、Pinecone 等均按各自用量另行计费,免费仅指模板本身
  • 文本不足以判断首创时提示词要求 false,避免虚报高优先级提醒

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Extract drug discovery intelligence with Claude, Voyage AI, Pinecone, Airtable and Slack
原作者
Oneclick AI Squad
原始发布日期
2026-09-02T04:22:28.173Z
来源
https://n8n.io/workflows/19039