2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AzureにセルフホストしたDifyからAzure OpenAI Serviceにプライベート接続する

2
Posted at

Azure仮想マシンにセルフホストしたDifyから、Azure内のプライベート接続でAzureOpenAIに接続する構成を実装してみます。

image.png

目次

  1. 要件および要点
  2. リソースグループとAOAIサービス作成
  3. AOAIモデルデプロイ
  4. 仮想マシンおよびネットワーク作成
  5. Difyインストール
    4.1 Difyインストール
    4.2 Difyログイン
  6. AOAIサービスのプライベート化
  7. DifyのAOAIモデル追加
  8. Difyのチャット応答確認

0. 要件および要点

簡単に要件および要点を記載します。

要件
・Azureは日本国内のリージョンを使用すること。
・AzureOpenAI(以下AOAI)にはプライベート接続で接続すること。
・Difyはセルフホスト型とし、Azure内に配置すること。

要点
・生成AIモデル:日本国内でサポートされているgpt-4o,2024-11-20を利用します。
・Difyホスト対象:個人的な習慣で仮想マシンを使用します。
・仮想マシン(HW):Difyシステム要件からCPU>=2core,RAM>=4GiBとします。
・仮想マシン(OS):個人的な習慣でUbuntu Server 22.04を使用します。

1. リソースグループとAOAIサービス作成

以下の範囲を作成します。
image.png


AzureポータルからAzure Open AI Serviceを選択し、作成を押下します。
image.png


以下を入力して次へを押下します。
・リソースグループ:(新規作成するリソースグループ名)
・リージョン:Japan East
・名前:(Azure OpenAI Serviceの新規リソース名)
image.png

今回はこちらの画面で新規リソースグループも一括で作成します。


ネットワーク設定は変更せず、次へを押下します。

image.png

あとで無効(プライベートアクセス用)に変更します。
(VNet/Subnet作成後に実施)


作成を押下します。
image.png


作成したリソースが存在していることが確認します。
image.png

2.AOAIモデルデプロイ

以下の範囲を作成します。
image.png

AzureポータルからAzure Open AI Serviceを選択し、作成したリソースを押下します。
image.png


Go to Azure AI Foundry portalを押下します。
image.png


モデルデプロイ画面からモデルのデプロイ基本モデルをデプロイするを押下します。
image.png


今回はgpt-4oを選択し、確認を押下します。
image.png


デプロイ画面にて、デプロイを押下します。
image.png


デプロイされたことを確認します。
image.png

3.仮想マシンおよびネットワーク作成

以下の範囲を作成します。
image.png


Azureポータルから仮想マシンを選択し、作成 - Azure仮想マシンを押下します。
image.png


仮想マシンの作成画面にて設定内容を入力します。
基本設定について、要点のみ下記します。

項目 設定内容 備考
イメージ Ubuntu Server 22.04 24.04でも良い
サイズ Standard_D4s_v3(CPU4core,RAM16GiB) Difyセルフホスト要件から

image.png


ネットワーク設定画面にてVNetおよびSubnetを作成します。
パブリックIPアドレスについてはデフォルトで有効化されているためそのままとしておきます。
また、NICネットワークセキュリティグループについてDify Webアクセス用にHTTP(tcp80)も許可しておきます。

・VNetおよびSubnet作成
image.png
・NICネットワークセキュリティグループ
image.png


その他の設定項目はデフォルトまたは任意設定とし、仮想マシンをデプロイします。
image.png


デプロイが完了し、仮想マシンが表示されていることを確認します。
image.png

4.Difyインストール

ubuntu server 22.04 にDifyをインストールします。
image.png


4.1 Difyインストール

パブリックIPアドレス経由で仮想サーバにsshログインし、CUIでDifyをインストールしていきます。

以下、root権限でコマンド実行しています。
通常ユーザを利用する場合は適宜 sudo を付与してください。

時刻設定および初期アップデート
# timedatectl set-timezone Asia/Tokyo
# apt install vim -y
# apt update
# apt upgrade -y
dockerインストール
# apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# apt-key fingerprint 0EBFCD88
# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# apt update
# apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

# docker --version
# docker compose version
Difyダウンロードおよび環境変数配置
# git clone https://github.com/langgenius/dify.git
# cd ~/dify/docker
# cp .env.example .env

上記 git コマンドを実行したディレクトリ配下にDify用のコンテナディレクトリが作成されるため、状況に応じて先にディレクトリを作成・遷移するなどを検討します。


Dify起動
# cd ~/dify/docker
# docker compose up -d

# git pull origin main
# docker compose down
# docker compose pull
# docker compose up -d
# docker compose ps

ここまでで、Difyが仮想マシン上で実行される状態になりました。


なお、Difyを停止するには以下コマンドを実行します。

Dify停止
# cd ~/dify/docker
# docker compose down
# docker compose up -d

4.2 Difyログイン

Difyに初回ログインし、ユーザ作成等を行います。

以下URLを作成してブラウザから遷移します。
http://【仮想マシンのパブリックIPアドレス】/install


以下画面が表示されるため、メールアドレス、ユーザ名、パスワードを入力します。

Dify試用において、メールアドレスは存在しないものでも問題ありません。

image.png


セットアップ後、以下のURLに遷移するためサインインします。
http://【仮想マシンのパブリックIPアドレス】/signin

以後は上記の ~/signinというURLでログインすることができます。

image.png


ログインが完了し、スタジオ画面が表示されることを確認しました。
image.png

5. AOAIサービスのプライベート化

以下の範囲を作成します。
image.png


AzureポータルからAzure Open AI Serviceを選択し、作成したリソースを押下します。
image.png


左ペインのリソース管理 - ネットワークを選択します。
許可するアクセス元を無効として、saveします。
image.png


続いて、プライベートエンドポイント接続タブからプライベートエンドポイントを押下します。
image.png


プライベートエンドポイントを作成します。
①基本設定はリソースグループ名、エンドポイント名、NIC名、リージョンを設定します。
image.png


②リソース設定は特に変更不要です。
image.png


③仮想ネットワーク設定も特に変更不要です。
image.png


④DNS設定も特に変更不要です。
image.png


内容を確認し、リソースを作成します。
image.png


AOAIリソース画面にて、プライベートエンドポイント接続が存在していることを確認します。
image.png


プライベートDNSゾーンについても作成されたことが確認されました。
image.png

6. DifyのAOAIモデル追加

DifyのLLMプロバイダとして、プライベートリンク経由のAOAIを設定します。

Dify画面の右上アイコンから設定を押下します。
image.png


モデルプロバイダーからAzure OpenAIを押下します。
image.png


インストールを押下します。
image.png


モデルを追加を押下します。
image.png


モデル情報を入力します。
image.png

モデル情報はAzure AI Foundaryのデプロイ画面から確認します。
image.png


システムモデル設定からシステム推論モデルを設定します。
image.png

7.Difyのチャット応答確認

動作確認を行います。

Difyのスタジオ画面にて最初から作成を押下します。
image.png


チャットボットを作成します。
image.png


右上で設定したAOAIが有効化されており、そのモデル経由でチャット応答が返ってくることが確認できました。
image.png

参考

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?