投稿する
📚 Dify・n8nハンズオン講座(月曜日チーム)

Slack連携!n8nでRAGチャットボット構築入門

n8nを活用し、Googleドライブ内のPDF情報をPineconeに蓄積させ、Slackからのメンションに対してAIが回答するボットの構築方法を解説します。

学習ポイント

  • n8n、Pinecone、OpenAI、Slackを連携させたRAGシステムの構築フロー
  • Googleドライブからファイルを自動取得し、ベクトルデータベースへ保存する手順
  • SlackのEvent Subscriptionsを利用したボットのトリガー設定と認証方法

n8nを使用して、社内ドキュメントに基づいた回答を行うSlackボットを構築する方法を詳しく解説します。このシステムは、データの取り込み(データパイプライン)と回答生成(AIエージェント)の2つのワークフローで構成されます。

GoogleドライブとPineconeの連携フロー

Googleドライブの特定のフォルダにPDFなどのファイルが追加された際、それを自動で読み込み、テキストを適切に分割(チャンク化)してベクトルデータベース「Pinecone」に保存します。

  • **Google Drive Trigger**: 「On Changes」または「File Created」を検知し、最新のファイルを特定します。

  • **File Download**: トリガーされたファイルをバイナリデータとしてダウンロードします。

  • **Pinecone Vector Store (Insert)**: OpenAIのEmbeddingモデル(text-embedding-3-small)を使用してテキストをベクトル化します。この際、n8nの「Character Text Splitter」を使い、チャンクサイズを300程度に設定することで検索精度を高めます。

SlackボットとAIエージェントの設定

Slackでボットがメンションされた際に起動し、Pineconeから関連情報を検索して回答を返します。

  • **Slack Trigger**: 「On App Mention」イベントをトリガーに設定します。Slack API側で「Event Subscriptions」を有効にし、n8nのWebhook URLを登録する必要があります。

  • **AI Agent**: ChatGPT(GPT-4oなど)をメインモデルとし、ツールとしてPineconeを接続します。これにより、AIはユーザーの質問に対してデータベース内の情報を参照(Retrieval)した上で、要約・回答を行います。

  • **Slack Send Message**: 生成された回答を、元のSlackチャンネルへ投稿します。

ツールおよびAPI設定のポイント

  • **Pinecone**: Index作成時、Dimensionを「1536」に設定することが重要です(OpenAIのEmbeddingモデル仕様に合わせるため)。

  • **Slack App**: 「app_mentions:read」や「chat:write」などのBot Token Scopesを適切に付与し、ワークスペースにインストールして発行されたトークンを使用します。

  • **n8nのモード**: テスト時は「Execute Workflow」で行い、本番稼働時は右上の「Active」スイッチをオンにする必要があります。

#### 紹介されたツール・サービス

  • n8n (ワークフロー自動化)

  • Google Drive / Google Cloud Console (データソース・API)

  • Pinecone (ベクトルデータベース)

  • OpenAI API / ChatGPT (言語モデル・埋め込みモデル)

  • Slack API (チャットインターフェース)