はじめに
最近、FlowiseAIをよく触っています。Flowiseはインストールも可能ですが、github codespaceで簡単に動かすことができるので、iPadなどから出先でサクッと作って作ったコードはgit pushできるなどが個人的に大きな利点だと思っています。この手のローコードサービスは、他にも、Apache Cassandra NoSQLデータベースの商業化した事で知られるDataStaxなどが買収したLangFlowなども存在しており、今後も続々と新たなツールが登場するのではないかと思います。今回はRAGを使う場合に、複数の知識を入れて、Agentに検索してもらって使うなどの仕組みをFlowiseで作ってみたらどうなるのか?ということをやってみたいと思います。
つくるもの
今回は複数拠点における防災AIを作ってみたいと思います。各自治体で配布されている防災ハンドブックについて複数拠点でRAGを作成して、そこに対してAIに質問をしてみたいと思います。
防災ハンドブックは、自治体によっておおよそ共通な部分と、個別に分かれる部分が存在します。
共通...災害時の心構え、防災袋に入れておく必要のあるものリストなど
個別...避難所などの情報、緊急時の連絡先など
予想される動きとしては、共通なものはそれぞれのRAGから返答する、個別のものはAgentがRAGを選択して情報を取り出すような動きを想定します。
RAGの作成
まずは複数のRAGを作成します。ベクトルデータベースは様々なものがあるので選定が必要ですが、無料枠で複数のindexが作れること、PDFのインポートに対応しているという条件などから、今回は、Vectaraを利用します。(普段よく使っているPAINCONなどでは無料では一つのindexしか使えないなど制限がある様子で条件から除外しました。)
Vectaraの操作
1.Vectaraを開きます
2.RAGの名前を記述します
3.PDFをアップロードします
4.1-3の手順で複数のRAGを作成します。
5.FlowiseAIからデータを読むために、キーを作成します。作成時に、Corporaを選択します。
6.キーが作成されたのでメモしておきます。
FlowiseAIの手順
Flowiseではフルスクラッチで書くことももちろんできるのですが、
参考になるテンプレートがMarketに転がっているので、作成したいものに対して、近いものがあるのであればこちらを活用すると便利です。
1.Marketから今回参考にするMultiple Documents QnAを選択する
2.ToolAgentを中心に、ToolsにVectara(RAG)を設定、ChatModelにGPTなどを設定する
3.VectaraAPIの設定を行う
VectaraCustomerID、VectaraCorpusID、APIKeyなどを設定する
4.全体感としてはこんな感じ
会話してみる
複数のRAGの中で共通していそうな話題と、片方のRAGを用いる話題などを試してみました。
RAGで共通してそうな話題
個別のRAGについての話題
#Conclusion