自動化学術論文モニタリング(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
難易度説明

経験者向け、6-15ノードの中程度の複雑さのワークフロー

作成者
PDF Vector

PDF Vector

@pdfvector

A 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で表示

このワークフローを共有

カテゴリー

カテゴリー: 34