写点什么

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

作者:Geek_1ef48b
  • 2024-05-19
    浙江
  • 本文字数:2393 字

    阅读完需:约 8 分钟

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

RAG 技术原理介绍

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

  • Indexing(索引):将文档分割成 chunk,编码成向量,并存储在向量数据库中。

  • Retrieval(检索):根据用户输入 query 和向量数据库中 chunks 语义相似度检索与问题最相关的前 k 个 chunk,形成本次问答的上下文。

  • Generation(生成):将原始问题和检索到的 chunks 整合形成合适的 prompt 一起输入到 LLM 中,让 LLM 输出与上下文有关的回答。




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

  • 用户发起 query

  • Retieval 模块根据 query 检索出 Indexing 中的相似的 chunks,

  • 形成合适的 prompt 后输入到 LLM 大模型中,最后输出答案。

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

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

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

基于此,RAG-GPT 提供了一整套开源解决方案,它基于 Flask 框架,旨在利用 LLM 和 RAG 技术快速搭建一个全功能的客服解决方案。该项目包括前端用户界面、后端服务和管理员控制台,为企业利用 LLM 搭建智能客服等对话场景提供了一个完整的自动化解决方案,可以帮助开发者快速搭建一个智能问答系统,且代码完全开源。

RAG-GPT 的基本架构

RAG-GPT 关键特性:

  • 内置 LLM 支持:无缝集成 chatgpt、智普 AI 等大型语言模型,利用其丰富的语言理解能力,生成答案。

  • 知识库支持丰富:支持各类本地文件,网站地址作为知识库进行检索。

  • 快速部署集成:仅需 Python 环境,无需额外的中间件或依赖,可以在五分钟内部署生产级别的对话服务机器人并一键集成对话机器人到你的网站上。

  • 灵活配置:用户友好的后台管理界面,支持定制化设置,简化维护流程。

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

  • 易用、快速搭建

  • 能自主管理知识库,避免商业秘密和知识产权泄漏

  • 可以自主选择 LLM 模型和甚至扩展部署本地模型。

以下是 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 myenvsource myenv/bin/activatepip 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 即可在向量数据库中建立索引,用于问答时检索内容





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.管理后台其他功能
  • 管理员可以通过仪表板查看用户的历史请求记录,以便进行分析和优化。


    可以按照时间、用户查询聊天记录和修改问答对的答案以更符合自身需求。




  • 配置聊天对话的 UI


    用户可以定制化聊天对话框的风格,使其更符合自身网站的风格特性。




结语

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

关于我们

用户头像

Geek_1ef48b

关注

还未添加个人签名 2021-08-25 加入

还未添加个人简介

评论

发布
暂无评论
# 强大的开源项目RAG-GPT:5分钟实现LLM大模型应用到你的网站!_Geek_1ef48b_InfoQ写作社区