强大的开源项目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开源社区群讨论。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/326166.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WS2811 单线 256 级灰度三通道恒流 LED 驱动器芯片 IC

产品概述 WS2811 是三通道LED驱动控制专用电路&#xff0c;芯片内部包含了智能数字接口数据锁存信号整形放大驱动电路&#xff0c;还包含有高精度的内部振荡器和15V高压可编程定电流输出驱动器。同时&#xff0c;为了降低电源纹波&#xff0c;3个通道有一定的延时导通功…

4.1 文本相似度(二)

目录 1 文本相似度评估 2 代码 2.1 load_dataset 方法 2.2 AutoTokenizer、AutoModelForSequenceClassification 1 文本相似度评估 对两个文本拼接起来&#xff0c;然后作为一个样本喂给模型&#xff0c;作为一个二分类的任务&#xff1b; 数据处理的方式以及训练的基本流程…

2024最新版JavaScript逆向爬虫教程-------基础篇之无限debugger的原理与绕过

目录 一、无限debugger的原理与绕过1.1 案例介绍1.2 实现原理1.3 绕过debugger方法1.3.1 禁用所有断点1.3.2 禁用局部断点1.3.3 替换文件1.3.4 函数置空与hook 二、补充2.1 改写JavaScript文件2.2 浏览器开发者工具中出现的VM开头的JS文件是什么&#xff1f; 三、实战 一、无限…

一篇文章掌握所有国债期货的基本交易策略介绍

国债期货是一种基本的利率衍生品&#xff0c;根据交易者交易目的不同&#xff0c;可以将期货交易行为分为三类&#xff1a;套期保值、套利交易和投机交易。套期保值是投资者为了避免现有或将来预期的投资组合价值受市场利率变动的影响&#xff0c;而在国债期货市场上采取抵消性…

2023年30米分辨率土地利用遥感监测数据

改革开放以来&#xff0c;中国经济的快速发展对土地利用模式产生了深刻的影响。同时&#xff0c;中国又具有复杂的自然环境背景和广阔的陆地面积&#xff0c;其土地利用变化不仅对国家发展&#xff0c;也对全球环境变化产生了深刻的影响。为了恢复和重建我国土地利用变化的现代…

六、Redis五种常用数据结构-zset

zset是Redis的有序集合数据类型&#xff0c;但是其和set一样是不能重复的。但是相比于set其又是有序的。set的每个数据都有一个double类型的分数&#xff0c;zset正是根据这个分数来进行数据间的排序从小到大。有序集合中的元素是唯一的&#xff0c;但是分数(score)是可以重复的…

LeetCode416:分割等和子集

题目描述 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 解题思想 [1,5,11,5] 和为22&#xff0c;其中一半为 11。如果能寻找到若干数的和为11则成立可以抽象为一个0-1背包问题&#xff1a;容…

浮点数的由来及运算解析

数学是自然科学的皇后&#xff0c;计算机的设计初衷是科学计算。计算机的最基本功能是需要存储整数、实数&#xff0c;及对整数和实数进行算术四则运算。 但是在计算机从业者的眼中&#xff0c;我们知道的数学相关的基本数据类型通常是整型、浮点型、布尔型。整型又分为int8&a…

给centos机器打个样格式化挂载磁盘(新机器)

文章目录 一、先安装lvm2二、观察磁盘三、磁盘分区四、建PV五、建VG六、创建LV七、在LV上创建文件系统八、挂载到/home&#xff08;1&#xff09;临时挂载&#xff08;2&#xff09;永久挂载 九、最后reboot一下 一、先安装lvm2 yum install lvm2二、观察磁盘 三、磁盘分区 四…

Springboot整合 Spring Cloud Alibaba Seata

1.事务简介 事务是访问并可能更新数据库中各种数据项的一个程序执行单元。在关系型数据库中&#xff0c;一个事务由一组sql语句组成。事务具有 原子性&#xff0c;一致性&#xff0c;隔离性&#xff0c;持久性四个属性(ACID)。 原子性&#xff1a;事务是一个不可分割的工作单位…

