

克隆存儲庫:
git clone https://github.com/open-kf/rag-gpt.git && cd rag-gpt在啟動RAG-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_NAMEOPENAI_API_KEY 。請登錄到OpenAI網站以查看您的API密鑰。GPT_MODEL_NAME設置,用gpt-4-turbo或gpt-4o替換gpt-4o-mini 。BOT_TOPIC以反映您的機器人的名稱。這非常重要,因為它將用於Prompt Construction 。請嘗試使用一個簡潔明了的單詞,例如OpenIM , LangChain 。URL_PREFIX以匹配您的網站域。這主要用於生成上傳的本地文件的可訪問URL鏈接。例如http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf 。LlamaParse ,將USE_LLAMA_PARSE設置為1。LLAMA_CLOUD_API_KEY 。請登錄到Llamacloud網站以查看您的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_NAMEZHIPUAI_API_KEY 。請登錄Zhipuai網站以查看您的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://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf 。LlamaParse ,將USE_LLAMA_PARSE設置為1。LLAMA_CLOUD_API_KEY 。請登錄到Llamacloud網站以查看您的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_NAMEZHIPUAI_API_KEY 。請登錄Zhipuai網站以查看您的API密鑰。DEEPKSEEK_API_KEY 。請登錄到DeepSeek網站以查看您的API密鑰。DEEPSEEK_MODEL_NAME設置。BOT_TOPIC以反映您的機器人的名稱。這非常重要,因為它將用於Prompt Construction 。請嘗試使用一個簡潔明了的單詞,例如OpenIM , LangChain 。URL_PREFIX以匹配您的網站域。這主要用於生成上傳的本地文件的可訪問URL鏈接。例如http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf 。LlamaParse ,將USE_LLAMA_PARSE設置為1。LLAMA_CLOUD_API_KEY 。請登錄到Llamacloud網站以查看您的API密鑰。server/constant目錄下檢查。 如果您無法使用OpenAI的API服務,請考慮使用Moonshot作為替代方案。
筆記
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_NAMEZHIPUAI_API_KEY 。請登錄Zhipuai網站以查看您的API密鑰。MOONSHOT_API_KEY 。請登錄到Moonshot網站以查看您的API密鑰。MOONSHOT_MODEL_NAME設置。BOT_TOPIC以反映您的機器人的名稱。這非常重要,因為它將用於Prompt Construction 。請嘗試使用一個簡潔明了的單詞,例如OpenIM , LangChain 。URL_PREFIX以匹配您的網站域。這主要用於生成上傳的本地文件的可訪問URL鏈接。例如http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf 。LlamaParse ,將USE_LLAMA_PARSE設置為1。LLAMA_CLOUD_API_KEY 。請登錄到Llamacloud網站以查看您的API密鑰。server/constant目錄下檢查。 如果您的知識庫涉及敏感信息,並且您不希望使用基於雲的LLM,請考慮使用Ollama在本地部署大型模型。
筆記
首先,請參閱Ollama安裝Ollama ,然後下載嵌入式型號mxbai-embed-large和LLM型號(例如llama3 。
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_NAMEOLLAMA_MODEL_NAME設置,從Ollama庫中選擇適當的模型。Ollama時已更改默認IP:PORT ,請更新OLLAMA_BASE_URL 。請特別注意,僅在不附加URI的情況下輸入IP(域)和端口。BOT_TOPIC以反映您的機器人的名稱。這非常重要,因為它將用於Prompt Construction 。請嘗試使用一個簡潔明了的單詞,例如OpenIM , LangChain 。URL_PREFIX以匹配您的網站域。這主要用於生成上傳的本地文件的可訪問URL鏈接。例如http://127.0.0.1:7000/web/download_dir/2024_05_20/d3a01d6a-90cd-4c2a-b926-9cda12466caf/openssl-cookbook.pdf 。LlamaParse ,將USE_LLAMA_PARSE設置為1。LLAMA_CLOUD_API_KEY 。請登錄到Llamacloud網站以查看您的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服務之前,您需要執行以下命令以初始化數據庫並添加admin Console的默認配置。
python3 create_sqlite_db.py如果您已經完成了上述步驟,則可以通過執行以下命令來嘗試啟動RAG-GPT服務。
python3 rag_gpt_app.pysh start.sh筆記
7000 。在第一次測試中,請盡量不要更改端口,以便您可以快速體驗整個產品過程。start.sh啟動抹布-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選項可用,該選項將逐漸擴展。提交網站URL後,一旦服務器通過爬網檢索所有網頁URL的列表,就可以選擇所需的網頁URL作為知識庫(默認情況下選擇)。 Recorded初始Status 。

您可以在瀏覽器中積極刷新頁面http://your-server-ip:7000/open-kf-admin/#/source以獲取網頁URL處理的進度。在網頁網址的內容被爬行並完成嵌入計算和存儲後,您可以在管理控制台中看到相應的Size ,並且Status也將更新為Trained 。

單擊網頁的URL揭示了該網頁被分為多少個子頁面以及每個子頁面的文本大小。

單擊子頁面使您可以查看其全文內容。這將非常有助於在體驗測試過程中驗證效果。

收集所需網頁的URL。您可以一次提交多達10網頁URL,這些頁面可以來自不同的域。

上傳所需的本地文件。您一次最多可以上傳10文件,並且每個文件不能超過30MB 。當前支持以下文件類型: [".txt", ".md", ".pdf", ".epub", ".mobi", ".html", ".docx", ".pptx", ".xlsx", ".csv"] 。

在管理員控制台中導入網站數據後,您可以通過鏈接http://your-server-ip:7000/open-kf-chatbot/ 。

通過管理控制台鏈接http://your-server-ip:7000/open-kf-admin/#/embed ,您可以看到用於在網站中配置iframe的詳細教程。


通過管理控制台鏈接http://your-server-ip:7000/open-kf-admin/#/dashboard ,您可以在指定的時間範圍內查看所有用戶的歷史請求記錄。

RAG-GPT服務集成了2個前端模塊,其源代碼信息如下:
代碼存儲庫
SMART QA服務的基於直觀的Web管理界面,可全面控制內容,配置和用戶交互。可以輕鬆地管理知識庫,對查詢和反饋的實時監控以及基於用戶見解的持續改進。
代碼存儲庫
SMART QA服務的HTML5接口旨在通過IFRAME輕鬆集成到網站,為用戶直接訪問量身定制的知識庫而無需離開網站,從而增強了功能和即時查詢分辨率。