はじめに:AIアプリを作りたいけど、情報漏洩が心配…
ChatGPTやClaudeのAPIを使えば、驚くほど簡単にAIアプリが作れる時代になりました。しかし、実際に業務で使おうとすると、こんな壁にぶつかった経験はないでしょうか?
- 「社内の機密情報や顧客データを、外部のAPIに送るのは避けたい」
- 「API利用料が積み上がって、コストが読めない…」
- 「オフライン環境でも動くAIアプリが必要」
- 「PoCで作りたいけど、情シスの承認が下りない」
こうした課題を一気に解決してくれるのが、Dify × ローカルLLM の組み合わせです。
すべての処理を自分のマシンや社内サーバー内で完結させることで、データを外部に一切送信せずにAIアプリを開発・運用できます。しかも、ノーコード/ローコードで直感的に構築できるという嬉しさもあります。
この記事では、DifyとOllamaを使って、完全にローカルで動くセキュアなAIアプリ開発環境 を構築する手順を、初心者の方にもわかるように丁寧に解説していきます。読み終わる頃には、あなたのPC上で「自分だけのChatGPT」が動いているはずです。
Dify × ローカルLLMとは何か
Difyの基本
Dify(ディファイ) は、オープンソースのLLMアプリケーション開発プラットフォームです。GUIベースで以下のようなAIアプリを構築できます。
- チャットボット
- RAG(社内文書検索AI)
- ワークフロー型のAIエージェント
- テキスト生成アプリ
プロンプト管理、データセット管理、APIエンドポイント公開などがすべて統合されており、「LLMアプリのWordPress」 と呼ばれることもあります。
ローカルLLMとは
ローカルLLMとは、自分のマシン上で動く大規模言語モデル のことです。代表的な実行環境が Ollama で、以下のような特徴があります。
- Llama 3、Qwen、Gemma、Mistralなど主要OSSモデルに対応
- コマンド1つでモデルをダウンロード・実行できる
- REST APIとしても利用可能
- macOS / Linux / Windows すべてに対応
なぜこの組み合わせが強力なのか
| 項目 | クラウドAPI(OpenAI等) | Dify × ローカルLLM |
|---|---|---|
| データ送信先 | 外部サーバー | ローカル完結 |
| 利用料金 | 従量課金 | 電気代のみ |
| オフライン対応 | ❌ | ✅ |
| 応答速度 | ネットワーク依存 | マシン性能依存 |
| モデル選択 | 提供元の範囲内 | OSS全般 |
セキュリティ・コスト・自由度の3つで大きなアドバンテージがあります。
環境構築ハンズオン:ゼロから完全ローカルAI環境を作る
それでは実際に手を動かしていきましょう。前提として Docker Desktop がインストールされている必要があります。
1. Ollamaのセットアップ
まずはローカルLLMの実行基盤であるOllamaをインストールします。
macOS / Windows の場合:
公式サイト からインストーラーをダウンロードします。
Linux の場合:
curl -fsSL https://ollama.com/install.sh | sh
インストール後、モデルをダウンロードしてみましょう。日本語も扱える軽量モデルとして、まずは llama3.1 を試すのがおすすめです。
ollama pull llama3.1:8b
動作確認:
ollama run llama3.1:8b "こんにちは、自己紹介してください"
応答が返ってくればOKです。バックグラウンドでOllamaサーバーが http://localhost:11434 で起動しています。
2. Difyのセットアップ(Docker Compose)
Difyは公式がDocker Compose構成を提供しているので、それを利用します。
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d
起動には数分かかります。完了したら、ブラウザで http://localhost/install にアクセスし、管理者アカウントを作成してください。
3. DifyとOllamaを連携させる
ここが最大のポイントです。Difyのコンテナから、ホストマシン上のOllamaにアクセスできるよう設定します。
Difyの管理画面で 「設定」→「モデルプロバイダー」→「Ollama」 を選択し、以下のように入力します。
-
Model Name:
llama3.1:8b -
Base URL:
http://host.docker.internal:11434 - Completion Mode: Chat
- Model Context Size: 4096
⚠️ 注意点:localhost ではなく host.docker.internal を使うのがポイントです。Difyはコンテナ内で動いているため、localhost だとコンテナ自身を指してしまいOllamaに繋がりません。
Linux環境では host.docker.internal が使えない場合があるので、その際は docker-compose.yml に以下を追加します。
services:
api:
extra_hosts:
- "host.docker.internal:host-gateway"
4. 最初のAIアプリを作ってみる
Difyのダッシュボードから 「最初から作成」→「チャットボット」 を選びます。
- アプリ名を入力(例:「社内ヘルプデスクBot」)
- モデル選択で先ほど登録した
llama3.1:8bを選ぶ - プロンプトを設定
プロンプト例:
あなたは丁寧で親切な社内ヘルプデスクのアシスタントです。
以下のルールに従って回答してください:
- 敬語で対応する
- わからないことは正直に「わかりません」と答える
- 個人情報は絶対に扱わない
- 回答は簡潔に、必要に応じて箇条書きを使う
「デバッグとプレビュー」画面で動作確認し、問題なければ「公開」ボタンを押せば完成です。APIエンドポイントとして外部からも利用できるようになります。
一歩進んだ活用:RAGで社内文書検索AIを作る
単なるチャットボットだけではもったいないので、RAG(Retrieval-Augmented Generation) で社内文書を検索できるAIも作ってみましょう。
手順の概要
- Difyの「ナレッジ」からデータセットを作成
- PDF、Word、Markdown、テキストファイルなどをアップロード
- Embeddingモデルを設定(Ollamaで
nomic-embed-textを使うのがおすすめ)
ollama pull nomic-embed-text
- チャットボットアプリの「コンテキスト」にデータセットを紐付ける
- 動作確認
これだけで、社内マニュアルを学習した専用AI が完成します。すべてローカルで完結しているので、機密文書を安全に扱えます。
プロンプトの工夫
RAGを使う場合、以下のようなプロンプトが効果的です。
あなたは社内文書の内容に基づいて回答するアシスタントです。
以下のコンテキストを参考に、質問に答えてください。
【重要なルール】
- コンテキストに情報がない場合は、推測せずに「該当する情報が見つかりませんでした」と答える
- 回答の根拠となった文書名を明示する
- ハルシネーションを避け、事実のみを述べる
トラブルシューティング:よくあるハマりどころ
Ollamaに接続できない
- Ollamaが起動しているか確認:
ollama list - ファイアウォールが11434ポートをブロックしていないか確認
- Docker側のURLが
host.docker.internalになっているか再確認
応答が極端に遅い
- モデルサイズを見直す(8B → 3Bなど)
- Apple Silicon Macなら問題ないが、CPU実行だと厳しい場合がある
- GPUを持っている場合は、Ollamaが自動で活用してくれる
日本語の精度が低い
-
llama3.1より、日本語に強いqwen2.5やgemma2を試してみる - モデルサイズが大きいほど精度は上がるが、メモリ消費も増える
まとめ:ローカルAI環境で広がる可能性
ここまでの内容を整理しましょう。
- Dify × Ollama の組み合わせで、完全ローカルなAIアプリ開発環境が構築できる
- セキュリティ、コスト、オフライン対応 の3つで大きなメリットがある
- Docker Composeで簡単に立ち上がり、GUIで直感的にアプリを作れる
- RAG機能 を使えば、社内文書検索AIも短時間で構築可能
- ホストとコンテナの接続には
host.docker.internalを使うのがポイント
一度この環境を作ってしまえば、社内ツール、個人アシスタント、ドキュメント検索、コード生成支援など、アイデア次第でさまざまなAIアプリが作れる基盤 が手に入ります。
さらに実践的に学びたい方へ
この記事では基本的な構築の流れを紹介しましたが、実際に業務で使えるレベルのAIアプリを作るには、もう少し踏み込んだ知識が必要になってきます。
- Docker周りのトラブルを自分で解決できるようになりたい
- 複数モデルの使い分けやワークフロー構築を体系的に学びたい
- RAG、エージェント、外部ツール連携など、Difyの機能をフル活用したい
- 業務レベルで運用できるローカルAI基盤を構築したい
こうした学び方に興味がある方には、参考になる講座を1つ紹介しておきます。
📘 【Dify × ローカルLLM】Ollama + Docker で作る完全ローカルAIアプリ開発入門
DifyとOllama、Dockerを組み合わせて、完全ローカルなAIアプリを一から構築していく構成の講座です。動画で環境構築の一部始終を追体験できるので、「文章だとどうしても詰まってしまう」という方の副読教材としてちょうど良いかもしれません。公式ドキュメントや本記事と組み合わせて活用すると、理解がぐっと深まるはずです。
生成AIの活用は「使う側」から「作る側」へと、確実にフェーズが移りつつあります。手元で動くAI基盤を持っておくことは、これからのエンジニアにとって大きな武器になるはずです。