ローカルLLM × RAG 統合構築ガイド【2026年版】|Ollama+AnythingLLMで社内文書を完全オフライン検索できる環境を1台のPCに構築する——クラウドに一切データを出さない「鎖国RAG」の作り方

  1. はじめに——「クラウドにデータを出せない」企業のためのAI活用
  2. 「鎖国RAG」のアーキテクチャ——何が必要で、データはどう流れるか
    1. 全体構成図
    2. データの流れ
  3. PCスペック別の推奨構成
  4. ステップ1:Ollamaのインストールとモデルの導入
    1. Ollamaとは
    2. インストール手順
    3. チャットモデルの導入
    4. Embeddingモデルの導入
    5. 動作確認
  5. ステップ2:AnythingLLMの導入とOllama連携
    1. AnythingLLMとは
    2. インストール手順
    3. Ollama連携の設定
  6. ステップ3:社内文書の取り込みとRAG検索の実行
    1. ワークスペースの作成
    2. 文書のアップロードと埋め込み
    3. RAG検索の実行
  7. RAG精度を向上させるチューニング
    1. チューニング1:コンテキスト長の拡張
    2. チューニング2:チャンクサイズと重複の調整
    3. チューニング3:ハルシネーション対策のプロンプト設定
    4. チューニング4:多言語文書への対応
  8. 代替構成:Difyセルフホスト版での構築
    1. Difyセルフホスト版の特徴
    2. Docker Composeでの導入
    3. AnythingLLM vs Difyの使い分け
  9. セキュリティ上の注意点——「鎖国」を維持するために
    1. 注意点1:Ollamaのネットワークバインディング
    2. 注意点2:モデルのダウンロード後のオフライン化
    3. 注意点3:AnythingLLM/Difyのテレメトリ
    4. 注意点4:データのバックアップと暗号化
  10. よくある質問(Q&A)
    1. Q1. ローカルLLMの回答品質はChatGPTやClaudeと比べてどうですか?
    2. Q2. GPU がないPCでも動作しますか?
    3. Q3. 日本語の文書はうまく検索できますか?
    4. Q4. 何件くらいの文書を扱えますか?
    5. Q5. クラウドLLMとローカルLLMを併用する「ハイブリッド」構成は可能ですか?
  11. まとめ——「鎖国」でもAIは使える
    1. 関連記事

はじめに——「クラウドにデータを出せない」企業のためのAI活用

ChatGPTやClaudeは強力ですが、使えない場面があります。

顧客の個人情報を扱う士業事務所、患者データを参照したい医療機関、財務データをAIに読ませたい会計事務所、営業秘密を含む社内文書を検索したい製造業——こうした企業にとって、「クラウドに一切データを送信しない」AI環境は切実なニーズです。

当サイトではローカルLLM入門でモデルのインストールと基本操作を、RAG実践ガイドでRAGの仕組みと活用法を個別に解説してきました。また、ファインチューニング入門ローカルLLMのAPIサーバー化も扱っています。

しかし、「ローカルLLMとRAGを1台のPCで統合し、社内文書を完全オフラインで検索できる環境をゼロから構築する」手順を1記事で完結させたガイドがありませんでした。

この記事では、その統合環境——私たちが「鎖国RAG」と呼ぶ、外部にデータを一切出さない完全オフラインRAG環境——の構築手順をステップバイステップで解説します。

💡 この記事を読むと分かること
・完全オフラインRAG環境の全体アーキテクチャ
・Ollama(ローカルLLMエンジン)のインストールとモデル選定
・Embeddingモデルの導入とベクトルDBの構築
・AnythingLLM(GUI付きRAGプラットフォーム)の導入と設定
・Difyセルフホスト版での代替構築手順
・社内文書の取り込みとRAG検索の実行・精度チューニング
・PCスペック別の推奨構成(8GB / 16GB / 32GB以上)


「鎖国RAG」のアーキテクチャ——何が必要で、データはどう流れるか

全体構成図

完全オフラインRAG環境は、以下の4つのコンポーネントで構成されます。すべてが1台のPC内で動作し、外部への通信は一切発生しません。

