强大的开源项目RAG-GPT:5分钟实现LLM大模型应用到你的网站!

强大的开源项目RAG-GPT:5分钟实现LLM大模型应用到你的网站!

引言

随着chatgpt等大型语言模型(LLM)能力越来越强大,如何将这些模型精准地应用于特定垂直领域,让各行业开发者快速利用LLM赋能也成为热点和痛点。众所周知,LLM在处理超出其训练数据或涉及最新实事时,常会产生“幻觉”现象,简单理解就是会出现一本正经的胡说八道,回答不准确。针对此问题,RAG通过从外部知识库检索相关文档作为上下文输入到LLM有效地减少了生成内容不符合实际的情况。

RAG技术原理介绍

在介绍RAG-GPT项目之前,我们首先要理解RAG的基本原理,RAG在问答系统中的一个典型应用主要包括三个模块,分别是:

  • Indexing(索引):将文档分割成chunk,编码成向量,并存储在向量数据库中。
  • Retrieval(检索):根据用户输入query和向量数据库中chunks语义相似度检索与问题最相关的前k个chunk,形成本次问答的上下文。
  • Generation(生成):将原始问题和检索到的chunks整合形成合适的prompt一起输入到LLM中,让LLM输出与上下文有关的回答。

RAG基本流程

RAG的基本流程可以用一张图说明,上图中展示了一个完整的问答流程:

  • 用户发起query
  • Retieval模块根据query检索出Indexing中的相似的chunks,
  • 形成合适的prompt后输入到LLM大模型中,最后输出答案。

以上是对RAG技术的基本介绍,如果想深入了解技术细节可以参考这篇文章:RAG技术全解析:打造下一代智能问答系统,技术细节很深入。

如何快速实现RAG的智能问答系统?

从RAG的原理介绍中可以看到要实现RAG整套架构还是存在一定工作量,需要构建索引、检索、集成LLM、prompt优化等一系列模块,具有一定的难度。

基于此,RAG-GPT提供了一整套开源解决方案,旨在利用LLM和RAG技术快速搭建一个全功能的客服解决方案。该项目基于Flask框架,包括前端用户界面、后端服务和管理员控制台,为企业利用LLM搭建智能客服等对话场景提供了一个完整的自动化解决方案,可以帮助开发者快速搭建一个智能问答系统,且代码完全开源。
项目地址:https://github.com/open-kf/rag-gpt
同时还有一个在线Demo: https://demo.rentsoft.cn/

RAG-GPT的基本架构

RAG-GPT关键特性:

  • 内置LLM支持:无缝集成chatgpt、智普AI等大型语言模型,利用其丰富的语言理解能力,生成答案。
  • 知识库支持丰富:支持各类本地文件,网站地址作为知识库进行检索。
  • 快速部署集成:仅需Python环境,无需额外的中间件或依赖,可以在五分钟内部署生产级别的对话服务机器人并一键集成对话机器人到你的网站上。
  • 灵活配置:用户友好的后台管理界面,支持定制化设置,简化维护流程。

从特性可以知道,RAG相比一些商业收费的基于知识库的问答系统优势在于

  • 易用、快速搭建
  • 能自主管理知识库,避免商业秘密和知识产权泄漏
  • 可以自主选择LLM模型和甚至扩展部署本地模型。

以下是RAG-GPT的技术架构图:
RAG-GPT整体架构

从上图可以看到,RAG-GPT对基本的RAG流程进行了多方面优化:

  • 1.在query阶段支持query改写、query扩展、query routing等功能;
  • 2.在Indexing和Retrieval阶段,索引和检索阶段支持向量数据库、类ES的BM25索引数据库,增强了索引和检索的准确性;
  • 3.在Generation阶段,构建prompt时引入了历史对话作为上下文进行结果生成。

用RAG-GPT 5分钟搭建智能问答系统

RAG-GPT的基本组成分为三部分:

  • 一是智能问答后端服务
  • 二是管理后台系统
  • 三是用户使用的chatbot UI。

下面,将介绍如何启动RAG-GPT项目和使用这三个模块,将RAG-GPT集成到你的网站只需要5个步骤:

1. 下载源代码,通过Git克隆RAG-GPT的GitHub仓库:
git clone https://github.com/open-kf/RAG-GPT.git && cd RAG-GPT
2.配置环境变量

复制env环境变量文件

cp env_template .env

修改配置项

OPENAI_API_KEY="你的openai api key"
URL_PREFIX="http://127.0.0.1:7000/"

在启动RAG-GPT服务之前,需要修改.env文件中的相关配置。

  • 修改OPENAI_API_KEY=“此为你的openai api key”,在open ai api keys申请api key(RAG-GPT官方马上将支持国内的智普AI,使用智普ai的api key替换即可)
  • 本地启动时,修改URL_PREFIX=“http://127.0.0.1:7000/”,以访问管理后台
