はじめに
DeepSeek-RAG-Chatbotは、GitHubでホストされているDeepSeek R1モデルに基づいて構築されたオープンソースのチャットボットプロジェクトで、開発者のSaiAkhil066によって作成されました。Retrieval Augmented Generation (RAG)技術を組み合わせ、ユーザーがドキュメント(PDF、DOCX、TXTファイルなど)をアップロードするのをサポートし、効率的なドキュメント検索とインテリジェントなQ&Aを実現するためにローカルランタイムを介して実行されます。このプロジェクトでは、ハイブリッド検索(BM25 + FAISS)、ニューラル並べ替え、知識グラフ(GraphRAG)といった高度な機能を活用し、文書から文脈に沿った正確で関連性の高い情報を確実に抽出します。個人のナレッジマネジメントや企業の文書処理など、プライバシー保護やオフラインでの利用を必要とするシナリオに適している。このプロジェクトはDockerとStreamlitインターフェイスをサポートしており、インストールが簡単で、ユーザーは簡単に始めることができます。
機能一覧
- ドキュメントのアップロードと処理PDF、DOCX、TXTなどのファイルのアップロード、ドキュメントの自動分割、ベクトル埋め込み生成に対応。
- ハイブリッド検索メカニズムBM25 と FAISS テクノロジーを組み合わせることで、ドキュメントから関連するコンテンツをすばやく検索できます。
- ナレッジグラフサポート(GraphRAG)エンティティの関係を理解し、回答の文脈上の正確さを向上させるために、ドキュメントの知識グラフを構築します。
- 神経の並べ替え最も関連性の高い情報が最初に表示されるように、クロスコーダーモデルを使用して検索結果を並べ替えます。
- クエリー・エクステンション(HyDE)ユーザーのクエリを拡張し、検索リコールを向上させるための仮説的回答の生成。
- ローカルモデルの実行Ollamaを通じてDeepSeek R1などのモデルのローカル展開をサポートし、データのプライバシーを確保する。
- リアルタイム・レスポンス・ストリーミングストリーミング出力が提供され、ユーザーは生成された結果を即座に見ることができる。
- DockerのサポートDockerコンテナによるデプロイで、インストールと運用を簡素化。
- ストリームリット・インターフェイス直感的なグラフィカル・インターフェースで、ファイルのアップロードやインタラクティブなチャットが簡単に行えます。
ヘルプの使用
設置プロセス
DeepSeek-RAG-Chatbot はローカルでの動作をサポートしており、いくつかの環境設定が必要です。以下に詳細なインストール手順を示します:
前提条件
- オペレーティングシステムWindows、macOS、またはLinux。
- ハードウェア要件少なくとも8GBのRAM(16GBを推奨)と、GPUアクセラレーションを使用する場合はCUDA対応のグラフィックカード。
- ソフトウェア依存Python 3.8+、Git、Docker(オプション)。
ステップ1:プロジェクトのクローン
- ターミナルを開き、以下のコマンドを実行して GitHub リポジトリをクローンします:
git clone https://github.com/SaiAkhil066/DeepSeek-RAG-Chatbot.git
- プロジェクト・カタログにアクセスする:
cd DeepSeek-RAG-Chatbot
ステップ2:Python環境のセットアップ
- 仮想環境を作る:
python -m venv venv
- 仮想環境をアクティブにする:
- ウィンドウズ
venvvScriptsactivate
- macOS/Linux:
ソース venv/bin/activate
- pipをアップグレードし、依存関係をインストールする:
pip install --upgrade pip
pip install -r requirements.txt
依存関係には以下が含まれる。 ストリームライト
そしてラングチェーン
そしてfaiss-gpu
(GPUがある場合)など。
ステップ3:Ollamaのインストールと設定
- Ollamaをダウンロードしてインストールする(インストール・パッケージはollama.comを参照)。
- DeepSeek R1モデル(デフォルトは7Bパラメータ、必要に応じて1.5Bや32Bなど他のバージョンも利用可能)を引き出します:
ollama pull deepseek-r1:7b
ollama pull nomic-embed-text
- Ollamaサービスが起動していること、デフォルトのリスニング・アドレスが
ローカルホスト:11434
.
ステップ4:(オプション)Dockerのデプロイメント
手動で環境を設定したくない場合は、Dockerを使うことができる:
- Dockerをインストールする(docker.comを参照)。
- プロジェクトのルート・ディレクトリで実行する:
docker-compose up
- Dockerは自動的にOllamaとchatbotサービスをプルし、それらを実行し、そして次のようにアクセスします。
http://localhost:8501
.
ステップ5:アプリケーションの起動
- Streamlitを仮想環境で実行する:
streamlit run app.py
- ブラウザは自動的に
http://localhost:8501
チャット画面に入る。
オペレーション機能
機能1:ドキュメントのアップロード
- インターフェースStreamlitを起動すると、画面左側に "Upload Documents "サイドバーが表示されます。
- ファイルを選択ファイルを参照」ボタンをクリックして、ローカルのPDF、DOCXまたはTXTファイルを選択します。
- 書類の処理アップロードされると、システムは自動的に文書を小さなチャンクに分割し、ベクトル埋め込みを生成し、FAISSに保存します。処理時間はファイルのサイズによって異なりますが、通常は数秒から数分です。
- 注意を引くサイドバーに「ファイル処理完了」の確認メッセージが表示されます。
機能2:質問と探索
- 入力の問題例えば、「GraphRAGの目的は何ですか?ドキュメントに記載されています。
- 検索処理::
- このシステムは、BM25とFAISSを使って関連する文書断片を検索する。
- GraphRAGはフラグメント間のエンティティ関係を分析する。
- ニューラル再順序付けは、結果の順序を最適化する。
- HyDEはクエリを拡張し、より関連性の高いコンテンツをカバーする。
- 回答を生成するDeepSeek R1では、検索結果に基づいて回答が生成され、回答はストリーミング形式で出力され、インターフェイス上にステップ・バイ・ステップで表示されます。
- 典型例ハイブリッド検索とは何ですか?と聞くと、「ハイブリッド検索はBM25とFAISSを組み合わせたもので、BM25はキーワードのマッチングを担当し、FAISSはベクトルの類似性によってコンテンツの位置を素早く特定します」と返されるかもしれない。
機能3:ナレッジグラフの応用
- GraphRAGを有効にするデフォルトで有効。
- 複雑な質問をする例:「A社とB社の協力関係は?.
- リザルト・ショーケース例えば、「A社とB社は2023年に技術協力協定を締結した。
機能4:モデルとパラメータの調整
- 交換モデルで
環境
ファイル内の修正モデル
パラメータを使用する。deepseek-r1:1.5b
. - パフォーマンスを最適化するハードウェアがサポートしている場合は
faiss-gpu
GPUアクセラレーションを有効にすると、検索速度が最大3倍向上する。
ヒントとコツ
- マルチ・ドキュメント対応複数のファイルを同時にアップロードすることができ、システムがコンテンツを統合して質問に回答します。
- 問題の明確化できるだけ具体的に質問し、曖昧な表現を避けることで回答の精度を高める。
- ログのチェックエラーが発生した場合は、端末のログを確認することで、機種がダウンロードされていない、ポートが占有されているなどのトラブルシューティングを行うことができます。
ほら
- プライバシーローカルでの操作にはインターネット接続は不要で、データはクラウドにアップロードされない。
- 資源占有率大規模なモデルや高次元のベクトル計算には大量のメモリを必要とするため、関連性のないプログラムは終了しておくことをお勧めします。
- モデルの更新通常運転
オラマ・プル
DeepSeekモデルの最新バージョンを入手する。
上記の手順が完了すると、ユーザはブラウザを通じてDeepSeek-RAG-Chatbotと対話し、効率的なドキュメントクイズを楽しむことができます。