自动化学术论文监控,含PDF向量、GPT-3.5和Slack提醒
中级
这是一个Personal Productivity, Multimodal AI领域的自动化工作流,包含 10 个节点。主要使用 Set, Code, Slack, OpenAi, EmailSend 等节点。 自动化学术论文监控,含PDF向量、GPT-3.5和Slack提醒
前置要求
- •Slack Bot Token 或 Webhook URL
- •OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"meta": {
"instanceId": "placeholder"
},
"nodes": [
{
"id": "config-note",
"name": "机器人配置",
"type": "n8n-nodes-base.stickyNote",
"position": [
250,
150
],
"parameters": {
"content": "## 论文监控机器人"
},
"typeVersion": 1
},
{
"id": "schedule-trigger",
"name": "每日计划",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
450,
300
],
"parameters": {
"rule": {
"interval": [
{
"field": "hours",
"hoursInterval": 24,
"triggerAtHour": 9
}
]
}
},
"typeVersion": 1
},
{
"id": "set-params",
"name": "设置搜索参数",
"type": "n8n-nodes-base.set",
"position": [
650,
300
],
"parameters": {
"values": {
"number": [
{
"name": "daysBack",
"value": 1
}
],
"string": [
{
"name": "searchQueries",
"value": "machine learning,neural networks,computer vision,deep learning"
}
]
}
},
"typeVersion": 1
},
{
"id": "split-queries",
"name": "拆分查询",
"type": "n8n-nodes-base.code",
"position": [
850,
300
],
"parameters": {
"functionCode": "const queries = $json.searchQueries.split(',').map(q => q.trim());\nreturn queries.map(query => ({ query }));"
},
"typeVersion": 1
},
{
"id": "pdfvector-search",
"name": "PDF向量 - 搜索新论文",
"type": "n8n-nodes-pdfvector.pdfVector",
"position": [
1050,
300
],
"parameters": {
"limit": 10,
"query": "={{ $json.query }}",
"fields": [
"title",
"authors",
"abstract",
"date",
"doi",
"pdfUrl",
"totalCitations"
],
"resource": "academic",
"yearFrom": "={{ new Date().getFullYear() }}",
"operation": "search",
"providers": [
"arxiv",
"pubmed",
"semantic_scholar"
]
},
"typeVersion": 1
},
{
"id": "filter-recent",
"name": "筛选近期论文",
"type": "n8n-nodes-base.code",
"position": [
1250,
300
],
"parameters": {
"functionCode": "// Filter papers from last N days\nconst daysBack = $node['Set Search Parameters'].json.daysBack;\nconst cutoffDate = new Date();\ncutoffDate.setDate(cutoffDate.getDate() - daysBack);\n\nconst recentPapers = $json.filter(paper => {\n const paperDate = new Date(paper.date);\n return paperDate >= cutoffDate;\n});\n\nreturn recentPapers.length > 0 ? recentPapers : [];"
},
"typeVersion": 1
},
{
"id": "summarize-paper",
"name": "生成摘要",
"type": "n8n-nodes-base.openAi",
"position": [
1450,
300
],
"parameters": {
"model": "gpt-3.5-turbo",
"messages": {
"values": [
{
"content": "Summarize this research paper in 2-3 sentences:\n\nTitle: {{ $json.title }}\nAuthors: {{ $json.authors.join(', ') }}\nAbstract: {{ $json.abstract }}\n\nFocus on the main contribution and findings."
}
]
}
},
"typeVersion": 1
},
{
"id": "format-digest",
"name": "格式化简报",
"type": "n8n-nodes-base.code",
"position": [
1650,
300
],
"parameters": {
"functionCode": "// Format papers for notification\nconst papers = $items().map(item => {\n const paper = item.json;\n return {\n title: paper.title,\n authors: paper.authors.slice(0, 3).join(', ') + (paper.authors.length > 3 ? ' et al.' : ''),\n summary: paper.summary,\n link: paper.doi ? `https://doi.org/${paper.doi}` : paper.url,\n citations: paper.totalCitations || 0,\n query: paper.originalQuery\n };\n});\n\n// Group by query\nconst grouped = papers.reduce((acc, paper) => {\n if (!acc[paper.query]) acc[paper.query] = [];\n acc[paper.query].push(paper);\n return acc;\n}, {});\n\nreturn { papers: grouped, totalCount: papers.length, date: new Date().toISOString() };"
},
"typeVersion": 1
},
{
"id": "slack-notify",
"name": "发送Slack提醒",
"type": "n8n-nodes-base.slack",
"position": [
1850,
300
],
"parameters": {
"channel": "#research-alerts",
"message": "=📚 *Daily Research Digest* - {{ $now.format('MMM DD, YYYY') }}\n\nFound {{ $json.totalCount }} new papers:\n\n{{ Object.entries($json.papers).map(([query, papers]) => `*${query}:*\\n${papers.map(p => `• ${p.title}\\n _${p.authors}_\\n ${p.summary}\\n 🔗 ${p.link}`).join('\\n\\n')}`).join('\\n\\n---\\n\\n') }}",
"attachments": []
},
"typeVersion": 1
},
{
"id": "email-digest",
"name": "邮件简报",
"type": "n8n-nodes-base.emailSend",
"position": [
1850,
450
],
"parameters": {
"html": "=<h2>Daily Research Digest</h2>\n<p>Found {{ $json.totalCount }} new papers</p>\n\n{{ Object.entries($json.papers).map(([query, papers]) => \n `<h3>${query}</h3>\n ${papers.map(p => \n `<div style=\"margin-bottom: 20px;\">\n <h4>${p.title}</h4>\n <p><em>${p.authors}</em></p>\n <p>${p.summary}</p>\n <p><a href=\"${p.link}\">Read Paper</a> | Citations: ${p.citations}</p>\n </div>`\n ).join('')}`\n).join('\\n') }}",
"subject": "=Daily Research Digest - {{ $now.format('MMM DD, YYYY') }}",
"toEmail": "research-team@company.com"
},
"typeVersion": 1
}
],
"connections": {
"Format Digest": {
"main": [
[
{
"node": "Send Slack Alert",
"type": "main",
"index": 0
},
{
"node": "Email Digest",
"type": "main",
"index": 0
}
]
]
},
"Split Queries": {
"main": [
[
{
"node": "PDF Vector - Search New Papers",
"type": "main",
"index": 0
}
]
]
},
"Daily Schedule": {
"main": [
[
{
"node": "Set Search Parameters",
"type": "main",
"index": 0
}
]
]
},
"Generate Summary": {
"main": [
[
{
"node": "Format Digest",
"type": "main",
"index": 0
}
]
]
},
"Filter Recent Papers": {
"main": [
[
{
"node": "Generate Summary",
"type": "main",
"index": 0
}
]
]
},
"Set Search Parameters": {
"main": [
[
{
"node": "Split Queries",
"type": "main",
"index": 0
}
]
]
},
"PDF Vector - Search New Papers": {
"main": [
[
{
"node": "Filter Recent Papers",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
中级 - 个人效率, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
PDF报告监控器 - 含GPT-3.5洞察与Slack/邮件告警
PDF报告监控器 - 含GPT-3.5洞察与Slack/邮件告警
If
Ftp
Code
+7
10 节点PDF Vector
AI 摘要总结
使用GPT-4和多数据库搜索自动化学术文献综述
使用GPT-4和多数据库搜索自动化学术文献综述
If
Set
Code
+4
13 节点PDF Vector
文档提取
使用PDF向量、GPT-4和Neo4j构建学术知识图谱
使用PDF向量、GPT-4和Neo4j从研究论文构建学术知识图谱
Code
Neo4j
Open Ai
+4
10 节点PDF Vector
AI RAG 检索增强
批量PDF转Markdown转换(Google Drive与LLM解析)
使用Google Drive和LLM驱动的解析进行批量PDF转Markdown转换
If
Set
Code
+4
8 节点PDF Vector
内容创作
使用PDF向量、Google Drive和数据库提取和存储发票数据
使用PDF向量、Google Drive和数据库提取和存储发票数据
If
Code
Slack
+7
26 节点PDF Vector
发票处理
跨五个数据库的学术研究搜索,含PDF向量和多重导出
跨五个数据库的学术研究搜索,含PDF向量和多重导出
Set
Code
Pdf Vector
+2
9 节点PDF Vector
AI RAG 检索增强
工作流信息
难度等级
中级
节点数量10
分类2
节点类型8
作者
PDF Vector
@pdfvectorA fully featured PDF APIs for developers - Parse any PDF or Word document, extract structured data, and access millions of academic papers - all through simple APIs.
外部链接
在 n8n.io 查看 →
分享此工作流