コンポーネント役割使用ツール
①ローカルLLM自然言語の理解・生成(質問への回答生成)Ollama + Llama 3.2 / Qwen 2.5 / Gemma 3 等
②Embeddingモデル文書をベクトル(数値の配列)に変換Ollama + nomic-embed-text / bge-m3
③ベクトルDBベクトル化された文書を保存・類似検索LanceDB(AnythingLLM内蔵)/ ChromaDB
④RAGフロントエンドユーザーインターフェース+RAGパイプラインの管理AnythingLLM または Difyセルフホスト

データの流れ

文書登録時:社内文書(PDF・Word・テキスト等)→ チャンク分割(500トークン単位に分割)→ Embeddingモデルでベクトル化 → ベクトルDBに保存

質問時:ユーザーの質問 → Embeddingモデルでベクトル化 → ベクトルDBで類似文書チャンクを検索(上位5〜7件)→ 検索結果をコンテキストとしてLLMに渡す → LLMが回答を生成

重要なポイント:このすべてのプロセスが1台のPC内で完結します。インターネット接続は、最初のモデルダウンロード時のみ必要です。一度モデルをダウンロードすれば、以降は完全オフラインで動作します。


PCスペック別の推奨構成

ローカルLLMの動作には一定のハードウェア性能が必要です。以下に、PCスペック別の推奨モデルと期待される性能をまとめます。

スペック推奨LLMモデル期待される性能向いている用途
8GB RAM
(GPU なし)
Llama 3.2 3B(Q4量子化)やや遅い(CPU推論)。簡単なQ&Aは対応可能個人利用、検証・テスト
16GB RAM
(GPU 6-8GB VRAM)
Qwen 2.5 7B / Llama 3.1 8B(Q4_K_M)実用的な速度。日本語でのQ&Aに十分対応小規模チーム(3-5人)の社内文書検索
32GB RAM
(GPU 12-16GB VRAM)
Qwen 3 14B / Gemma 3 12B快適な応答速度。複雑な質問にも対応部門単位での業務利用
64GB+ RAM
(GPU 24GB VRAM)
Command R 35B / Qwen 3 30B-A3B高速で高品質。引用元の明示も可能組織全体での本格運用
Apple Silicon
(M3/M4 32GB+)
Gemma 3 12B〜27B統合メモリでGPU相当の性能。省電力個人〜小規模チーム

💡 最初のおすすめ構成
初めてローカルRAGを構築する方は、Qwen 2.5 7B(チャットモデル)+ nomic-embed-text(Embeddingモデル)+ AnythingLLMの組み合わせがおすすめです。16GB RAMのPCで実用的に動作し、日本語にも対応しています。


ステップ1:Ollamaのインストールとモデルの導入

Ollamaとは

Ollamaは、ローカルマシン上でオープンソースのLLMを簡単に実行できるCLIツールです。Dockerがコンテナを管理するように、Ollamaはモデルのダウンロード・管理・推論を一元的に扱います。2026年時点でローカルLLMのデファクトスタンダードとなっています。詳しくはローカルLLM入門をご覧ください。

インストール手順

macOS / Linux:

curl -fsSL https://ollama.com/install.sh | sh

Windows:

ollama.com/downloadからインストーラーをダウンロードして実行します。

インストール確認:

ollama –version

チャットモデルの導入

# 16GB RAM環境の場合(推奨)
ollama pull qwen2.5:7b

# 8GB RAM環境の場合(軽量版)
ollama pull llama3.2:3b

# 32GB+ RAM / Apple Silicon 64GB環境の場合(高性能版)
ollama pull gemma3:12b

Embeddingモデルの導入

RAGにはEmbeddingモデル(文書をベクトルに変換するモデル)が別途必要です。

# 英語中心の文書の場合(最も広く使われている)
ollama pull nomic-embed-text

# 日本語を含む多言語文書の場合
ollama pull bge-m3

動作確認

# Ollamaの起動(バックグラウンドで実行)
ollama serve

# モデルの動作確認
ollama run qwen2.5:7b
>>> こんにちは。あなたは社内文書検索AIです。自己紹介してください。

応答が返ってくれば、LLMの導入は完了です。Ctrl+Dで対話を終了します。


ステップ2:AnythingLLMの導入とOllama連携

