Difyのv1.1.0にて、複数のOCI関連のサービスに関してのアップデートがあったので、いくつかの記事にわたって書いていこうと思います!
前提条件
- OCIのアカウントを持っていること
- OCIでVCN、Computeをすでに作成していること
Difyとは
オープンソースのAIアプリ開発プラットフォームです。
SaaS版だけでなく、ローカル環境にデプロイできたり、多様なLLMをサポートしていて、かつノーコードでアプリが作成できるということで人気みたいです。
インスタンス作成
Dify側では、以下が最小インストール要件になっています。
- CPU >= 2 Core
- RAM >= 4 GiB
これを参考にインスタンスを作成すると良いと思います。
Dockerのインストール
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker opc
docker-composeのインストール
sudo wget -O /usr/local/bin/docker-compose https://github.com/docker/compose/releases/download/v2.31.0/docker-compose-linux-x86_64
sudo chmod 755 /usr/local/bin/docker-compose
Difyのインストール
v1.1.0のDifyをクローンします。
sudo dnf install -y git
git clone -b 1.1.0 https://github.com/langgenius/dify.git
cd dify/docker
環境設定ファイルを作成します。
cp .env.example .env
Oracle Database 23ai FreeのDockerコンテナをベクトルストアとして使用する場合は、環境設定ファイルを以下のように編集します。
---
VECTOR_STORE=oracle
---
Dockerコンテナを起動します。
docker compose up -d
以下のコマンドを実行して、Difyにアクセスするために、80番ポートを解放します。
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload
APIキーの作成
OCIコンソール画面で、右上のプロファイルのアイコンをクリックし、ユーザーのIDをクリックします。
ユーザーの詳細画面で、リソース→APIキーをクリックして、APIキーの追加をクリックします。
秘密キーのダウンロードと公開キーのダウンロードをクリックして、秘密キーと公開キーをダウンロードして、保存します。
追加をクリックします。
構成ファイルのプレビューをコピーして、閉じるのボタンをクリックします。
OCI Generative AIのDify用の認証情報の作成
Dify用の認証情報を作成するために、oci-dify-credentials-generator.sh
のシェルを作成します。
ダウンロードしたAPI秘密鍵と以下のスクリプトをインスタンスにコピーして、user, fingerprint, tenancy を先ほどメモ帳に貼り付けた情報を記入します。
#!/bin/bash
#以下を書き換える
user="ocid1.user.oc1..xxx"
fingerprint="xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
tenancy="ocid1.tenancy.oc1..xxx"
pem_file_path="xxx.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"
スクリプトを実行します。
sh oci-dify-credentials-generator.sh
生成されたDify: oci api key config file's contentとDify: oci api key config file's contentは後ほど使用するので、メモしておきます。
Difyの設定
ブラウザでDifyにアクセスします。
http://<インスタンスのパブリックIPアドレス>/install
メールアドレス、ユーザー名およびパスワードを入力して、セットアップをクリックします。
OCI Generative AI Serviceを使用するために、プラグインをクリックします。
マーケットプレイスを探索をクリックし、Oracleで検索し、OCIGenerativeAIをにカーソルを合わせ、インストールをクリックします。
OCIGenerativeAIのインストールをクリックします
インストール完了後、画面右上のユーザーのアイコンをクリックし、設定をクリックします。
ワークスペース⇒モデルプロバイダーを選択して、OCIGenerativeAIのセットアップをクリックします。
先ほど生成されたDify: oci api key config file's contentとDify: oci api key file's contentの情報を入力して、保存のボタンをクリックします。
接続が正常に確立されると、OCI Generative AIが利用可能なモデルが表示されます。
最新のmeta.llama-3.3-70b-instruct
も利用可能になっていることがわかります。
これで設定が完了しました。