

リポジトリをクローンします:
git clone https://github.com/open-kf/rag-gpt.git && cd rag-gptRAG-GPTサービスを開始する前に、プログラムの関連する構成を変更して、正しく初期化する必要があります。
cp env_of_openai .env.ENVの変数
LLM_NAME= " OpenAI "
OPENAI_API_KEY= " xxxx "
GPT_MODEL_NAME= " gpt-4o-mini "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "
USE_GPT4O=0LLM_NAMEを変更しないでくださいOPENAI_API_KEYを変更します。 OpenAI Webサイトにログインして、APIキーを表示してください。gpt-4o-mini gpt-4-turboまたはgpt-4oに置き換えるGPT-4-MINIをGPT-4を使用する場合は、 GPT_MODEL_NAME設定を更新します。BOT_TOPICを変更して、ボットの名前を反映します。これは非常に重要です。これは、 Prompt Constructionに使用されるためです。 OpenIM 、 LangChainなどの簡潔で明確な単語を使用してみてください。URL_PREFIXを調整します。これは主に、アップロードされたローカルファイルのアクセス可能なURLリンクを生成するためのものです。 http: http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf 7000/web/download_dir/2024_05_20/D3A01D6A-90CD-4C2A-B926-9CDA12466CAF/OPENSSL-COOKBOOK.PDF。LlamaParseを使用する場合は、 USE_LLAMA_PARSEを1に設定します。LLAMA_CLOUD_API_KEY変更します。 LamaCloud Webサイトにログインして、APIキーを表示してください。GPT-4oモードを使用する場合は、 USE_GPT4Oを1に設定します。server/constantディレクトリの下で確認できます。 OpenaiのAPIサービスを使用できない場合は、Zhipuaiを代替として使用することを検討してください。
cp env_of_zhipuai .env.ENVの変数
LLM_NAME= " ZhipuAI "
ZHIPUAI_API_KEY= " xxxx "
GLM_MODEL_NAME= " glm-4-air "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "LLM_NAMEを変更しないでくださいZHIPUAI_API_KEY変更します。 Zhipuai Webサイトにログインして、APIキーを表示してください。GLM_MODEL_NAME設定を更新すると、モデルリストは['glm-3-turbo', 'glm-4', 'glm-4-0520', 'glm-4-air', 'glm-4-airx', 'glm-4-flash'] 。BOT_TOPICを変更して、ボットの名前を反映します。これは非常に重要です。これは、 Prompt Constructionに使用されるためです。 OpenIM 、 LangChainなどの簡潔で明確な単語を使用してみてください。URL_PREFIXを調整します。これは主に、アップロードされたローカルファイルのアクセス可能なURLリンクを生成するためのものです。 http: http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf 7000/web/download_dir/2024_05_20/D3A01D6A-90CD-4C2A-B926-9CDA12466CAF/OPENSSL-COOKBOOK.PDF。LlamaParseを使用する場合は、 USE_LLAMA_PARSEを1に設定します。LLAMA_CLOUD_API_KEY変更します。 LamaCloud Webサイトにログインして、APIキーを表示してください。server/constantディレクトリの下で確認できます。 OpenaiのAPIサービスを使用できない場合は、代替としてDeepSeekを使用することを検討してください。
注記
DeepSeekはEmbedding APIを提供しないため、ここではZhipuaiのEmbedding APIを使用します。
cp env_of_deepseek .env.ENVの変数
LLM_NAME= " DeepSeek "
ZHIPUAI_API_KEY= " xxxx "
DEEPSEEK_API_KEY= " xxxx "
DEEPSEEK_MODEL_NAME= " deepseek-chat "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "LLM_NAMEを変更しないでくださいZHIPUAI_API_KEY変更します。 Zhipuai Webサイトにログインして、APIキーを表示してください。DEEPKSEEK_API_KEYを変更します。 DeepSeek Webサイトにログインして、APIキーを表示してください。DEEPSEEK_MODEL_NAME設定を更新しますdeepseekの他のモデルを使用する場合。BOT_TOPICを変更して、ボットの名前を反映します。これは非常に重要です。これは、 Prompt Constructionに使用されるためです。 OpenIM 、 LangChainなどの簡潔で明確な単語を使用してみてください。URL_PREFIXを調整します。これは主に、アップロードされたローカルファイルのアクセス可能なURLリンクを生成するためのものです。 http: http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf 7000/web/download_dir/2024_05_20/D3A01D6A-90CD-4C2A-B926-9CDA12466CAF/OPENSSL-COOKBOOK.PDF。LlamaParseを使用する場合は、 USE_LLAMA_PARSEを1に設定します。LLAMA_CLOUD_API_KEY変更します。 LamaCloud Webサイトにログインして、APIキーを表示してください。server/constantディレクトリの下で確認できます。 OpenaiのAPIサービスを使用できない場合は、代替としてMoonshotを使用することを検討してください。
注記
ムーンショットはEmbedding APIを提供しないため、ここではZhipuaiのEmbedding APIを使用します。
cp env_of_moonshot .env.ENVの変数
LLM_NAME= " Moonshot "
ZHIPUAI_API_KEY= " xxxx "
MOONSHOT_API_KEY= " xxxx "
MOONSHOT_MODEL_NAME= " moonshot-v1-8k "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "LLM_NAMEを変更しないでくださいZHIPUAI_API_KEY変更します。 Zhipuai Webサイトにログインして、APIキーを表示してください。MOONSHOT_API_KEYを変更します。 APIキーを表示するには、Moonshot Webサイトにログインしてください。MOONSHOT_MODEL_NAMEの設定を更新するmoonshotの他のモデルを使用する場合は。BOT_TOPICを変更して、ボットの名前を反映します。これは非常に重要です。これは、 Prompt Constructionに使用されるためです。 OpenIM 、 LangChainなどの簡潔で明確な単語を使用してみてください。URL_PREFIXを調整します。これは主に、アップロードされたローカルファイルのアクセス可能なURLリンクを生成するためのものです。 http: http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf 7000/web/download_dir/2024_05_20/D3A01D6A-90CD-4C2A-B926-9CDA12466CAF/OPENSSL-COOKBOOK.PDF。LlamaParseを使用する場合は、 USE_LLAMA_PARSEを1に設定します。LLAMA_CLOUD_API_KEY変更します。 LamaCloud Webサイトにログインして、APIキーを表示してください。server/constantディレクトリの下で確認できます。 知識ベースに機密情報が含まれ、クラウドベースのLLMを使用しないことを好む場合は、 Ollamaを使用して大規模なモデルをローカルに展開することを検討してください。
注記
まず、Ollamaを参照してOllamaをインストールし、埋め込みモデルmxbai-embed-largeとllama3などのLLMモデルをダウンロードします。
cp env_of_ollama .env.ENVの変数
LLM_NAME= " Ollama "
OLLAMA_MODEL_NAME= " xxxx "
OLLAMA_BASE_URL= " http://127.0.0.1:11434 "
MIN_RELEVANCE_SCORE=0.4
BOT_TOPIC= " xxxx "
URL_PREFIX= " http://127.0.0.1:7000/ "
USE_PREPROCESS_QUERY=1
USE_RERANKING=1
USE_DEBUG=0
USE_LLAMA_PARSE=0
LLAMA_CLOUD_API_KEY= " xxxx "LLM_NAMEを変更しないでくださいOLLAMA_MODEL_NAME設定を更新し、Ollama Libraryから適切なモデルを選択します。Ollama起動するときにデフォルトのIP:PORTを変更した場合は、 OLLAMA_BASE_URLを更新してください。特に注意してください。URIを追加せずに、ここにIP(ドメイン)とポートのみを入力してください。BOT_TOPICを変更して、ボットの名前を反映します。これは非常に重要です。これは、 Prompt Constructionに使用されるためです。 OpenIM 、 LangChainなどの簡潔で明確な単語を使用してみてください。URL_PREFIXを調整します。これは主に、アップロードされたローカルファイルのアクセス可能なURLリンクを生成するためのものです。 http: http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf 7000/web/download_dir/2024_05_20/D3A01D6A-90CD-4C2A-B926-9CDA12466CAF/OPENSSL-COOKBOOK.PDF。LlamaParseを使用する場合は、 USE_LLAMA_PARSEを1に設定します。LLAMA_CLOUD_API_KEY変更します。 LamaCloud Webサイトにログインして、APIキーを表示してください。server/constantディレクトリの下で確認できます。注記
Dockerでデプロイするときは、 .envファイルのurl_prefixのホストに特に注意してください。 Ollamaを使用する場合は、 .envファイルのOllama_base_urlのホストにも特に注意してください。ホストマシンの実際のIPアドレスを使用する必要があります。
docker-compose up --build注記
Pythonバージョン3.10.x以上を使用してください。
他のプロジェクトの依存関係に影響を与えないように、Python仮想環境にPython関連の依存関係をインストールすることをお勧めします。
まだ仮想環境を作成していない場合は、次のコマンドを使用して作成できます。
python3 -m venv myenv作成後、仮想環境をアクティブにします。
source myenv/bin/activate仮想環境がアクティブになったら、 pipを使用して必要な依存関係をインストールできます。
pip install -r requirements.txtRAG-GPTサービスは、SQLiteをそのストレージDBとして使用します。 RAG-GPTサービスを開始する前に、次のコマンドを実行してデータベースを初期化し、管理コンソールのデフォルト構成を追加する必要があります。
python3 create_sqlite_db.py上記の手順を完了した場合は、次のコマンドを実行してRag-GPTサービスを開始するようにすることができます。
python3 rag_gpt_app.pysh start.sh注記
7000です。最初のテスト中に、製品プロセス全体をすばやく体験できるように、ポートを変更しないようにしてください。start.shマルチプロセスモードで使用してRAG-GPTサービスを開始することをお勧めします。 リンクhttp://your-server-ip:7000/open-kf-admin/を介して管理コンソールにアクセスして、ログインページに到達します。デフォルトのユーザー名とパスワードは、 adminおよびopen_kf_AIGC@2024です( create_sqlite_db.pyで確認できます)。

