はじめに
LLM(大規模言語モデル)は、情報の処理と取得のためのプライベート知識ベースを構築するために使用できる人工知能システムの一種です。DeepSeek-R1は、中国DeepSeekが開発したLLMで、前モデルのDeepSeek-V3をベースに強化学習を適用して推論性能を高めているため、今回はDeepSeek-r1を選択します。
以下では、Docker、Ollama、Difyなどのツールを通じて、deepseek-r1のプライベート知識ベースを作成する手順を説明します。
動作環境
以下の環境で実施する。

基本的な流れ
1.Docker をインストール(環境を統一するため)
2.Ollama をインストール(ローカルLLMの実行環境)
3.Difyをインストール(AIアプリの管理・運用)
4.Deepseek を Ollama に追加(高性能なAIモデルを活用)
5.Dify と Ollama を連携し、Deepseekのローカル知識ライブラリを構築
概念説明
本文に関する重要な概念を以下に示す。
- LLM
LLM(Large Language Model、大規模言語モデル)は、自然言語処理(NLP)に特化した生成AI
の一種である。
膨大なテキストデータを学習し、文脈を理解した上で文章の生成、要約、翻訳、質問応答などの高度な言語処理を行うことができる。
代表的な LLM には、OpenAI の GPT シリーズや Google の Gemini などがある。
近年では、中国発の DeepSeek も注目を集めている。 - DeepSeek-R1
DeepSeek は、中国の AI スタートアップ DeepSeek によって開発されたオープンソースの大規模言語モデル(LLM)である。
DeepSeek-R1 は DeepSeek シリーズの最新モデルであり、特に推論(inference)能力に特化した構造を持つ。
前世代モデルである DeepSeek-V3 をベースに、強化学習(RLHF: Reinforcement Learning from Human Feedback)を適用することで、より精度の高い応答を実現している。
また、DeepSeek-R1 は MIT ライセンス の下でオープンソースとして公開されており、商用利用が可能である。 - Ollama
Ollama は、LLM をローカル環境で手軽に実行できるオープンソースの AI ツールである。+ モデル管理・キャッシュ・最適化された実行 をサポートしており、クラウドを利用せずに高速かつプライベートに AI モデルを運用できる。 - Dify
Dify は、LLM を活用した AI アプリケーションの開発・運用を支援する オープンソースの AI アプリケーション開発プラットフォーム である。 エンドユーザーが対話型 AI やカスタム AI ツールを簡単に構築できるよう、API 統合、ワークフローの管理、データベースとの連携機能を提供する。 DeepSeek-R1 をはじめとする複数の LLM をサポートしており、オンプレミス環境でも運用できる。 - Docker
Docker は、コンテナ技術を活用し、アプリケーションや AI モデルを 効率的にパッケージ化・配布・実行 するためのプラットフォームである。 Docker を使用することで、環境に依存せずに AI モデルをスムーズにデプロイし、運用できるメリットがある。
Dockerをインストール
また、Windows Defender やセキュリティソフトの干渉を回避する必要がある。
Dockerをダウンロード
Dockerは公式サイト https://www.docker.comから入手できる。

「Download for Windows – AMD64」をクリックしてDockerをダウンロードする。

ダウンロードしたDocker Desktop Installer.exeを実行する。

WSL2を利用する場合、「Use WSL 2 instead of Hyper-V」に✅チェックする。
インストール画面「Install」 をクリックし、インストールが完了するまで待つ。インストール完了後にPCを再起動する。
Dockerの動作確認
Docker Desktop を起動し、”Engine Running”(実行中) になっていることを確認する。
Ollamaをインストール
Ollamaをダウンロード
Ollamaは公式サイト https://ollama.com/downloadからダウンロードする。


「Download for Windows」をクリックしてOllamaをダウンロードする。
ダウンロードした OllamaSetup.exe を実行する。