AnythingLLMとは

AnythingLLMは、MintplexLabs社が開発するオープンソース(MITライセンス)のRAGプラットフォームです。LLM接続、ドキュメントアップロード、Embedding、ベクトルDB、チャットインターフェースのすべてを1つのアプリケーションで提供します。ベクトルDBとしてLanceDBを内蔵しているため、別途データベースを立てる必要がありません。

インストール手順

方法A:デスクトップアプリ(最も簡単・個人利用向け)

anythingllm.com/desktopからOS別のインストーラーをダウンロードして実行するだけです。

方法B:Docker(チーム利用・マルチユーザー向け)

# 作業ディレクトリの作成
mkdir anythingllm-setup && cd anythingllm-setup
touch .env

# Dockerで起動(ストレージの永続化付き)
docker run -d \
  –name anythingllm \
  -p 3001:3001 \
  -v $(pwd)/storage:/app/server/storage \
  -v $(pwd)/.env:/app/server/.env \
  –add-host=host.docker.internal:host-gateway \
  mintplexlabs/anythingllm

--add-host=host.docker.internal:host-gateway はDockerコンテナからホストマシンのOllamaに接続するために必要です。

Ollama連携の設定

AnythingLLMを起動したら、以下の設定を行います。

LLMプロバイダーの設定:

  1. Settings(設定)を開く
  2. LLM Preference(LLMプロバイダー)で「Ollama」を選択
  3. Ollama URL: http://127.0.0.1:11434(デフォルト)
  4. モデル: 先ほどダウンロードしたモデル(例: qwen2.5:7b)を選択
  5. 保存

Embeddingプロバイダーの設定:

  1. Settings → Embedding Preference
  2. 「Ollama」を選択
  3. Embeddingモデル: nomic-embed-text(またはbge-m3)を選択
  4. 保存

ベクトルDBの設定:

デフォルトでLanceDB(内蔵)が使用されます。変更不要です。外部のChromaDBやQdrantを使いたい場合は、Settings → Vector Database から切り替え可能です。


ステップ3:社内文書の取り込みとRAG検索の実行

ワークスペースの作成

AnythingLLMでは「ワークスペース」単位で文書を管理します。用途別にワークスペースを分けることで、検索精度を向上させ、アクセス管理を容易にします。

  • 「法務文書」ワークスペース——契約書、規約、法令関連
  • 「人事・労務」ワークスペース——就業規則、給与規程、評価基準
  • 「技術文書」ワークスペース——仕様書、マニュアル、議事録

文書のアップロードと埋め込み

  1. 作成したワークスペースを開く
  2. ドキュメント管理エリア(上部のアイコンまたは設定内)でファイルをアップロード
  3. 対応形式: PDF、Word(.docx)、テキスト(.txt)、Markdown(.md)、Excel(.xlsx)、CSV
  4. アップロード後、「Embed」(埋め込み)をクリック
  5. AnythingLLMが自動的にチャンク分割→Embeddingモデルでベクトル化→ベクトルDBに保存を実行

RAG検索の実行

チャット画面で質問を入力するだけです。

ユーザー: 当社の有給休暇の付与日数は?

AI: 就業規則第XX条によると、入社6ヶ月経過後に10日が付与されます。
勤続年数に応じて増加し、6年6ヶ月以上で最大20日となります。
[参照元: 就業規則_2026年版.pdf – p.15]

RAGモードでは、LLM は自分の学習データではなく、アップロードした文書の中から関連する情報を検索し、それに基づいて回答を生成します。これにより、ハルシネーション(事実に反する回答の生成)が大幅に抑制されます。


RAG精度を向上させるチューニング

RAG環境を構築しただけでは、回答精度が十分でない場合があります。以下のチューニングポイントで精度を向上させましょう。

チューニング1:コンテキスト長の拡張

Ollamaのデフォルトのコンテキスト長は2,048トークンです。RAGでは検索結果をコンテキストとして渡すため、これでは不足します。最低8,192トークン、理想的には16,000トークン以上に拡張してください。

AnythingLLMの設定画面、またはOllamaのModelfileでnum_ctxパラメータを調整できます。

チューニング2:チャンクサイズと重複の調整

