n8n初心者向け講座第8弾では、Pinecone(パインコーン)というサービスを活用したRAGチャットボットを作ります。
前回の第7弾では、シンプルなRAGチャットボットの作り方を紹介しました(記事はこちら↓)。
https://fragments.co.jp/blog/n8n-rag-simple/
今回の第8弾では、より高性能なチャットボットを作ります。
大きな違いは「複数のファイルを参照できる」という点です。
具体的には、
- Googleドライブのフォルダに複数のPDFファイルをアップロードする
- そのフォルダ内のデータだけを参照するチャットボットを作る
という流れになります。
第7弾のシンプルなチャットボットよりも、会社や職場での業務に活用しやすい実用的な仕組みになるはずです。
作り方は少し複雑になりますが、そんなに難しくありません。
ワークフローの全体像は以下です↓
ぜひ記事を読みながら、一緒に手を動かしてみてください!
STEP1:RAGチャットボットを作るにあたって必要な準備
はじめに、第8弾のワークフローを作るにあたり必要な準備を紹介します。
まず必要なのは各種サービスとのAPI連携です。
今回は以下の3種類のサービスとのAPI連携が発生します。
- Google:連携方法の解説記事はこちら
- OpenAI:連携方法の解説記事はこちら
- Pinecone:連携方法の解説記事はこちら
それぞれAPI連携方法の解説記事があるので、まだAPI連携していない方はリンク先記事を参考にしてください。
ただ、Pineconeに関してはAPIキーを取得するだけでなく「Indexの作成」という作業も発生します。
リンク先記事ではIndexの作成方法も解説しています。
記事を参考にしながら
「n8n-rag」
という名前のIndexを作成してください。
リンク先の記事を参考にすれば、今回のワークフローを作るにあたって必要な、以下の3つが全て準備できます。
- PineconeのAPIキー取得
- PineconeのIndex作成
- Pineconeとn8nの連携
Pinecone公式サイトURL
・https://www.pinecone.io/
他にも、RAGチャットボットが参照するPDFデータをGoogleドライブ内のフォルダにアップロードしておいてください。
私の場合は
「RAG chatbot」
というフォルダを作り、その中に
というファイルをアップロードしました(リンクからダウンロード可能です)。
会社の就業規則ですね(サンプルなので本物ではありません)。
PDFだけでなくWordやパワポのデータにも対応しているので、パソコン内にあるファイルをアップロードしてみてください。
必要な準備はこれで全てです。
STEP2:Googleドライブノードでデータをダウンロード
準備ができたら、n8nでワークフローを作っていきましょう!
はじめに「Manual Trigger」を追加します。
次に、Google Driveノードの
「Search files and folders」
を追加します。
このノードにはGoogleドライブ内のファイルを検索する機能があります。
追加したら
「Credential to connect with」
でGoogleドライブのアカウントと連携します。
※GoogleコンソールでGoogleドライブのAPI連携を許可しないと連携できません
連携が完了したら、
「Filter」
にある
「Add Filter」
をクリックします。
そして
「From list」
で、RAGに使うファイルをアップロードした、Googleドライブのフォルダ名を指定してください。
3つ目には、Google Driveノードの
「Download file」
を追加します。
追加したら、先ほどのノードと同じようにアカウント連携してください。
追加したら
「File」
で
「By ID」
を指定し、右側の入力フォームに
{{ $json.id }}
と入れます。
このように指定することで、前のノードで検索したファイルすべてのIDが取得できるようになります。
ここまでで、以下のワークフローが構築できたはずです。
実行してみて、正常に動くことを確認してください。
以下のように、Outputの画面でGoogleドライブからダウンロードできたファイルを確認できます。
これでSTEP2は完了です!
STEP3:Pineconeの設定&API連携
次は、Pinecone(パインコーン)ノードを追加します。
聞き慣れない方も多いと思うので簡単に説明すると、Pineconeはデータの貯蔵庫のような役割があります。
そして、Pineconeに保存したデータは高速で引き出すことができるので、RAGチャットボットを作る際はよくPineconeが使われます。
今回のワークフローでは
「Pinecone Vector Store」
以下にある、
「Add documents to vector store」
というノードを追加します。
追加の流れは下の動画を参考にしてください。
追加したらAPI連携をして、「Pinecone Index」の箇所で、Indexを指定します。
Pineconeに登録・ログインして作ったやつですね。
私は「n8n-rag」というIndexを作ったので、以下のような設定になっています。
Pineconeの登録方法や、API連携・n8nとの連携方法については以下の記事で画像付きで詳しく解説しています。
ぜひ参考にしてください。
PineconeのAPIキーの取得方法を解説!n8nとの連携方法も紹介!
設定が完了したら、Pinecone Vector StoreノードのEmbeddingをクリックし
「Embeddings OpenAI」
を追加します。
追加したらAPI連携を完了してください。
API連携が完了したら「Model」を設定します。
PineconeでIndexを作るとき、「Configuration」という項目があり、そこでOpenAIのモデルを選んだと思います。
そのとき選んだモデルと同じものを選択してください。
ここでは
「text-embedding-3-small」
を選択します。
さらに、Pinecone Vector Storeノードの「Document」に
「Default Data Loader」
を追加します。
追加したら、Type of Dataの部分を
「Binary」
に変更してください。
追加・設定の流れは以下の動画で確認できます。
補足するとDefault Data Loader内の設定項目「Text Splitting」はデフォルトの「Simple」でOKです。
「Simple」を選ぶとテキストは1000文字ごとに分割され、最後の200文字は次のチャンクに重複して追加されます。
※このように分割するのは、AIが情報を検索しやすくしたり、長い文章をスムーズに理解できるようにするためです
ここで「Custom」を選ぶと、追加で
「Text Splitters」
というノードを利用できますが、特別な理由がなければデフォルト設定のままで大丈夫です。
ここまでの設定が終わったら、ワークフローを実行してみましょう。
するとPinecone にデータがアップロードされ、RAGの情報源となるデータの準備が完了します。
なお、アップロードされたデータは Pineconeの管理画面から確認可能です。
下の画像は、今回のワークフローで私がアップロードしたデータの例です。
確認自体は必須ではありませんが、理解を深めるために一度目を通しておくことをおすすめします。
STEP4:チャットボット部分を構築しPineconeと接続する
最後に、チャットボット部分を追加・設定します。
まず、下の動画を参考にしてワークフローにChat Triggerを追加してください。
既存のワークフローとは離れた場所に追加します。
そして、Chat TriggerにAIエージェントノードを追加してください。
追加したらAIエージェントノードに以下の2つを追加します。
- Chat Model → OpenAI Chat Model
- Memory → Simple Memory
下の画像のようなワークフローを作ってください。
さらに、AIエージェントの「Tool」の部分に
「Pinecone Vector Store」
を追加し、API連携を行います。
先ほどもPinecone Vector Storeノードを追加しましたが、今回は「Operation Mode」を
「Retrieve Documents (As Tool for AI Agent)」
に設定します。
※さっきは「Operation Mode」が「Insert Documents」でした
そして「Description」には
「ユーザーからのチャットに対して返信するときに参照する情報です。」
と入力してください。
Pinecone Indexは
「n8n-rag」
を選択します。
最後に、Pinecone Vector Storeノードに
「Embeddings OpenAI」
を追加します。
追加したらAPI連携し、Modelを
「text-embedding-3-small」
にしてください。
これで今回のワークフローの構築は完了です!
最後に、実際にチャットしてみましょう。
STEP5:RAGチャットボットとチャットしてみる
n8nのワークフロー下部にある
「Open chat」
をクリックしてください(場所は下の画像を参考)。
クリックすると、左下にチャット画面が表示されます。
そこで、今回アップロードした内容に関係する内容の質問をしてみてください。
生成AIがアップロードしたデータの内容を参照し、きちんと回答してくれるはずです。
このようなRAGチャットボットは
- 会社の新人研修
- マニュアル作成
などで活用できます。
簡単な割に汎用性が高いので、ぜひご自身の仕事や環境に合わせてRAGチャットボットを作ってみてください!
第8弾以外のn8n入門講座はこちら
この記事で紹介した第8弾以外の、n8n入門講座を一覧で紹介します。
どれもn8n初心者向けのワークフローですので、ぜひ参考にしてください。
