自動化学術論文モニタリング(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": "Bot設定",
"type": "n8n-nodes-base.stickyNote",
"position": [
250,
150
],
"parameters": {
"content": "## Paper Monitoring Bot\n\nMonitors these topics:\n- Machine Learning\n- Neural Networks\n- Computer Vision\n\nRuns: Daily at 9 AM"
},
"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": "slack-notify",
"type": "main",
"index": 0
},
{
"node": "email-digest",
"type": "main",
"index": 0
}
]
]
},
"split-queries": {
"main": [
[
{
"node": "pdfvector-search",
"type": "main",
"index": 0
}
]
]
},
"schedule-trigger": {
"main": [
[
{
"node": "set-params",
"type": "main",
"index": 0
}
]
]
},
"summarize-paper": {
"main": [
[
{
"node": "format-digest",
"type": "main",
"index": 0
}
]
]
},
"filter-recent": {
"main": [
[
{
"node": "summarize-paper",
"type": "main",
"index": 0
}
]
]
},
"set-params": {
"main": [
[
{
"node": "split-queries",
"type": "main",
"index": 0
}
]
]
},
"pdfvector-search": {
"main": [
[
{
"node": "filter-recent",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - 個人の生産性, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
GPT-4と複数のデータベース検索を使った学術文献综述の自動化
GPT-4と複数のデータベース検索を使った学術文献レビューの自動化
If
Set
Code
+
If
Set
Code
13 ノードPDF Vector
文書抽出
PDFベクター、GPT-4、Neo4jを使用して学術知識グラフを構築
PDFベクトル、GPT-4、Neo4jを使って、研究論文から学術知識グラフを構築
Code
Neo4j
Open Ai
+
Code
Neo4j
Open Ai
10 ノードPDF Vector
AI RAG検索拡張
Google DriveとLLM解析を使用したバッチPDFからMarkdownへの変換
Google DriveとLLM駆動の解析でバッチPDFをMarkdownに変換
If
Set
Code
+
If
Set
Code
8 ノードPDF Vector
コンテンツ作成
PDFベクトル、Google Drive、データベースを使用した領秤データの抽出と保存
PDFベクトル、Google Drive、データベースを使って領収書データを抽出・保存する
If
Code
Slack
+
If
Code
Slack
26 ノードPDF Vector
請求書処理
五つのデータベースをまたいだ学术研究検索、PDFベクターと複数エクスポート
五つのデータベースを横断した学术研究検索、PDFベクターおよび複数のエクスポート
Set
Code
Pdf Vector
+
Set
Code
Pdf Vector
9 ノードPDF Vector
AI RAG検索拡張
AIを使った求人情報の自動検索
Google Jobs、RemoteOK、GPT-3.5 を使ってAIの求人情報に基づく自動求人検索を行い、AI採用情報に基づく自動求人検索とAI対応の求人情報を提供
If
Set
Code
+
If
Set
Code
17 ノードShelly-Ann Davy
個人の生産性
ワークフロー情報
難易度
中級
ノード数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で表示 →
このワークフローを共有