文書の分割(チャンキング)の設定は検索精度に大きく影響します。

パラメータ推奨値説明
チャンクサイズ500トークン1つのチャンク(文書の断片)のサイズ。大きすぎるとノイズが増え、小さすぎると文脈が失われる
オーバーラップ10〜20%(50〜100トークン)前後のチャンクと重複させる割合。チャンクの境界で情報が切れるのを防ぐ
取得チャンク数5〜7件質問に対して取得する関連チャンクの数。多すぎるとノイズが増える

チューニング3:ハルシネーション対策のプロンプト設定

AnythingLLMのワークスペース設定で、システムプロンプト(AIの行動指示)を設定できます。以下のような指示を設定することで、ハルシネーションを抑制できます。

あなたは社内文書検索アシスタントです。
回答は必ず提供されたコンテキスト(検索結果)に基づいてください。
コンテキストに情報がない場合は「この質問に対する情報は見つかりませんでした」と正直に回答してください。
推測や一般的な知識に基づく回答はしないでください。
回答には、参照した文書名とページ番号を含めてください。

チューニング4:多言語文書への対応

日本語の社内文書を扱う場合、Embeddingモデルの選択が重要です。nomic-embed-textは英語中心ですが、bge-m3は多言語対応(日本語含む)で、日本語文書の検索精度が向上します。


代替構成:Difyセルフホスト版での構築

AnythingLLMの代わりに、Difyのセルフホスト版を使う選択肢もあります。特にワークフローの自動化やAPI公開が必要な場合に適しています。

Difyセルフホスト版の特徴

  • オープンソース(Apache 2.0ライセンス)
  • ワークフロービルダー:ノーコードでRAGパイプラインやエージェントワークフローを構築可能
  • API公開:構築したRAGアプリを社内の他のシステムからAPIで呼び出し可能
  • マルチモデル対応:Ollama、OpenAI、Anthropic等、複数のLLMプロバイダーを切り替え可能
  • 完全オフライン:セルフホスト版ではすべてが自社インフラ内で完結

Docker Composeでの導入

git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d

起動後、http://localhost/installにアクセスして初期設定を行います。

AnythingLLM vs Difyの使い分け

比較項目AnythingLLMDifyセルフホスト
セットアップの簡単さ★★★(デスクトップアプリは即使える)★★(Docker Compose必須)
RAG特化度★★★(RAGに特化した設計)★★(RAGは機能の一部)
ワークフロー自動化★(基本的なチャットのみ)★★★(ノーコードワークフロービルダー)
API公開★★(APIあり)★★★(充実したAPI+SDK)
マルチユーザー★★(Docker版で対応)★★★(ネイティブ対応)
リソース消費軽量(約2GB RAM)やや重い(複数コンテナ)
おすすめ個人〜小規模チーム、RAG主目的チーム利用、ワークフロー自動化、API連携が必要

💡 迷ったらAnythingLLMから始める
最初の構築にはAnythingLLMのデスクトップアプリが最も簡単です。RAGの基本を理解し、要件が明確になった段階でDifyへの移行を検討するアプローチが堅実です。


セキュリティ上の注意点——「鎖国」を維持するために

完全オフラインRAG環境を構築しても、運用方法を間違えるとデータが外部に漏れるリスクがあります。

注意点1:Ollamaのネットワークバインディング

Ollamaのデフォルト設定ではlocalhost(127.0.0.1)にのみバインドされます。絶対に0.0.0.0にバインドしないでください。0.0.0.0にバインドすると、同じネットワーク上の全デバイスからOllama APIに認証なしでアクセスできてしまいます。

チーム利用で他のPCからアクセスさせたい場合は、特定のIPアドレスのみを許可するファイアウォールルールを設定してください。

注意点2:モデルのダウンロード後のオフライン化

モデルのダウンロードにはインターネット接続が必要ですが、ダウンロード完了後はネットワークケーブルを抜くか、ファイアウォールでOllamaの外部通信をブロックすることで完全オフライン化が可能です。

注意点3:AnythingLLM/Difyのテレメトリ

一部のオープンソースツールは利用状況のテレメトリ(匿名使用統計)を外部に送信する場合があります。完全オフライン環境では、設定でテレメトリを無効化するか、ファイアウォールで外部送信をブロックしてください。