「Install」をクリックしてインストールする。完了した「Finish」をクリックする。
Ollamaの動作確認
PowerShell またはコマンドプロンプト以下のコマンドを実行し、バージョンがきちんと表示されることを確認する。
C:\Users\ituser\.ollama>**ollama –version** ollama version is 0.5.7
difyをインストール
Difyは、LLMアプリケーションの開発と展開を簡素化するオープンソースのプラットフォームである。APIの作成、UIの構築、プロンプトの管理など、LLMベースのアプリケーション開発に必要な機能を提供している。
difyをダウンロード
ブラウザで https://github.com/langgenius/dify にアクセスし、WEB画面にある<code>}のプルダウンボタンをクリックする。プルダウンメニューの一番下にある「Download ZIP」をクリックしてzipファイルをダウンロードする。


ダウンロードした「dify-main.zip」を決めたフォルダ(D:\AiLab\dify-main を例)に展開する。



注意:指定フォルダの展開パスに漢字や日本語があるとうまくいかない場合がある。


上記の手順により dify のインストール完了。
deepseek-r1 を Ollama に追加
”3.Ollamaをインストール”では、ローカル環境に Ollama をインストールした。本章では、deepseek-ri をダウンロードし、Ollama に追加する手順を説明する。
deepseek-r1モデルを選択
ブラウザで https://ollama.com を開き、「Models」をクリックする。


Models 画面で検索ボックスに「deepseek」と入力すると、deepseek-r1、deepseek-coderv2、deepseek-coder、deepseek-v3、deepseek-llm、deepseek-v2、deepseek-v2.5 など
の登録済みの deepseek モデルが表示される。


リストの deepseek-r1 をクリックすると、deepseek-r1 の画面が表示される。


今回はテストの検証のため、deepseek-r1 の画面左側にあるプルダウンから 「1.5b」 の軽量モデルを選択する。
「1.5b」モデルは、一般的なパソコンの内蔵グラフィックスカードでも実行できる。もちろん、自分のグラフィックカードのメモリに応じて、より上位のモデルを選択することも可能である。
右側のテキストボックスに表示された 「ollama run deepseek-r1:1.5b」 をクリップボードにコピーする。
deepseek-r1をダウンロードおよび実行
PowerShell でクリップボードにコピーした以下のコマンドを実行し、Ollama によって deepseek-r1 をダウンロードして起動する。
PS D:\AiLab> ollama run deepseek-r1:1.5b


deepseek-r1の動作確認
deepseek-r1の起動が完了したら、質問を入力し、正しく回答されることを確認すればよい。
DifyとOllamaを連携し、ローカル知識ナレッジを構築
Dockerからdifyのコンテナを起動
Win コマンド(管理者として実行)を使用して dify-main のディレクトリに移動し、そこでPowerShell を起動する。
その後、以下のコマンドを入力する。
PS D:\AiLab\dify-main>
PS D:\AiLab\dify-main> cd docker
PS D:\AiLab\dify-main\docker> cp .env.example .env
PS D:\AiLab\dify-main\docker> docker compose up -d
Docker が Dify のコンテナをダウンロードし、起動する。
「Docker Desktop」に新規コンテナが追加されたことを確認できればよい。


ローカル環境のDifyを設定する
Docker で Dify の環境を構築できたので、以下の URL にアクセスして Dify を設定する。
URL: http://localhost


管理者アカウントを作成するために、必要な情報を入力し、アカウントを作成する。作成後、
管理者としてログインする。


「サインイン」をクリックしてログインすると、LLM の設定画面が表示される。
difyに、Ollamaモデルにdeepseek-r1モデルを追加


次に、右上のユーザー名をクリックしてプルダウンを開き、「設定」をクリックすると設定画面が表示される。


設定画面で、左のサイトメニューから「モデルプロバイダー」をクリックする。
LLM モデルが一覧で表示されるので、その中から「Ollama」を探して「モデルを追加」をクリックする。


「Ollama」の「モデルを追加」画面で、Model Type の LLM と Text Embedding をそれぞれ設定する。 「モデルを追加」ボタンをクリックすると、「追加 Ollama」画面が表示される。


