简介:# 强大的开源项目RAG-GPT:5分钟实现LLM大模型应用到你的网站!
引言
随着chatgpt等大型语言模型(LLM)能力越来越强大,如何将这些模型精准地应用于特定垂直领域,让各行业开发者快速利用LLM赋能也成为热点和痛点。众所周知,LLM在处理超出其训练数据或涉及最新实事时,常会产生“幻觉”现象,简单理解就是会出现一本正经的胡说八道,回答不准确。针对此问题,RAG通过从外部知识库检索相关文档作为上下文输入到LLM有效地减少了生成内容不符合实际的情况。
在介绍RAG-GPT项目之前,我们首先要理解RAG的基本原理,RAG在问答系统中的一个典型应用主要包括三个模块,分别是:
RAG的基本流程可以用一张图说明,上图中展示了一个完整的问答流程:
以上是对RAG技术的基本介绍,如果想深入了解技术细节可以参考这篇文章:RAG技术全解析:打造下一代智能问答系统,技术细节很深入。
从RAG的原理介绍中可以看到要实现RAG整套架构还是存在一定工作量,需要构建索引、检索、集成LLM、prompt优化等一系列模块,具有一定的难度。
基于此,RAG-GPT提供了一整套开源解决方案,它基于Flask框架,旨在利用LLM和RAG技术快速搭建一个全功能的客服解决方案。该项目包括前端用户界面、后端服务和管理员控制台,为企业利用LLM搭建智能客服等对话场景提供了一个完整的自动化解决方案,可以帮助开发者快速搭建一个智能问答系统,且代码完全开源。
RAG-GPT关键特性:
从特性可以知道,RAG相比一些商业收费的基于知识库的问答系统优势在于
以下是RAG-GPT的技术架构图:
从上图可以看到,RAG-GPT对基本的RAG流程进行了多方面优化:
RAG-GPT的基本组成分为三部分:
下面,将介绍如何启动RAG-GPT项目和使用这三个模块,将RAG-GPT集成到你的网站只需要5个步骤:
git clone https://github.com/open-kf/RAG-GPT.git && cd RAG-GPT
复制env环境变量文件
cp env_template .env
修改配置项
OPENAI_API_KEY="你的openai api key"
URL_PREFIX="http://127.0.0.1:7000/"
在启动RAG-GPT服务之前,需要修改.env
文件中的相关配置。
本地启动时,修改URL_PREFIX=”http://127.0.0.1:7000/“
分别执行以下命令,即可启动,
先安装python依赖项
python3 -m venv myenv
source myenv/bin/activate
pip install -r requirements.txt
启动项目即可:
python create_sqlite_db.py
python rag_gpt_app.py
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/, 即可开始问答
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>
RAG-GPT项目具备开源免费、易于部署集成、开箱即用和功能丰富的特点,为LLM大模型在特定领域的应用落地提供了一套企业级的解决方案。接下来,RAG-GPT官方将引入本地文件知识库,集成国内LLM大模型等特性,使得RAG-GPT满足更多样化的需求。