注意点4:データのバックアップと暗号化

ベクトルDBに保存されたデータは、元の文書の内容を含んでいます。ベクトルDB のデータディレクトリにはディスク暗号化(macOS FileVault / Windows BitLocker)を適用し、バックアップにも同様の暗号化を施してください。


よくある質問(Q&A)

Q1. ローカルLLMの回答品質はChatGPTやClaudeと比べてどうですか?

率直に言って、最先端のクラウドLLM(GPT-4o、Claude Opus等)と比較すると、ローカルで動作する7〜14Bパラメータのモデルは汎用的な回答品質で劣ります。しかし、RAGと組み合わせることで、「特定の社内文書に関するQ&A」という限定されたタスクでは実用的な精度を達成できます。RAGが正しく関連文書を取得していれば、LLMは取得された情報を整理して回答するだけでよいため、モデルサイズの差が緩和されます。

Q2. GPU がないPCでも動作しますか?

はい、CPU のみでも動作します。ただし、推論速度はGPUに比べて大幅に遅くなります。3Bパラメータの軽量モデル(Llama 3.2 3B等)であれば、8GB RAMのPCでもCPU推論で実用可能です。快適に使いたい場合は、NVIDIA GPU(6GB VRAM以上)またはApple Silicon Mac(M1以降)を推奨します。

Q3. 日本語の文書はうまく検索できますか?

Embeddingモデルの選択が重要です。多言語対応のbge-m3を使用することで、日本語文書の検索精度が向上します。チャットモデルも、Qwen 2.5やGemma 3のような多言語対応モデルを選ぶと、日本語での回答品質が向上します。ただし、英語文書に比べると精度がやや落ちる傾向があるため、日本語専用のEmbeddingモデルの活用も検討してください。

Q4. 何件くらいの文書を扱えますか?

ベクトルDBのストレージ容量とRAM に依存しますが、数千件のPDFでも問題なく動作します。AnythingLLMのLanceDBはディスクベースで動作するため、RAMをあまり消費しません。ただし、文書数が増えるとEmbedding(ベクトル化)処理に時間がかかるため、初回の取り込みは事前に計画してください。

Q5. クラウドLLMとローカルLLMを併用する「ハイブリッド」構成は可能ですか?

はい、AnythingLLMはワークスペースごとに異なるLLMプロバイダーを設定できます。機密文書用のワークスペースはOllama(ローカル)、一般的な調査用のワークスペースはOpenAI API(クラウド)、というハイブリッド構成が可能です。データの機密度に応じて使い分けることで、品質とプライバシーを両立できます。


まとめ——「鎖国」でもAIは使える

クラウドにデータを出せない企業がAIを活用できないわけではありません。OllamaとAnythingLLM(またはDify)を組み合わせれば、1台のPCで完全にオフラインのRAG環境を構築できます。

1. まず動かしてみる。Ollamaのインストール→モデルのダウンロード→AnythingLLMデスクトップアプリのインストール→テスト文書のアップロード——ここまで1時間程度で完了します。

2. 精度を上げていく。コンテキスト長の拡張、チャンクサイズの調整、ハルシネーション対策のプロンプト設定——これらのチューニングで実用的な精度に到達できます。

3. 安全に運用する。ネットワークバインディングの制限、テレメトリの無効化、ディスク暗号化——「鎖国」を維持するためのセキュリティ対策を忘れずに。

ローカルLLM入門でAIモデルの基礎を学び、RAG実践ガイドでRAGの仕組みを理解した上で、この記事の手順に沿って統合環境を構築してください。あなたの社内文書が、AIで検索可能になる日はすぐそこです。


関連記事


免責事項:本記事は2026年3月時点の公開情報に基づく情報提供です。各ツール(Ollama、AnythingLLM、Dify)のバージョン・仕様は頻繁に更新されるため、最新情報は各公式ドキュメントで確認してください。ローカルRAG環境の構築・運用はセキュリティとデータ管理の責任を伴います。機密性の高いデータを扱う場合は、情報セキュリティの専門家にご相談ください。

コメント

タイトルとURLをコピーしました