- Model Type (モデルタイプ)
◦ LLM(大規模言語モデル)は、自然言語の生成や会話に使用されるモデルである。例えば、質問応答や文章生成が該当する。
◦ Text Embedding(テキスト埋め込み)は、入力されたテキストをベクトル(数値データ)に変換する。 このベクトルは、類似性の比較、検索、分類などに利用される。
LLMの設定
LLMモデルを設定する。


# | 項目 | 内容 |
1 | OModel Type | LLM |
2 | Model Name | deepseek-r1:1.5b |
3 | Base URL | http://host.docker.internal:11434/ |
4 | Completion mode | chat |
他の項目はデフォルト値のまま入力し、「保存」ボタンを押す。
Text Embedding の設定
Text Embedding を設定する。


# | 項目 | 内容 |
1 | Model Name | bge-large |
2 | Base URL | http://host.docker.internal:11434/ |
他の項目はデフォルト値のまま入力し、「保存」ボタンを押す。
モデルプロバイダーのモデルエリアに、Ollamaに二つのモデルが設定されたことを確認する。





http://host.docker.internal:11434 について:
host.docker.internal は、Docker コンテナ内からホストマシン(あなた
の Windows PC)にアクセスするための特別なアドレスである。11434 は、ホストマシン(あなたの Windows PC)上で Ollama がリクエストを処理するために使用するローカルポートである。
http://host.docker.internal:11434を経由することで、Dify のDocker コンテナからホストマシン(あなたの Windows PC)の Ollama APIサーバーにリクエストを送信し、モデルにアクセスできる。
ナレッジを作成する
Dify のメイン画面上部中央にある「ナレッジ」をクリックすると、ナレッジ画面が表示される。


ナレッジ画面の左側の「+ ナレッジを作成」をクリックすると、ナレッジの作成画面が表示される。


ナレッジの作成画面で、「ステップ1 データソース」の下にある「テキストファイルからインポート」を選択する。次に、「テキストファイルをアップロード」の下にある 「ファイルをドラッグ&ドロップするか参照」 のエリアに、画面の指示に従ってナレッジ元のファイルをアップロードする。



データソースとして、TXT、MARKDOWN、MDX、PDF、HTML、XLSX、XLS、DOCX、CSV、MD、HTML をサポートする。1 ファイルあたりの最大サイズは 15MB である。
アップロードしたファイルの名前を確認できる。


「次へ →」をクリックすと、「ステップ 2 テキスト進行中」の画面へ遷移する。


「ステップ 2:テキスト進行中」画面では、特に修正する必要はないため、そのまま「保存して処理」をクリックする。
「ステップ 3 実行と完成」画面にしばらく待つと、「ナレッジが作成されました」と表示される。


「ドキュメントに移動 →」をクリックする。


ステータスが「利用可能」になると、ナレッジの埋め込みが完了となる。
ナレッジベースのChatアプリを作成する
Dify のメイン画面上部中央にある「スタジオ」をクリックすると、スタジオ画面が表示される。


左側の「最初から作成」をクリックすると、「最初から作成」画面が表示される。
「チャットボット」を選択し、下のアプリのアイコンの名前欄にアプリの名前を入力する。


「作成する」ボタンをクリックすると、「オーケストレーション」画面が表示される。


オーケストレーション画面で、「コンテキスト」の「+追加」ボタンをクリックし、ナレッジ画面で追加したナレッジを選択して、「追加」ボタンを押す。


ここまでで、知識としてのコンテキストを独自のナレッジが追加された。


右側「デバッグとプレビュー」画面の右下に、質問内容を入力し、deepseek-r1のテストすることができる。


オーケストレーション画面の右上にある「公開する」→「アプリを実行」をクリックすると、アプリを発行できる。


独自ナレッジベースのチャットボットを、Web アプリとしても実行できる。





まだ日本語の対応が不十分なため、DeepSeek の Modelfile を修正することで、日本語に対応させることが可能である。
https://zenn.dev/yakan_k/articles/0a0c00a5080f1a