正常にログインした後、管理コンソールの構成ページが表示されるようになります。

ページhttp://your-server-ip:7000/open-kf-admin/#/
gpt-3.5-turboオプションのみが利用可能で、徐々に拡張されます。WebサイトURLを送信した後、サーバーがCrawlingを介してすべてのWebページURLのリストを取得したら、必要なWebページURLをナレッジベースとして選択できます(すべてデフォルトで選択)。初期StatusがRecorded 。

ページhttp://your-server-ip:7000/open-kf-admin/#/sourceブラウザで積極的に更新して、WebページのURL処理の進行状況を取得できます。 Webページのコンテンツがrawってなり、埋め込み計算とストレージが完了した後、Admin Consoleに対応するSizeを確認でき、 StatusもTrainedされます。

WebページのURLをクリックすると、Webページが分割されているサブページの数と、各サブページのテキストサイズが明らかになります。

サブページをクリックすると、全文コンテンツを表示できます。これは、エクスペリエンステストプロセス中に効果を確認するのに非常に役立ちます。

必要なWebページのURLを収集します。一度に最大10 WebページURLを送信できます。これらのページは、異なるドメインからのものです。

必要なローカルファイルをアップロードします。一度に最大10ファイルをアップロードでき、各ファイルは30MBを超えることはできません。現在、次のファイルタイプがサポートされています: [".txt", ".md", ".pdf", ".epub", ".mobi", ".html", ".docx", ".pptx", ".xlsx", ".csv"] 。

Admin ConsoleにWebサイトデータをインポートした後、リンクhttp://your-server-ip:7000/open-kf-chatbot/を介してチャットボットサービスを体験できます。

Admin Consoleリンクhttp://your-server-ip:7000/open-kf-admin/#/embed使用すると、Webサイトでiframeを構成するための詳細なチュートリアルを見ることができます。


Admin Consoleリンクhttp://your-server-ip:7000/open-kf-admin/#/dashboardを使用すると、指定された時間範囲内ですべてのユーザーの履歴リクエストレコードを表示できます。

RAG-GPTサービスは2つのフロントエンドモジュールを統合し、ソースコード情報は次のとおりです。
コードリポジトリ
スマートQAサービス向けの直感的なWebベースの管理インターフェイス。コンテンツ、構成、およびユーザーインタラクションを包括的に制御します。ナレッジベースの簡単な管理、クエリとフィードバックのリアルタイム監視、およびユーザーの洞察に基づく継続的な改善を可能にします。
コードリポジトリ
IFRAMEを介してWebサイトに簡単に統合できるように設計されたSMART QAサービス用のHTML5インターフェイス。ユーザーは、サイトを離れることなく、機能を強化することなくテーラードナレッジベースに直接アクセスできます。