3.执行启动命令

分别执行以下命令,即可启动,
先安装python依赖项

python3 -m venv myenv
source myenv/bin/activate
pip install -r requirements.txt

启动项目即可:

python create_sqlite_db.py
python rag_gpt_app.py

4.快速体验聊天效果
  • 1.启动服务后先打开管理后台,
    首先要登录到管理后台,浏览器输入:http://127.0.0.1:7000/open-kf-admin/#/login账号为:admin 密码 :open_kf_AIGC@2024

  • 2.导入知识库,以open im网站为例,在管理后台切换到source tab,输入open im官网地址:https://docs.openim.io/, 点fetch即可一键爬取网站内容作为知识库。
    在这里插入图片描述

等待爬取完成后,点击update即可在向量数据库中建立索引,用于问答时检索内容
在这里插入图片描述

浏览器打开http://127.0.0.1:7000/open-kf-chatbot/, 即可开始问答
在这里插入图片描述

5.一键嵌入到你的网站

RAG-GPT提供了将聊天机器人嵌入到网站的方法,使得用户可以直接在网站上使用智能问答服务。
打开管理后台菜单切换到embed,复制两个代码即可实现一键嵌入,这两个代码片效果分别如下:一个是iframe嵌入一个聊天窗口,一个是在页面右下角点击弹出聊天窗口。
可以新建一个文本文件,将以下代码复制进去,用浏览器打开就可以看到嵌入效果啦:

<iframe 
src="http://127.0.0.1:7000/open-kf-chatbot"
title="Chatbot"
style="min-width: 420px;min-height: 60vh"
frameborder="0"
></iframe>

<script 
src="http://127.0.0.1:7000/open-kf-chatbot/embed.js" 
bot-domain="http://127.0.0.1:7000/open-kf-chatbot" 
defer
></script>

在这里插入图片描述

6.管理后台其他功能
    1. 管理员可以通过仪表板查看用户的历史请求记录,以便进行分析和优化。
      可以按照时间、用户查询聊天记录和修改问答对的答案以更符合自身需求。
      在这里插入图片描述
    1. 配置聊天对话的UI
      用户可以定制化聊天对话框的风格,使其更符合自身网站的风格特性。
      在这里插入图片描述

结语

RAG-GPT项目具备开源免费、易于部署集成、开箱即用和功能丰富的特点,为LLM大模型在特定领域的应用落地提供了一套企业级的解决方案。接下来,RAG-GPT官方将引入本地文件知识库,集成国内LLM大模型等特性,使得RAG-GPT满足更多样化的需求。

更多关于RAG-GPT

OpenIM是领先的开源即时通讯(IM)平台,目前在GitHub上的星标已超过13k。OpenIM和更多用户已经在使用RAG-GPT开源项目。赶紧来试试!

如果您对RAG-GPT感兴趣,可以访问以下链接了解更多信息:

项目地址: https://github.com/open-kf/rag-gpt

在线Demo: https://demo.rentsoft.cn/

欢迎大家在GitHub上Star并关注,支持我们的开源旅程。

开源说明:RAG-GPT采用Apache 2.0许可,支持免费使用和二次开发。遇到问题时,请在GitHub提Issue或加入OpenKF开源社区群讨论。

在这里插入图片描述

