LLMを使い分野特化型AIを作るのに有効なRAGを使ってみました。
モノづくり塾ではオープンソースの利用を強く推奨しており、極力ブラックボックス的なシステムは使わないようにしています。「買ったほうが安い」のような短期的な損得を価値基準に置いておらず、「欲しい=作りたい」「仕組みを知りたい」「コントロールは自分の手で」ということを重視しています。
今日はDifyを使って質問を入力したらPDFで用意した知識を読み込んでそれに基づいてLLMが回答を作るというワークフローを作ってみました。
ユーザーの質問入力を受け付ける開始ステップです。
入力フィールドに変数promptを設定しています。
知識取得ステップです。
あらかじめブログ記事をPDF化したものを知識としてDifyに登録しておきました。
クエリ変数に開始ステップで設定したpromptを設定しています。
LLMステップです。
Gemini 1.5 Proを使い、USERコンテクストにpromptと取得した知識を含めています。
終了ステップです。
LLMからの出力をそのまま表示します。
実行するとこんな感じ。
Gemini 1.5 Proが学習していないはずの「ZIKUUとは?」という問いを投げています。ブログのデータを読んでいるようです。
同じ問いをRAGを使わないチャットボットに投げたときの様子です。使用しているモデルは同じGemini 1.5 Proです。当然ですがZIKUUのことは学習していないので知りません。
非プログラマーではこういうことが簡単にできるのには驚きます。
プログラマーとしては近いうちにプログラミングして似たようなものを作ってみたいです。