Slack連携!n8nでRAGチャットボット構築入門
学習ポイント
- 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 (チャットインターフェース)