<think>好的,我现在需要回答用户关于Python开源大模型应用项目的问题。首先,我得确认用户的需求是什么,他们可能是在寻找可以用来开发或集成大模型开源工具和框架。用户提到的“大模型应用项目”可能指的是那些基于大型语言模型(如GPT、BERT等)构建的应用程序或库,或者是提供接口和工具来方便使用这些模型的框架。 接下来,我需要回想自己了解的Python开源项目,尤其是与大模型相关的。首先想到的肯定是Hugging Face的Transformers库,因为它是最流行的之一,支持多种预训练模型。然后是LangChain,这个库最近很火,用于构建基于大模型应用程序,比如聊天机器人或者自动化流程。还有OpenAI的相关库,虽然OpenAI本身不是完全开源的,但他们提供的Python库和API在开源项目中经常被集成。 另外,还有一些项目比如LlamaIndex,用于处理和大模型相关的数据索引和检索。可能还有FastChat,它提供了训练和部署聊天模型的工具。再比如PaddleNLP,这是百度开源NLP库,虽然主要用PaddlePaddle,但也可以在Python中使用。还有一些分布式训练框架,比如DeepSpeed,由微软开发,帮助高效训练大规模模型。 我还需要检查是否有遗漏的重要项目。例如,Text Generation WebUI是一个流行的项目,允许用户通过网页界面使用各种大模型。还有BLOOM,这是一个开源的大语言模型,由Hugging Face牵头开发,虽然模型本身是开源的,但相关的工具和库可能也属于应用项目的一部分。另外,可能会有一些专注于特定领域的库,比如医疗或法律,但用户可能更关注通用项目。 需要确认这些项目是否都是开源的,以及它们的主要功能是否属于“应用项目”的范畴。例如,Transformers和LangChain都是库,用于构建应用,而FastChat可能更偏向于训练和部署。同时,要确保提到的项目确实是用Python编写的,或者有Python接口,因为用户特别提到了Python中的项目。 可能还需要考虑项目的活跃度和社区支持,用户可能更倾向于使用维护良好、文档齐全的项目。例如,Hugging Face的生态系统非常活跃,持续更新,这对用户来说很重要。而像LlamaIndex这样的项目,虽然较新,但专注于增强大模型的应用能力,比如数据连接和检索,这也是一个关键点。 最后,整理这些信息,分点列出,每个项目简要介绍其功能和特点,帮助用户了解它们各自的用途和优势。需要确保语言简洁明了,结构清晰,便于用户快速获取所需信息。同时,避免使用过于技术化的术语,让不同层次的用户都能理解。</think>在Python中,开源大模型应用项目主要集中在**模型调用、应用开发框架、分布式训练**等领域。以下是几个值得关注的项目: --- ### 一、模型调用与工具库 1. **Hugging Face Transformers** - 最流行的开源库,支持BERT、GPT、T5等**数千种预训练模型**的调用与微调。 - 提供简洁的API,例如: ```python from transformers import pipeline generator = pipeline("text-generation", model="gpt2") print(generator("Hello, I'm a language model", max_length=50)) ``` - 地址:[github.com/huggingface/transformers](https://github.com/huggingface/transformers) 2. **FastChat** - 支持**训练、评估与部署聊天大模型**(如Vicuna、Alpaca)。 - 提供Web UI和API服务,适合快速搭建类ChatGPT应用- 地址:[github.com/lm-sys/FastChat](https://github.com/lm-sys/FastChat) --- ### 二、应用开发框架 3. **LangChain** - 构建**大模型驱动的应用程序**(如问答系统、自动化流程)。 - 支持连接外部数据源(PDF、网页)、工具调用(Google搜索、Python解释器)。 - 示例代码: ```python from langchain.chains import LLMChain chain = LLMChain(llm=model, prompt=prompt) print(chain.run("Explain quantum computing in simple terms")) ``` - 地址:[github.com/langchain-ai/langchain](https://github.com/langchain-ai/langchain) 4. **LlamaIndex** - 专注于**数据连接与大模型增强检索**(RAG,Retrieval-Augmented Generation)。 - 支持结构化/非结构化数据索引,提升大模型回答的准确性。 - 地址:[github.com/run-llama/llama_index](https://github.com/run-llama/llama_index) --- ### 三、训练与优化 5. **DeepSpeed** - 微软开发的**分布式训练框架**,支持千亿参数模型的训练优化(如ZeRO内存优化、混合精度)。 - 常与PyTorch配合使用,显著降低显存占用。 - 地址:[github.com/microsoft/DeepSpeed](https://github.com/microsoft/DeepSpeed) 6. **PEFT** - Hugging Face的**参数高效微调工具**,支持LoRA、Adapter等轻量级微调方法。 - 可在单卡上微调大模型,适合资源有限的场景。 - 地址:[github.com/huggingface/peft](https://github.com/huggingface/peft) --- ### 四、本地部署与界面 7. **Text Generation WebUI** - 支持**本地运行LLaMA、Falcon等大模型**的Web交互界面。 - 提供模型加载、参数调节、扩展插件功能。 - 地址:[github.com/oobabooga/text-generation-webui](https://github.com/oobabooga/text-generation-webui) 8. **LocalAI** - 本地化部署开源模型的API服务,兼容OpenAI API格式。 - 支持CPU/GPU推理,方便现有应用快速迁移。 - 地址:[github.com/go-skynet/LocalAI](https://github.com/go-skynet/LocalAI) --- ### 五、中文生态 9. **Chinese-LLaMA-Alpaca** - 基于Meta LLaMA的中文优化版本,支持**中文对话与指令跟随**。 - 地址:[github.com/ymcui/Chinese-LLaMA-Alpaca](https://github.com/ymcui/Chinese-LLaMA-Alpaca) 10. **ChatGLM-6B** - 清华开源的**中英双语对话模型**,支持INT4量化(6GB显存即可运行)。 - 地址:[github.com/THUDM/ChatGLM-6B](https://github.com/THUDM/ChatGLM-6B) --- ### 选择建议: - **快速原型开发**:Hugging Face Transformers + LangChain - **低成本微调**:PEFT + DeepSpeed - **中文场景**:ChatGLM-6B 或 Chinese-LLaMA-Alpaca - **本地部署**:Text Generation WebUI + LocalAI 这些项目持续更新迭代,建议通过GitHub关注最新动态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值