

克隆存储库:
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轻松集成到网站,为用户直接访问量身定制的知识库而无需离开网站,从而增强了功能和即时查询分辨率。