はじめに
AIツールの多くはクラウドAPIに依存しており、利用コストやデータのプライバシーが課題になることがあります
OllamaはローカルPCでLLM(大規模言語モデル)を動かすためのオープンソースツールです
モデルのダウンロードから実行まで、コマンド一つで完結します
この記事では、RTX4070 12GB・RAM32GB搭載PCを対象に、以下の構成をすべてローカルで実現する手順を解説します
- Open WebUI:ChatGPT代替のチャットUI
- Dify:RAGベースのAIチャットボット・FAQシステム
- DeepSeek Coder:GitHub Copilot代替のコード補完
- pgvector(PostgreSQL):ベクトル検索によるRAG基盤
この記事でわかること
- なぜこの構成を選ぶのか(設計思想と根拠)
- RTX4070 12GB・RAM32GBで動かせるモデルの選び方
- Docker Desktop / Ollama のインストール手順
- Open WebUI の構築とOllama接続
- Dify の構築とRAGナレッジベースの設定
- VSCode + Continue によるコード補完環境の構築
前提条件
- Windows 11 が動作している
- RTX4070(12GB VRAM)以上のGPUを搭載している
- RAM 32GB 以上
- 基本的なコマンドライン操作ができる
なぜこの構成を選ぶのか
クラウドAI依存からの脱却
ChatGPTやGitHub Copilotは非常に便利ですが、利用コストとデータ管理に課題があります
| 課題 | クラウドAI | ローカルAI |
|---|---|---|
| 月額コスト | 数千〜数万円 | 電気代のみ |
| データの外部送信 | あり | なし |
| オフライン利用 | 不可 | 可能 |
| カスタマイズ | 制限あり | 自由 |
社内ドキュメントや設計書をAIに入力する場面では、情報漏洩リスクを避けるためにローカル環境が適しています
OllamaをAI実行基盤にする理由
Ollamaは複数モデルを一元管理できます
Open WebUIやDifyからモデルを選択するだけで切り替えられるため、用途に応じた使い分けが容易です
全体構成
┌─────────────┐ ┌─────────────┐
│ Open WebUI │ │ Dify │
└──────┬──────┘ └──────┬──────┘
│ │
└─────────┬─────────┘
▼
┌─────────────┐
│ Ollama │
└──────┬──────┘
│
┌───────────┼───────────┐
▼ ▼ ▼
qwen3:14b deepseek- qwen3:32b
coder:16b
用途別のモデル選定
| 用途 | モデル | メモリ使用量の目安 |
|---|---|---|
| 汎用チャット・学習・AWS相談 | Qwen3 14B | 約10GB |
| コード補完・Python開発 | DeepSeek Coder 16B | 約12GB |
| RAG・社内ナレッジ検索 | Qwen3 32B | 約20GB前後 |
| 埋め込み(Embedding) | nomic-embed-text | 約0.3GB |
今回のRTX4070に搭載されているVRAMが12GBのため、Qwen3 32Bのような大きなモデルはGPUメモリだけでは収まりません
そのため一部をメインメモリ(RAM)へ退避しながら実行します
ただし、通常は複数のモデルを同時に利用することは少なく
- Open WebUIでQwen3 14Bを利用する
- VSCodeでDeepSeek Coderを利用する
- DifyでQwen3 32Bを利用する
といったように、その時に必要なモデルを切り替えながら使用します
複数のモデルをインストールしていても、通常は利用中のモデルだけがメモリを消費します
Ollamaは未使用モデルを自動的に解放するため、RTX4070・RAM32GB環境でも用途に応じてモデルを切り替えながら運用できます
RTX4070 12GBで実現できること
Windows 11
│
├─ Docker Desktop
│
├─ Ollama
│ ├─ qwen3:14b ← ChatGPT代替(汎用質問回答)
│ ├─ deepseek-coder:16b ← GitHub Copilot代替(コード補完)
│ ├─ qwen3:32b ← RAG用(社内ナレッジ検索)
│ └─ nomic-embed-text ← Embedding(ベクトル化)
│
├─ Open WebUI ← チャットUI
│
└─ Dify
└─ RAG Knowledge Base
├─ PDF
├─ Word
├─ AWS資料
├─ Python教材
└─ 社内ドキュメント
この構成1台で以下がすべて実現できます
- ChatGPT代替(Open WebUI)
- GitHub Copilot代替(DeepSeek Coder + Continue)
- Dify開発・RAG構築
- Python開発支援
- Terraform生成・CI/CD設計
STEP1: Docker Desktopのインストール
インストール
Docker Desktop公式サイトからWindows版をダウンロードしてインストールします
インストール後、PCを再起動してください
動作確認
docker --version
docker compose version
出力例:
STEP2: Ollamaのインストール
インストール
Ollama公式サイトからWindows版をダウンロードしてインストールします
動作確認
ollama --version
インストール後、OllamaはバックグラウンドサービスとしてPort 11434 で起動します
STEP3: モデルのダウンロード
記事の構成上は複数のモデルを紹介していますが、最初からすべてダウンロードする必要はありません
必要な機能に応じて段階的に追加していくのがおすすめです
① 最小構成(まずはここから)
ollama pull qwen3:14b
これだけでOpen WebUIを使った以下の用途に対応できます
- 汎用チャット・学習支援
- AWS相談・設計支援
- Pythonアプリケーション開発支援
- DifyでのRAG構築(後述)
② コーディング支援を使いたい場合
VSCode + Continueでコード補完を使う場合に追加します
ollama pull deepseek-r1:32b
対応用途
- VSCode Continueによるコード補完
- コード生成・リファクタリング
- テストコード生成
③ DifyでRAGを利用する場合
PDFや社内ドキュメントをナレッジベースに投入するEmbeddingモデルです
RAG構築には①のQwen3 14Bよりもこのモデルが先に必要になります
ollama pull nomic-embed-text
対応用途
- PDFや資料のベクトル化
- ナレッジベースの作成・類似検索
④ より高精度なRAGを利用する場合(任意)
Qwen3 32Bは必須ではありません
①のQwen3 14BでもDify + nomic-embed-textとの組み合わせでRAGは十分動作します
より精度の高い回答が必要になったタイミングで追加してください
ollama pull qwen3:32b
ダウンロード済みモデルの確認
ollama list
出力例(すべて導入した場合):
NAME ID SIZE MODIFIED
qwen3:14b xxxxxxxxxxxxxxx 9.0 GB x minutes ago
deepseek-coder:16b xxxxxxxxxxxxxxx 10.0 GB x minutes ago
qwen3:32b xxxxxxxxxxxxxxx 20.0 GB x minutes ago
nomic-embed-text xxxxxxxxxxxxxxx 0.3 GB x minutes ago
各モデルのダウンロードサイズは合計で約40GBになります。安定したネットワーク環境で実行してください
STEP4: Open WebUIの構築
作業フォルダの作成
mkdir C:\ai
cd C:\ai
Open WebUIの起動
docker run -d `
-p 3000:8080 `
--name open-webui `
-v open-webui:/app/backend/data `
--restart always `
ghcr.io/open-webui/open-webui:main
起動後はSTEP5で接続確認を行います
STEP5: Open WebUIとOllamaの接続
Open WebUIの起動確認
ブラウザで以下のURLへアクセスします
http://localhost:3000
初回アクセス時に管理者アカウントを作成してください
Ollama接続の確認
Open WebUI最新版では、Ollamaが自動的に認識される場合があります
以下の手順で接続状態を確認します
ユーザーアイコン
↓
管理者パネル
↓
設定
↓
外部接続
「Ollama API」が表示されていることを確認します
Ollama API http://host.docker.internal:11434
表示されていれば、Open WebUIからOllamaへの接続は完了しています
host.docker.internalはDockerコンテナからホストPC(Windows上で動作するOllama)へ接続するための特殊なホスト名です
モデルの確認
続いて以下の手順でモデルが認識されていることを確認します
管理者パネル
↓
モデル
またはチャット画面のモデル選択欄を確認します
以下のようなモデルが表示されていれば正常です
qwen3:14b
deepseek-coder:16b
nomic-embed-text
動作確認
「新規チャット」を作成し、モデルに qwen3:14b を選択します
以下のような質問を入力します
こんにちは。自己紹介してください。
応答が返ってくれば、Open WebUI → Ollama → Qwen3の接続は正常に完了しています
STEP6: Difyの構築
リポジトリのクローン
cd C:\ai
git clone https://github.com/langgenius/dify.git
cd dify/docker
環境ファイルの作成
copy .env.example .env
.envファイルにはDifyの各種設定が含まれます。デフォルト設定のままで動作確認できます
Difyの起動
docker compose up -d
初回起動はイメージのダウンロードが含まれるため、数分かかります
起動確認
docker compose ps
すべてのサービスが Up 状態になっていることを確認します
ブラウザで以下のURLにアクセスします
http://localhost
初回アクセス時に管理者アカウントの作成画面が表示されます
以下の項目を入力して「セットアップ」をクリックします
| 項目 | 内容 |
|---|---|
| メールアドレス | 任意のメールアドレス(ローカル環境のため実在不要) |
| ユーザー名 | 任意のユーザー名 |
| パスワード | 英数字混在・8文字以上 |
セットアップ完了後、Difyのスタジオ画面(ダッシュボード)に直接遷移します
「アプリを作成する」が表示されていれば起動成功です
STEP7: DifyとOllamaの連携
Ollamaプラグインのインストール
DifyにOllamaを追加するには、まずプラグインのインストールが必要です
ダッシュボード右上のアカウントアイコンから設定画面へ進みます
右上のアカウントアイコン
↓
設定
↓
モデルプロバイダー
モデルプロバイダー画面が開いたら、検索欄に「Ollama」と入力します
「モデルプロバイダーをインストールする」セクションに Ollama が表示されるので「インストール」をクリックします
インストール完了後、「設定中」セクションにOllamaが表示されます
LLM TEXT EMBEDDING RERANK のバッジと「+ モデルを追加」ボタンが確認できれば成功です
モデルの追加
「+ モデルを追加」をクリックするとモデル追加フォームが開きます
以下の内容を入力して「追加」をクリックします
汎用チャット用
| 項目 | 入力値 | 備考 |
|---|---|---|
| Model Name | qwen3:14b | 必須 |
| Model Type | LLM | 必須 |
| 認証名 | (空白) | 任意 |
| Base URL | http://host.docker.internal:11434 | 必須 |
| API Key | (空白) | ローカル環境のため不要 |
| Completion mode | Chat | 必須 |
「追加」をクリックして完了です
コーディング支援用(deepseek-r1:32b を導入済みの場合)
| 項目 | 入力値 | 備考 |
|---|---|---|
| Model Name | deepseek-r1:32b | 必須 |
| Model Type | LLM | 必須 |
| 認証名 | (空白) | 任意 |
| Base URL | http://host.docker.internal:11434 | 必須 |
| API Key | (空白) | ローカル環境のため不要 |
| Completion mode | Chat | 必須 |
Embeddingモデルの設定
同じく「+ モデルを追加」からEmbeddingモデルを追加します
| 項目 | 入力値 | 備考 |
|---|---|---|
| Model Name | nomic-embed-text | 必須 |
| Model Type | TEXT EMBEDDING | 必須 |
| 認証名 | (空白) | 任意 |
| Base URL | http://host.docker.internal:11434 | 必須 |
| API Key | (空白) | ローカル環境のため不要 |
「追加」をクリックして完了です
システムモデルの設定
モデルを追加すると「⚠️ アプリケーションを実行するためにデフォルトのシステムモデルを設定してください」という警告が表示されます
右上の「システムモデル設定」をクリックして設定します
各項目に追加したモデルを選択します
| 項目 | 設定値 |
|---|---|
| システム推論モデル | qwen3:14b |
| 埋め込みモデル | nomic-embed-text |
| Rerankモデル | (未設定でも可) |
| 音声-to-テキストモデル | (未設定でも可) |
| テキスト-to-音声モデル | (未設定でも可) |
「保存」をクリックして警告が消えれば設定完了です
※警告が消えない場合は、Open WebUI 側の表示上の問題(既知の不具合)の可能性があります。モデルが正常に選択できていれば、そのまま進めて問題ありません。
STEP8: RAGナレッジベースの構築
上部ナビゲーションバーのアイコンから「ナレッジ」を選択します
「ナレッジベースを作成」ボタンをクリックします
「ナレッジベースを作成」
↓
「テキストファイルからインポート」を選択
↓
テキストファイルをアップロード
投入できるドキュメント例
- PDFファイル(AWS資料、設計書、仕様書)
- Wordファイル(社内マニュアル、手順書)
- テキストファイル(Python教材、Terraform資料)
- Markdownファイル
Embeddingモデルの選択
ナレッジベース作成時に以下を設定します
Embedding Model: nomic-embed-text(Ollama経由)
チャットボットへの組み込み
上部ナビゲーションの🤖(スタジオ)をクリックしてスタジオ画面に戻ります
🤖 スタジオ
↓
「最初から作成」
↓
「チャットボット」を選択
↓
アプリ名を入力して「作成する」
アプリ編集画面が開いたら以下を設定します
左パネル「コンテキスト」の「+」
↓
作成したナレッジを選択して追加
↓
右上のモデル選択で「qwen3:14b」を設定
↓
右上「公開する」→「実行」
チャット画面が開いたら投入したドキュメントに関する質問を入力します
ドキュメントの内容を参照した回答が返ればRAGの動作確認完了です
STEP9: VSCode + ContinueによるCopilot代替の設定
Continueのインストール
VSCodeの拡張機能マーケットプレイスから Continue を検索してインストールします
設定ファイルの開き方
インストール後、以下の手順で設定ファイルを開きます
左サイドバーのContinueアイコンをクリック
↓
左メニューの「Configs」をクリック
↓
「Local Config」右の歯車アイコン ⚙ をクリック
C:\Users\user\.continue\config.yaml が開きます
設定ファイルの編集
以下の内容に書き換えて保存します
name: Local Config
version: 1.0.0
schema: v1
models:
- name: DeepSeek R1 (Local)
provider: ollama
model: deepseek-r1:32b
apiBase: http://localhost:11434
- name: Qwen3 14B (Local)
provider: ollama
model: qwen3:14b
apiBase: http://localhost:11434
tabAutocompleteModel:
name: DeepSeek R1 (Local)
provider: ollama
model: deepseek-r1:32b
apiBase: http://localhost:11434
動作確認
Pythonファイルを開いてコメントを1行書き、その行を選択した状態で Ctrl+I を押します
# HelloWorldを表示する処理を作成してください
インライン編集パネルが開いたら、上部の入力欄にそのまま指示を入力してEnterを押します
モデルに「DeepSeek R1 (Local)」が表示されていれば設定完了です
32Bモデルのため応答まで30秒〜1分程度かかります
コードが生成されれば動作確認完了です
最終構成まとめ
RTX4070 12GB / RAM 32GB / Windows 11
│
├─ Docker Desktop
│
├─ Ollama(AI実行基盤)
│ ├─ qwen3:14b → Open WebUI で汎用チャット
│ ├─ deepseek-r1:32b → VSCode Continue でコード補完
│ ├─ qwen3:32b → Dify でRAGチャットボット
│ └─ nomic-embed-text → Dify でEmbedding処理
│
├─ Open WebUI(http://localhost:3000)
│ └─ ChatGPT代替UIとして利用
│
├─ Dify(http://localhost)
│ └─ RAG Knowledge Base
│ ├─ AWS資料
│ ├─ Python教材
│ ├─ Terraform資料
│ └─ 社内ドキュメント
│
└─ VSCode
└─ Continue(DeepSeek Coder経由)
トラブルシューティング
OllamaにOpen WebUIから接続できない
症状: Open WebUIの接続設定でエラーが出る
対処法:
- OllamaがWindowsサービスとして起動しているか確認
- Ollama URL を
http://host.docker.internal:11434に設定しているか確認 - ファイアウォールでPort
11434がブロックされていないか確認
モデルの応答が非常に遅い
症状: 応答に数分かかる
対処法:
- タスクマネージャーでGPU使用率を確認(0%の場合はCPU動作になっている)
- Ollamaが正しくGPUを認識しているか確認:
ollama run qwen3:14b
起動時に GPU の表示があればGPU動作です
Difyのコンテナが起動しない
症状: docker compose up -d 実行後にコンテナが停止する
対処法:
- ログを確認:
docker compose logs
-
.envファイルが存在するか確認 - Docker Desktopのメモリ割り当てを確認(推奨: 8GB以上)
RAGで関連する回答が返ってこない
症状: ドキュメントを投入したが、その内容を参照した回答にならない
対処法:
- ドキュメントのインデックス化が完了しているか確認(Difyのナレッジベース画面でステータスを確認)
- Embeddingモデルが
nomic-embed-textに設定されているか確認 - アプリの設定でナレッジベースが紐付いているか確認
まとめ
この記事で紹介した構成により、以下をすべてローカルで実現できます
| 用途 | ツール | モデル |
|---|---|---|
| 汎用チャット・学習相談 | Open WebUI | Qwen3 14B |
| コード補完・開発支援 | VSCode + Continue | DeepSeek R1 32B |
| RAGチャットボット | Dify | Qwen3 32B |
| 社内ナレッジ検索 | Dify + Knowledge Base | Qwen3 32B + nomic-embed-text |
RTX4070 12GBのVRAMであれば、モデルを切り替えながら使用することで、ChatGPT・GitHub Copilot・社内RAGシステムのすべてを1台で賄えます
クラウドAIへの依存を減らしながら、実践的な生成AI基盤の構築経験を積む環境として最適な構成です
次のステップ
- PostgreSQL + pgvector を導入してRAGのベクトルストアを強化する
- Dify APIを使ってPythonアプリからRAGを呼び出す
- CI/CDパイプラインにAIコードレビューを組み込む










