Difyのv1.1.0アップデートにより、Oracle Cloud Infrastructure (OCI) 関連のサービス連携が強化されました。この記事では、DifyをOCI上のインスタンスに構築し、OCI Generative AIサービスが提供する最新のLLM(Llama 3.3など)を利用可能にするまでの手順をステップバイステップで解説します。
前提条件
- OCIアカウント: Oracle Cloud Infrastructureのアカウントが必要です。
- OCIリソース: VCN(仮想クラウドネットワーク)とComputeインスタンスが既に作成されていることを前提とします。
- インスタンススペック: Difyの推奨要件(CPU 2コア以上、メモリ 4GB以上)を満たすインスタンスを用意してください。
1. Difyの環境構築(Docker)
まずはOCIコンピュートインスタンスにSSH接続し、Difyを動作させるためのDocker環境をセットアップします。
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のクローンと設定
Difyのソースコードをクローンし、環境設定を行います。今回はv1.1.0を使用します。
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 をベクトルストアとして使用する場合は、.env ファイルを編集して以下のように設定します。
# .envファイル内
VECTOR_STORE=oracle
Difyの起動
docker compose up -d
外部からアクセスできるように、ファイアウォールの設定で80番ポートを開放します。
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload
2. OCI APIキーの取得と認証情報の生成
DifyからOCIのAIサービスにアクセスするために必要なAPIキーと設定ファイルを作成します。
APIキーの作成(OCIコンソール)
- OCIコンソール右上のプロファイルアイコンから「ユーザー設定」(またはユーザーID)をクリックします。
- 左メニューの「リソース」から「APIキー」を選択し、「APIキーの追加」をクリックします。
- 秘密キーと公開キーをダウンロードし、「追加」をクリックします。
- 表示される構成ファイルの内容(User OCID, Fingerprint, Tenancy OCIDなど)をコピーして控えておきます。
認証情報の生成スクリプト実行
Difyの設定画面に入力するためのBase64エンコードされた認証情報を作成します。以下のスクリプトを oci-dify-credentials-generator.sh として作成し、先ほど控えた情報とダウンロードした秘密キー(.pem)のパスを記入して実行してください。
#!/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
出力された2つの文字列(config content と key file content)をコピーしておきます。
3. Difyでのモデルプロバイダー設定
ブラウザで http://<インスタンスIP>/install にアクセスし、Difyの初期設定を完了させます。
OCI Generative AIプラグインのインストール
- Difyの画面右上のアカウントアイコン → 「設定」 → 「プラグイン」 に移動します。
- 「マーケットプレイスを探索」をクリックし、「Oracle」または「OCI」で検索します。
- 「OCIGenerativeAI」プラグインを見つけ、インストールします。
モデルプロバイダーの設定
- 「モデルプロバイダー」設定画面に戻り、追加された「OCIGenerativeAI」の「セットアップ」をクリックします。
- 先ほどスクリプトで生成した2つの値を入力し、保存します。
- OCI API Key Config File Content: スクリプト出力の1つ目
- OCI API Key File Content: スクリプト出力の2つ目(秘密鍵)
接続に成功すると、meta.llama-3.3-70b-instruct などのOCI上で利用可能な最新モデルが一覧に表示されます。これで、DifyからOCIの生成AI機能をフル活用する準備が整いました。
【推奨】業務システム化に有効なアイテム
生成AIを学ぶ



システム化のパートナー



VPSサーバの選定





コメント