47
48

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dockerで構築したDifyを利用しノーコードでRAGのチャットボットを作る

Last updated at Posted at 2024-05-07

概要

最近話題の Dify を利用し、RAG の機能を持ったチャットボットを作る。

Qiita CLI の README をRAGに登録し、Qiita CLI に関する知識を持ったチャットボットをノーコードで作成する。

最終的に作成される画面は以下のイメージ。

image.png

Difyを利用することで、ノーコードで簡単にRAGの機能を持ったチャットボットを作成できる

RAGの参照もととなるQiita Cli のリポジトリは以下の通り。

Dify とは

Dify は最近注目されているオープンソースの LLM アプリケーション開発プラットフォーム。

「ワークフロー」を利用して GUI ベースで簡単にLLMアプリケーションを作成し、公開やアプリケーションへの組み込みまで簡単にできる。

日本語で書かれた README もあるので日本人にとっても使いやすい。

RAG の機能を持ったチャットボットの作成

利用するライブラリの各種バージョンは以下の通り

  • Dify: v0.6.6
  • Docker: 23.0.1

また今回の手順ではOpen AIのAPIを利用するので、事前にOpen AIのAPIキーを取得しておく。

1. Dify の起動

はじめにローカルで Dify を起動する。

ローカルはなくDifyのCloud 版を利用する場合は、以下の URL にアクセスし、アカウントを作成する。

その場合は「1. Dify の起動」の手順は必要なく「2. RAG の作成」 から進める。

1-1. Docker を利用した起動

Dify は Docker を利用して起動する。はじめにリポジトリからソースコードをクローンする

git clone https://github.com/langgenius/dify.git

その後 docker-compose を利用して起動する

cd dify/docker
docker-compose up -d

起動に成功したら、以下の URL にアクセスしセットアップを完了させる。この手順は起動後の初回のみ実行する。

以下の画面が表示されている最中はインストールが進んでいるので、管理者アカウントの作成画面に遷移するまで待つ。

image_1.png

1-2. 初期設定

必要ライブラリのインストールを完了後、以下の画面がひゅうじされるので、管理者アカウントの作成を行う。

image_2.png

必要情報を入力し「セットアップ」をクリックするとログイン画面に遷移する。

作成した管理者アカウントのメールアドレスとパスワードでログインする。

image_3.png

ログインに成功し、以下の画面が表示されればセットアップ完了。

image_4.png

2. RAGの機能を持ったチャットボットの作成

2-1. テンプレートから RAG のチャットボットの雛形を作成

トップページの「テンプレートから作成」を選択する

image_6.png

テンプレート一覧が表示されるので「Knowledge Retrieval + Chatbot」を選択する。

image_5.png

チャットボットの名称と説明を入力し、「作成」をクリックする。

image_7.png

RAGの機能を持つチャットボットのワークフローが、テンプレートから自動で作成される。

image_8.png

この段階ではまだ RAG にデータが登録や設定がされていないので、データを登録する。

2-2. チャットボット が回答するデータを登録

RAGのデータとしてQiita CLIのREADMEを利用する。Qiita CliのリポジトリからREADME.mdをダウンロードする。

表示されているワークフローのブロックのうち、「Knowledge Retrieval」からデータを登録する。

「Knowledge Retrieval」のブロックをクリックし、右側に展開されたパネルの「+」ボタンをクリックする

image_15.png

初期ではデータが何も登録されていないので、「作成に進む」をクリックしデータを登録する

image_16.png

「データソースの選択」で「テキストからインポート」を選択する。そして先ほど保存したQiita Cliの README.md をアップロードし「次へ」をクリックする

image_17.png

「インデックスモード」を「経済的」を選択し、それ以外はデフォルトの設定のまま「保存して処理」をクリックする。

image_18.png

これによりインデックスが作成されデータが登録される。

再度「スタジオ」から先ほどまで作成していた RAG のワークスペースに移動し、「Knowledge Retrieval」の「+」ボタンをクリックする。

「参照する知識を選択」で前の手順で登録した「README.md」が表示されるので、選択した後「追加」をクリックする。

image_19.png

「知識」のパネルに選択した「README.md」が表示されていれば正常に登録されている。

image_20.png

こちらでRAGの知識となるデータの登録が完了となる。

2-3. Open AI の API キーの設定

初期の状態では「LLM」のブロックの「モデル」の箇所にワーニングのマークが表示されている。

image_14.png

これは モデルが利用するOpen AI の API キーが設定されていないことが原因なので、API キーを設定しOpen AIのGPT モデルを利用できる状態にする。

「モデルプロバイダー」より Open AI の API キーを設定する。画面右上より「設定」をクリックする

image_9.png

「ワークスペース > モデルプロバイダー」より Open AI を選択する。今回はOpenAIのモデルを利用しているが、Azure や AWS などが提供する他のモデルも選択可能である。

image_10.png

設定画面が表示されるので API キーを入力し「保存」をクリックする。

image_11.png

設定が完了すると「モデルプロバイダー」のトップに Open AI が表示され、「API-KEY」が緑色に点灯するのでそれを確認する。

image_12.png

API キーに誤りがある場合「保存」をクリックした時にエラーが表示される。その場合は API キーを再度確認し、正しい値を入力する。

image_13.png

2-4. Knowledge Retrieval の回答を GPT の入力に設定

最後に「Knowledge Retrieval」の回答を「GPT」の入力に設定する。「LLM」ブロックをクリック後のパネルの「コンテキスト」より「Knowledge Retrieval > result Array[Object]」を選択する。

image_13.png

これにより直前の「Knowledge Retrieval」の回答をそのまま GPT の入力として設定できる。

動作確認

テスト実行

動作確認は画面上部の「デバッグとプレビュー」より実施できる。クリックすると画面右側に簡易的なチャットウィンドウが表示される。

image.png

いくつか質問をしてみる

  • 「新しい記事を執筆する場合はどうすればいいですか?」

image.png

  • 「Qiita Cli を実行するために必要な環境を教えてください」

image.png

どちらも README に記載されている正しい情報が表示されている。

チャットボットとして公開

作成したチャットボットをアプリとして公開する。「公開する」ボタンより「アプリを実行」を選択する

image.png

新しいタブで ChatGPT ライクな画面が表示される。こちらが作成したチャットボットとなる。

image.png

デバック画面同様のチャットボットとして利用できる。

image.png

47
48
0

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
47
48

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?