はじめに
Difyは、コード不要でAIチャットボットやアプリが作れる、オープンソースの生成AIアプリ構築プラットフォームです。
この記事では、10分でDifyを使ってLLMの設定、参考ドキュメントの登録を行い、登録ドキュメント参照するRAGチャットボットを作成してみました!
■ 前提条件
- Difyのアカウント作成済みで、サインアップしている状態
※今回私は、コミュニティ版でOCI上に環境を用意しました。
セットアップ方法は、以下のを参考にさせて頂きました。
参考:Qiita - Oracle(OCI)ずくめでDifyしよう!
記事内のVCN作成~Difyのインストールまで完了したところからのスタートです。
なお、以下LLMの設定などは、コミュニティ版の利用を前提とした手順になっています。
Dify環境のセットアップ
Difyを利用するには、大きく2つの形態があります。
■ ウェブブラウザからアカウント作成ですぐに利用可能なクラウド版
■ 自社サーバーなどに無料でインストールして利用可能なコミュニティ版(セルフホスト版・OSS版)
-
クラウド版: 参考: https://docs.dify.ai/ja-jp/getting-started/cloud
- 基本的には無料でアカウント作成するだけですぐに利用可能です(プラン名:Sandbox)。
- さらに、利用規模や目的に応じて有料プランも用意されています。
-
コミュニティ版: 参考: https://docs.dify.ai/ja-jp/getting-started/install-self-hosted/README
- オープンソースでGitHub上でソースコードが公開されているので、自分で環境をセットアップすることで、ソフトウェア自体を無料で利用することができます。
アプリの作成
「アプリを作成する」から「最初から作成」をクリックします。
チャットボットを作成するので「チャットボット」を選択します。
LLMの設定
LLMの設定をしていなかったので、OCIのGenerative AIを利用できるように設定をします。「設定に移動」をクリックします。
モデルプロバイダーから「OCIGenerativeAI」を選択してインストールします。
OCI上で発行したAPIキーの秘密鍵をインスタンスにコピーします。
さらにインスタンス上に以下のスクリプトを作成します。
#!/bin/bash
#以下の4つを書き換える
user="ocid1.user.oc1..XXXX"
fingerprint="xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
tenancy="ocid1.tenancy.oc1..XXXXX"
pem_file_path="XXXXXX.pem"
#以下は修正しない
compartment_ocid=$(oci-metadata |grep compartment | awk '{print $3}')
region="us-chicago-1"
combined_string="$user/$fingerprint/$tenancy/$region/$compartment_ocid"
encoded_combined_string=$(echo -n "$combined_string" | base64 --wrap=0)
echo "[Dify: oci api key config file's content]"
echo "$encoded_combined_string"
if [ ! -f "$pem_file_path" ]; then
echo "PEM file not found: $pem_file_path"
exit 1
fi
encoded_pem_content=$(base64 --wrap=0 "$pem_file_path")
echo
echo "[Dify: oci api key file's content]"
echo "$encoded_pem_content"
スクリプト内のuser、fingerprint、tenancy
、秘密鍵のパスを、APIキーの情報に基づいてを書き換えます。
スクリプトを実行します。
sh code.sh
[Dify: oci api key config file's content]と[Dify: oci api key file's content]がそれぞれ出力されます。
Difyの画面に戻って、API Keyセットアップを押して、2つの枠に入力して保存します。
ナレッジベースの設定
任意のファイルをアップロードします。
チャンク設定や、埋め込みモデル、検索設定を任意の値で設定して、「保存して処理」をクリックします。
チャットボットの設定
「スタジオ」から先程作成したチャットボットのアプリへ戻ります。
「コンテキスト」で先程ナレッジベースとして登録したドキュメントを選択します。
プロンプトは「自動」から指示を加えて作成してもらいました!
10分程度ですぐRAGチャットボットが作成できました!
「アプリを実行」をクリックすると、作成したチャット形式で質問できるページにアクセスすることができます。
回答に登録したドキュメント(ナレッジベース)を利用していることが分かります(CITATIONS)。
正しく動作することが確認できます!