0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dify × ローカルLLMで作る、完全ローカルなAIアプリ開発環境|セキュアな社内AI基盤の構築ガイド

0
Posted at

はじめに: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のダッシュボードから 「最初から作成」→「チャットボット」 を選びます。

  1. アプリ名を入力(例:「社内ヘルプデスクBot」)
  2. モデル選択で先ほど登録した llama3.1:8b を選ぶ
  3. プロンプトを設定

プロンプト例:

あなたは丁寧で親切な社内ヘルプデスクのアシスタントです。
以下のルールに従って回答してください:
- 敬語で対応する
- わからないことは正直に「わかりません」と答える
- 個人情報は絶対に扱わない
- 回答は簡潔に、必要に応じて箇条書きを使う

「デバッグとプレビュー」画面で動作確認し、問題なければ「公開」ボタンを押せば完成です。APIエンドポイントとして外部からも利用できるようになります。


一歩進んだ活用:RAGで社内文書検索AIを作る

単なるチャットボットだけではもったいないので、RAG(Retrieval-Augmented Generation) で社内文書を検索できるAIも作ってみましょう。

手順の概要

  1. Difyの「ナレッジ」からデータセットを作成
  2. PDF、Word、Markdown、テキストファイルなどをアップロード
  3. Embeddingモデルを設定(Ollamaで nomic-embed-text を使うのがおすすめ)
ollama pull nomic-embed-text
  1. チャットボットアプリの「コンテキスト」にデータセットを紐付ける
  2. 動作確認

これだけで、社内マニュアルを学習した専用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基盤を持っておくことは、これからのエンジニアにとって大きな武器になるはずです。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?