ThreadLocal 源码详解

概述 ThreadLocal是一个java提供的本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射&#xff0c;各个线程之间的变量互不干扰&#xff0c;在高并发场景下&#xff0c;可以实现无状态的调用&#xff0c;特别适用于各个线程依赖不通的变量值完成操作…

美国政府首次发布《国家网络安全态势报告》

报告提到&#xff0c;不断演变的关键基础设施风险、勒索软件、供应链利用、商业间谍软件和AI是主要趋势&#xff1b;国家网络总监办公室同时公布了第二版《国家网络安全战略实施计划》&#xff0c;新增了31项倡议。 前情回顾美国深化网络安全战略 美国发布国家网络安全战略实施…

快团团怎么做帮卖团长/供货大团长(如何从小白到优质团长)?

一名小白想要成长为快团团的优质团长&#xff0c;可以遵循以下步骤和策略&#xff1a; 了解平台与注册成为团长&#xff1a; 首先&#xff0c;熟悉快团团平台的操作流程和规则。快团团是一个基于微信的小程序&#xff0c;专注于社区团购业务。通过微信扫描团长资源二维码或在快…

【爬虫基础1.1课】——requests模块上

目录索引 requests模块的作用&#xff1a;实例引入&#xff1a; 特殊情况&#xff1a;锦囊1&#xff1a;锦囊2: 这一个栏目&#xff0c;我会给出我从零开始学习爬虫的全过程。感兴趣的小伙伴可以关注一波&#xff0c;用于复习和新学都是不错的选择。 那么废话不多说&#xff0c…

​​​​【收录 Hello 算法】5.2 队列

目录 5.2 队列 5.2.1 队列常用操作 5.2.2 队列实现 1. 基于链表的实现 2. 基于数组的实现 5.2.3 队列典型应用 5.2 队列 队列&#xff08;queue&#xff09;是一种遵循先入先出规则的线性数据结构。顾名思义&#xff0c;队列模拟了排队现象&#xff0c;即…

利用香港多IP服务器进行大数据分析的潜在优势?

利用香港多IP服务器进行大数据分析的潜在优势? 在当今数据驱动的时代&#xff0c;大数据分析已经成为企业获取竞争优势的不二选择。而香港作为一个拥有世界级通信基础设施的城市&#xff0c;提供了理想的环境来部署多IP服务器&#xff0c;从而为大数据分析提供了独特的优势。…

2024中国(重庆)人工智能展览会8月举办

2024中国(重庆)人工智能展览会8月举办 邀请函 主办单位&#xff1a; 中国航空学会 重庆市南岸区人民政府 招商执行单位&#xff1a; 重庆港华展览有限公司 【报名I59交易会 2351交易会 9466】 展会背景&#xff1a; 2024中国航空科普大会暨第八届全国青少年无人机大赛在…

Spring Framework-简介

Spring Framework Java Spring是一个开源的Java应用框架&#xff0c;它的主要目的是简化企业级应用开发的复杂性。Spring框架为开发者提供了许多基础功能&#xff0c;使得开发者能够更专注于业务逻辑的实现&#xff0c;而不是底层的细节。 主要特点和功能&#xff1a; 控制反…

数据库脚本编写规范(SQL编写规范)

编写本文档的目的是保证在开发过程中产出高效、格式统一、易阅读、易维护的SQL代码。 1 编写目 2 SQL书写规范 3 SQL编写原则 软件开发全文档获取&#xff1a;点我获取

全域运营是割韭菜吗?看完再下结论!

随着流量时代的到来&#xff0c;各大公私域平台中的流量争夺战日益激烈&#xff0c;商家和品牌实现流量变现的难度值也不断提高&#xff0c;运营人员的压力也逐渐增大。在此背景下&#xff0c;全域运营的兴起或许是一个契机&#xff0c;能够将所有人从内卷的状态中解救出来。而…