こんにちは!前回の記事では、自社環境での生成AI活用をお考えの皆様向けに Dify × Ollama × ローカルLLMモデルでAI活用基盤を構築するメリットについてご紹介しました。 今回は、実際にその組み合わせで構築する場合の手順をご紹介します。 OllamaとGPUを使用してチャットモデルと埋め込みモデルをDifyに追加する手順のほか、簡単なRAG(Retrieval-Augmented Generation)アプリケーションの作成例も含まれています。
前提条件
本手順を実施するにあたり、以下の環境が必要です。
- Docker および Docker Compose がインストールされていること
- NVIDIA GPU が搭載されており、NVIDIA ドライバがインストールされていること
- sudo 権限を持つユーザーアカウント
- 十分なディスク容量とメモリ(推奨: メモリ16GB以上)
動作確認環境
- OS: Ubuntu 22.04 LTS
- Docker: 28.3.3
- CPU: Intel(R) Core(TM) i7-9700K
- GPU: NVIDIA GeForce RTX 2080 Ti ✕ 2
- Dify: 1.11.1
目次
1. Difyのインストール
まず、Docker Composeを使用してDifyのインストールを行っていきます。 Dify標準のdocker-compose.yamlを利用することで、かなりシンプルにインストールすることができます。
参考: Dify公式ドキュメント
1.1 必要なツールのインストール
Difyのセットアップに jq コマンドを使うので、インストールしておきます(最新版を自動取得するため)。
sudo apt-get update sudo apt-get install -y jq
1.2 Difyのソースコードを取得
最新バージョンのDifyをGitHubからクローンします。
git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" https://github.com/langgenius/dify.git
1.3 環境変数の設定
Dockerディレクトリに移動し、環境変数ファイルを準備します。
cd dify/docker cp .env.example .env
必要に応じて .env ファイルを編集します。デフォルト設定でも動作しますが、本番環境では適切な設定変更を推奨します。
1.4 Difyの起動
Docker Composeを使用してDifyを起動します。初回起動時は、イメージのpullが行われるため数分かかります。
sudo docker compose up -d
1.5 動作確認
Webブラウザで http://<サーバーのIPアドレス> にアクセスします。初回アクセス時には、管理者ユーザーのセットアップ画面が表示されます。

以下の情報を入力してセットアップを完了します。
- メールアドレス
- ユーザー名
- パスワード
セットアップが完了すると、ワークフローのスタジオ画面にアクセスできるようになります。
2. ユーザーの追加
次に、Difyにチームメンバーを追加していきます。
2.1 設定画面へのアクセス
- 画面右上のアカウントアイコンをクリック
- 「設定」を選択
2.2 メンバーの招待
- 設定画面の「招待」ボタンをクリック
- 招待したいメンバーのメールアドレスと権限を入力

※メール送信にはSMTPサーバーの設定が必要になりますが、表示される招待リンクを該当のメンバーに直接共有すれば招待できます。
3. チャットモデルの追加
Difyの基本的なインストールができたので、Ollamaを使用してGPUベースのチャットモデルをDifyに追加します。
3.1 Ollamaサーバーの起動
Docker Composeを使用してOllamaサーバーを起動します。以下の内容で docker-compose.yml ファイルを作成します。
services: ollama: image: ollama/ollama container_name: ollama volumes: - ollama:/root/.ollama ports: - "11434:11434" restart: unless-stopped deploy: resources: reservations: devices: - capabilities: [gpu] open-webui: image: ghcr.io/open-webui/open-webui:main container_name: open-webui ports: - "3000:8080" volumes: - open-webui:/app/backend/data extra_hosts: - "host.docker.internal:host-gateway" restart: always volumes: ollama: open-webui:
作成後、以下のコマンドで起動します。
sudo docker compose up -d
3.2 チャットモデルのインストール
gpt-ossモデル(20Bパラメータ版)をインストールします。
sudo docker exec ollama ollama run gpt-oss:20b
3.3 Open WebUIでの動作確認
Webブラウザで http://<サーバーのIPアドレス>:3000 にアクセスし、Open WebUIを開きます。
- ユーザー名とパスワードを入力してサインアップ
- チャット画面で質問を入力し、応答を確認

3.4 DifyへのOllamaの追加
- DifyのWeb UIにアクセス
- 「モデルプロバイダ」からOllamaプラグインをインストール
- インストール後、以下の情報でモデルを追加(「Base URL」のIPアドレス部分は、実際に動作しているサーバのものを指定)

- 追加モデルを、システムモデルとしても設定する(ここで設定したモデルがデフォルトで利用される)

3.5 チャットアプリの作成
- Difyのホーム画面から「スタジオ」→「最初から作成」→「チャットフロー」を選択
- アプリケーション名を入力して作成
- デフォルトのチャットフローが作成されるので、「プレビュー」から動作確認できる

4. 埋め込みモデルの追加
RAGアプリケーションを実装するために、埋め込みモデルを追加します。
4.1 埋め込みモデルのインストール
Ollamaで nomic-embed-text モデルをインストールします。
sudo docker exec ollama ollama pull nomic-embed-text
4.2 Difyへの追加
5. RAGアプリケーションの作成
埋め込みモデルとチャットモデルを組み合わせて、RAGアプリケーションを作成します。
5.1 ナレッジベースの作成
- 「ナレッジベース」→「ナレッジベースを作成」を選択
- ナレッジベース名を入力
- PDFファイルやテキストファイルをアップロード
- デフォルト設定で処理を開始

インデックス作成処理が完了するまで待ちます。
5.2 ドキュメントの確認
- ドキュメントの詳細画面で分割結果を確認
- 「検索テスト」機能を使用して、クエリに対する検索結果を確認
5.3 RAGワークフローの構築
- 「探索」→「Knowledge Retrieval」から「知識リトリーバル+チャットボット」を選択

- ワークフロー画面が表示される
- Knowledge Retrievalノードをクリックし、作成したナレッジベースを選択
- LLMノードをクリックし、以下を設定
- モデル:
gpt-oss:20b - コンテキスト: Knowledge Retrievalノードの
resultを選択
- モデル:
5.4 動作確認
- 一度ブラウザをリロード(LLMノードの変更後に認証エラーが出る場合があるため)
- 「プレビュー」から実行
- ナレッジベースの内容を引用した回答が返ってくることを確認

まとめ
本記事では、オンプレミス環境でのDifyの構築手順、およびOllamaを使用したチャットモデルと埋め込みモデルの追加方法をご紹介しました。RAGアプリケーションの作成例も含めて、閉じたネットワーク内で動作するLLMアプリケーション開発環境を構築できることを確認しました。 本記事が、オンプレミス環境でのLLMアプリケーション開発の一助となれば幸いです。
トラブルシューティング
GPUが認識されない場合
- NVIDIAドライバが正しくインストールされているか確認
- Docker Composeファイルで
capabilities: [gpu]が正しく設定されているか確認 nvidia-smiコマンドでGPUが認識されているか確認
Ollamaのプラグインが表示されない場合
インストール実行後、画面に反映されるまでタイムラグがあります。数分待ってから再度確認してください。
