自己完結型で機密性が高く、ローカルのテキストを分析し、いつでも正確な会話を提供し、インターネット上で検索できるプライベートAIアプリケーションがあったらどんなことになるか想像してみてほしい。この記事では、その構築プロセスを順を追って説明する。 ディープシーク+オーラマ+ディファイ AIアシスタントは、完全な機能を備え、迅速に展開できるプライベート化されたAIアシスタントである。
ディープシーク これは画期的なオープンソースの大規模言語モデルであり、その高度なアルゴリズムアーキテクチャと「リフレクティブチェーン」能力により、AI対話インタラクションはよりインテリジェントで自然になります。プライベートな展開により、データのセキュリティを完全にコントロールすることができ、ニーズに応じて展開プランを柔軟に調整し、自分だけの 「AIオペレーティング・システム .
ダイファイ 同じオープンソースのAIアプリケーション開発プラットフォームとして、完全なプライベートデプロイメントソリューションと強力なサードパーティツールのサポートも提供している。 ネットワーク検索、文書分析機能など。 Difyは世界中の1000以上のオープンソース、クローズドソースのモデルをサポートしています。)同時に、Difyは世界中の1000以上のオープンソースまたはクローズドソースのモデルをサポートしているので、あなたのAIアプリケーションに力を与えるために、どんなモデルでも呼び出すことができます。
DeepSeekをDifyのプラットフォームにシームレスに統合することで、データのプライバシーが確保されるだけでなく、開発者がローカルサーバー上で強力なAIアプリを簡単に構築できるようになり、企業やチームがDeepSeekのパワーを真に発揮できるようになります。 "データの自律性 "と "柔軟なカスタマイズ" .の間に配備した場合DeepSeek+Difyのプライベート展開:セキュアで制御可能なローカルAIアシスタントシステムの構築 をクリックすると、ネットワーク検索セクションに直接ジャンプできます。
ディファイ X ディープシーク プライベート・デプロイの利点:
- 1000以上の機種に対応: Difyはモデルニュートラルなプラットフォームであり、様々なビッグモデルの推論能力をフルに活用することができる(追記:Difyがサポートする複数のサードMaaSプラットフォームを使って呼び出すことができる)。 ディープシークR1 公式APIコールが不安定になる問題を解決するためのモデルは、詳細な設定方法の最後を参照してください)
- 素晴らしいパフォーマンスだ: 様々な複雑なシナリオに容易に対応できるビジネスモデルに匹敵する対話体験。
- 環境の隔離: 完全にオフラインで動作するため、データ漏洩のリスクがない。
- データはコントロールできる: データを完全に管理し、業界のコンプライアンス要件を満たすことができます。
プレ・ポジショニング以下の条件を満たすサーバー(VPSまたはVDS)を取得する:ハードウェア環境:
- CPU >= 2コア
- ビデオメモリ/RAM ≥ 16 GiB(推奨)
ソフトウェア環境:
- ドッカー
- Docker Compose
- オーラマ
- Dify コミュニティ版
デプロイの開始 1.Ollamaのインストール
携帯電話には通常、アプリを素早く見つけてダウンロードできるアプリショップがあるように、AIモデルにも専用の「アプリショップ」がある。
Ollamaは、DeepSeek、Llama、Mistralなどの大規模言語モデル(LLM)をシームレスに展開するために設計された、クロスプラットフォームのオープンソース大規模モデル管理クライアント(macOS、Windows、Linux)です。
また、LLMの使用データはすべてマシンにローカルに保存されるため、コンプライアンス要件を満たす完全なデータプライバシーとセキュリティが提供される。
Ollamaのウェブサイト(https://ollama.com/)にアクセスし、ウェブページの指示に従ってOllamaクライアントをダウンロード、インストールしてください。インストールが完了したら、ターミナルで ollama -v を実行し、バージョン番号を出力する。
~ ollama -v
ollamaのバージョンは0.5.5です。
実際の環境構成に基づいて、導入に適した DeepSeek のサイズモデルを選択します。初期導入には、7B サイズのモデルをお勧めします。
B接尾辞はモデルのトレーニングパラメータを示します。理論的には、パラメータが高いほど、モデルの性能は向上し、必要なグラフィックメモリも増加する。
コマンド実行 オラマ・ラン・ディープシーク R1:7B
DeepSeek R1 モデルをインストールします。
2.Difyコミュニティ版をインストールする
家に配管や電気が必要なように、シェフが美味しい料理を作るためには、完全に機能するキッチンも必要であり、そこでDifyの出番となる。人気の高いGitHubのオープンソースプロジェクトであるDifyには、AIアプリを構築するために必要なものを網羅したツールチェーンが組み込まれている。DeepSeekの強力なモデリング機能を使えば、複雑なコードの知識がなくても、誰でも素早く好みのAIアプリを構築することができる。
DifyのGitHubプロジェクトのアドレスにアクセスし、以下のコマンドを実行して、コードリポジトリのプルおよびインストールプロセスを完了します。
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d # バージョンがDocker Compose V1の場合は、次のコマンドを使います。
コマンドを実行すると、ターミナルにすべてのコンテナのステータスとポートマッピングが自動的に出力される。中断やエラーが発生する場合は、DockerとDocker Composeがインストールされていることを確認してください。
Dify Community Editionを導入する:
https://docs.dify.ai/zh-hans/getting-started/install-self-hosted/docker-compose
Dify Community Editionは、デフォルトでポート80を使用し、http://your_server_ip にリンクすることで、プライベート化されたDifyプラットフォームにアクセスすることができます。
アクセスポートを切り替えるには、このドキュメントを参照してください: https://docs.dify.ai/zh-hans/getting-started/install-self-hosted/faq#id-5.-ru-he-xiu-gai-ye-mian-duan-kou
3.DeepSeekとDifyの接続
DeepSeek モデルを Dify Community Edition でデプロイした後、リンク http://your_server_ip をクリックして Dify プラットフォームにアクセスし、右上隅の アバター → 設定 → モデルサプライヤー Ollamaを選択し、Add Modelをタップします。
LLMモデルタイプを選択する。
- Model Nameには、デプロイされたモデルのモデル名を記入します。上記でデプロイしたモデルはdeepseek-r1 7bなので、deepseek-r1:7bと記入します。
- ベースURLには、Ollamaクライアントが動作しているアドレスを記入してください。通常はhttp://your_server_ip:11434。接続に問題がある場合は、この記事の最後にあるFAQをお読みください。
- その他のオプションはすべて既定値のままです。DeepSeek モデルの説明によると、生成される最大長は 32,768 トークンです。
AIアプリケーションの構築を開始
以下のセクションでは、さまざまなタイプのAIアプリケーションを構築する方法を紹介する:
- シンプルな対話アプリケーション
- 文書分析機能を備えたシンプルな対話アプリケーション
- ネットワーク検索によるプログラマブル・アプリケーション
DeepSeek AIチャットボット(シンプルなアプリケーション)
- Difyプラットフォームトップページの左側にある「Create a Blank App」をタップし、「Chat Assistant」タイプのアプリを選択し、簡単な名前を付けます。
- 右上の「アプリケーションの種類」で、Ollamaフレームワークを選択します。
ディープシーク-R1:7B
モデル
- プレビューダイアログボックスに内容を入力して、AIアプリケーションが動作することを確認します。応答が返ってくるということは、AIアプリケーションのビルドが完了したことを意味します。
- アプリの右上にある「公開」ボタンをタップすると、AIアプリへのリンクが表示され、他の人と共有したり、他のウェブサイトに埋め込むことができます。
DeepSeek AIチャットボット + ナレッジベース
大規模言語モデリング(LLM)の重要な課題は、学習データがリアルタイムで更新されず、データ量が不足する可能性があることである。
この問題を解決するために、RAG(Retrieval Augmented Generation)技術が登場した。関連知識を検索し、必要な文脈情報をモデルに提供することで、この情報がコンテンツ生成プロセスに組み込まれ、回答の正確性と専門性が向上する。
実際に、社内文書や専門的な情報をアップロードする場合、Difyのナレッジベース機能は、以下のような役割を果たすことができます。 ラグ LLMが専門的な情報に基づき、より的を絞った回答を提供できるようにすることで、モデルのトレーニングデータの不足を効果的に補う役割を担っている。
1.ナレッジベースの作成
AIによる分析が必要なドキュメントをナレッジベースにアップロードします。DeepSeek モデルがドキュメントの内容を正確に理解できるように、「親子分割」モデルを使用してテキストを処理することをお勧めします。
詳細な設定手順については、このドキュメントを参照してください:
https://docs.dify.ai/zh-hans/guides/knowledge-base/create-knowledge-and-upload-documents
2.知識ベースのAIアプリケーションへの統合
AIアプリケーションの「コンテキスト」に知識ベースを追加し、ダイアログボックスに関連する質問を入力する。lLMはまず知識ベースから質問に関連するコンテキストを取り出し、それを要約してより質の高い回答を提供する。
DeepSeek AIチャットフロー/ワークフロー(ネットワーク検索)
チャットフロー ワークフロー アプリは、DeepSeek にネットワーク検索、ファイル認識、音声認識などの機能を持たせるなど、より複雑な機能を持つ AI アプリのオーケストレーションや構築に役立ちます。スペースを考慮し、以下のセクションでは、DeepSeekに以下の機能を持たせる方法を示します。 ネットワーク検索機能の有効化 .
アプリを直接使用するには、以下のリンクをクリックしてDSLファイルをダウンロードし、Difyプラットフォームにインポートしてください。
アプリケーションDSLファイルのダウンロードアドレス:
https://assets-docs.dify.ai/2025/02/41a3564694dd3f2803ad06a29f5b3fef.yml
- Difyプラットフォームのトップページ左側にある「Create a Blank App」をタップし、「Chatflow」または「Workflow」タイプのアプリを選択し、名前を付けるだけです。
2.追加するインターネット検索ノードの機能を有効にするには、API キーを入力します。Queryフィールドに、初期ノードから提供されたAPIキーを入力します。 {{#sys.query#}}
変数。
APIキーを取得するには、以下のウェブサイトをご覧ください:
https://serpapi.com/users/sign_in
3.追加するコード実行ノードを追加します。検索ツールの出力はJSONコードの一部なので、必要なコンテンツを抽出するためにコード実行ノードを追加する必要があります。入力変数に検索ツールのJSON出力変数を記入し、コード実行ノードに以下のコードを記入する:
def main(json: list) -> dict.
# organic_resultsの中身を取り出す
organic_results = json[0].get("organic_results", [])
# すべてのタイトルとリンクを文字列につなぎ合わせる
result_string = ""
for item in organic_results.
result_string += (
f "タイトル:{item['title']}n"
f "リンク:{item['link']}n"
f "Snippet: {item['snippet']}n}n"
)
# スプライスされた文字列を結果として返す
戻り値
"result": result_string, { "Snippet: {item['snippet']}n")
}
- LLMノードを追加するには、Ollamaフレームワークを選択します。
ディープシーク-R1:7B
モデルを作成し{{#sys.query#}}
変数を使って、ユーザーが入力したスタートノードからのコマンドを処理する。
APIに異常が発生した場合は、負荷分散機能や異常処理ノードで柔軟に対応できる。
負荷分散API リクエストは、https://docs.dify.ai/zh-hans/guides/model-configuration/load-balancing で詳しく説明されているように、複数の API エンドポイントに分散させることができます。
例外処理メカニズムメイン・プロセスを中断することなく、ノード・エラー時にフォルト・メッセージを投げる機能。詳しい説明は、https://docs.dify.ai/zh-hans/guides/workflow/error-handling を参照。
- エンド・ノードを追加し、LLMノードの出力変数を参照し、設定を完了する。テスト用のプレビューボックスにコンテンツを入力できます。応答を生成することは、AIアプリケーションのビルドが完了し、ログ内でLLMの推論プロセスを見ることができることを意味します。
一般的な問題
1.Dockerデプロイ時の接続エラー
DockerでDifyとOllamaをデプロイする際、以下のエラーが発生する場合があります:
HTTPConnectionPool(host=127.0.0.1, port=11434): URL: /cpi/chat で最大再試行回数を超えました。
(原因は NewConnectionError('.
新しい接続の確立に失敗しました: [Errno 111] 接続が拒否されました'))
HTTPConnectionPool(host=localhost, port=11434): URL: /cpi/chat で最大再試行回数を超えました。
(原因: NewConnectionError(': 新しい接続の確立に失敗しました。
新しい接続の確立に失敗しました: [Errno 111] 接続が拒否されました'))
エラーの原因:このエラーは、OllamaサービスがDockerコンテナ内でアクセスできないために発生します。localhostは通常、ホストや別のコンテナではなく、コンテナ自体を指しています。この問題を解決するには、Ollamaサービスをネットワークに公開する必要があります。
macOSの環境設定方法:
OllamaがmacOSアプリケーションとして実行されている場合、launchctlを使って環境変数を設定する必要があります:
- launchctl setenvを呼び出して環境変数を設定する:
launchctl setenv OLLAMA_HOST "0.0.0.0"
- Ollamaアプリケーションを再起動します。
- 上記の手順でうまくいかない場合は、以下の方法を使うことができます。問題は、docker内部で、dockerのホストにアクセスするにはhost.docker.internalに接続する必要があることです。そのため、localhostをhost.docker.internalサービスに置き換えればうまくいきます:http://host.docker.internal:11434
Linuxの環境設定方法: Ollamaがsystemdサービスとして動作している場合は、次のようにします。 s ystemctl
環境変数の設定:
- これは
systemctl ollama.serviceを編集する
systemdサービスを編集する。エディターが開きます。 - 各環境変数に対して
[サービス]
セクションの下に環境
::[サービス] 環境="OLLAMA_HOST=0.0.0.0"
- 保存して終了する。
- systemdをリロードし、Ollamaを再起動する:
systemctl デーモン再ロード ollama を再起動する
Windowsの環境設定方法:
Windowsでは、Ollamaはあなたのユーザー環境変数とシステム環境変数を継承します。
- まず、タスクバーのOllamaをクリックしてプログラムを終了する。
- コントロールパネルからシステム環境変数を編集する
- 以下のようなユーザーアカウントの変数を編集または新規作成します。
OLLAMA_HOST
そしてOLLAMA_MODELS
その他 - OK/適用をクリックして保存する
- 新しいターミナルウィンドウで実行する
オラマ
2.Ollamaサービスのアドレスとポート番号を変更したいのですが。
Ollamaデフォルトバインディング 127.0.0.1
ポート11434でアクセスできます。 OLLAMA_HOST
環境変数はバインディングアドレスを変更する。