LoginSignup
6
5

DifyでRAGを使ったチャットボットの作成

Last updated at Posted at 2024-05-09

背景

Dify を使えばローコードで LLM アプリを簡単に作れるようなので、ちょっと遊んでみました。

やること

他意はないですが 株式会社ブレインパッドの IR ニュース にある 【定性情報のみ】2024年6月期 第2四半期会社紹介および中期経営計画(2024年6月期~2026年6月期) を学習させて、ブレインパッドについて教えてくれるChatbotを簡易的に作成します。

手順

準備

GoogleかGitHubでログインしてください。
今回は無料お試し版で進めます。

ログインしたら「スタジオ」画面から、「最初から作成」を押しましょう。

image.png

今回は「チャットボット」 > 「Chatflow」 を作成します。上級ユーザー向けと書いてありますが気にしない気にしない。
名前は、適当に、ね。
image.png

デフォルトはこんな感じです。
入力クエリに対して GPT3.5 Turbo が回答してくれる構成になっています。こだわりがなければこのまま進めましょう。
image.png

知識作成・取得

先ほどの会社紹介資料を学習させたいので、「開始」と「LLM」の間に「知識取得」を追加します。「開始」と「LLM」を結ぶ線の上にカーソルを合わせると「+」が表示されるのでクリックすればOKです。

image.png

次に、RAGするための情報を提供します。画面上の「ナレッジ」を選択し、「新規作成」します。
image.png

「テキストファイルからインポート」で、先ほどの会社説明資料 (PDF) をアップロードします。
image.png

ここでチャンクの区切り文字や最大チャンク長を指定することができます。今回はPDFをそのままアップロードしている時点で上手いこと整形するのは諦めてデフォルトのままにします。無料プランなのでインデックスモードだけ「経済的」にする必要があります。この辺は遊びだからいいんです。
image.png

「スタジオ」に戻り、先ほどの「知識取得」の「知識」の右にある「+」を押すと、先ほど作成した知識を追加できます。
image.png

プロンプト設定

後はこの知識を参照して回答するようにプロンプトを設定します。
「LLM」のノードを選択し、以下の設定を行います。

  • コンテキスト
    • 「知識取得/result」を指定
  • SYSTEM
    • コンテキストに基づいて回答するよう指示
  • USER
    • 知識取得の結果に基づいて回答するよう念押ししたうえで質問を投げるよう設定

※変数は「/ (スラッシュ)」を入力すると候補が出ます。
今回の場合、「知識取得/result」に会社説明資料の情報が入り、「開始/sys.query」にはチャットに入力される文章が入ります。

image.png

プレビュー

準備が終わったら画面右上の「デバッグとプレビュー」を押してあげると、チャット画面が現れますので、Liglaについてでも聞いてみましょう。

image.png

いいですね!
ちなみに素のChatGPTさんは Ligla について知らないようなので (残念)、きちんと知識取得できていそうです。

image.png

image.png

あらら
「ありがとうございましたが」ってww

image.png

こっちか。
表記ゆれとかどうやって対策するんですかね。

公開

アプリの公開も画面右上の「公開する」から簡単に行えます。

image.png

公開を押した後に「アプリを実行」を選択すると、ChatGPTの色違いのような画面が現れます。

image.png

ちゃんと機能してますね!
Web埋め込みやAPI利用も可能なようです。

まとめ

巷で盛り上がっている (?) Dify で遊んでみました。自分は LLM や RAG に関して特に詳しくないですが、細かい調整はさておきシンプルなアプリなら簡単に作成できますね~
ま、問題はこれを何に使うかですよねぇ。

どうでもいいですが Dify と DeFi がややこしくて混乱します。

6
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5