RAG实践 - AI 知识库问答功能的建设
最近在工作中构建了一套自动的基于文档中心为数据集构建知识库 AI 问答的系统,来提升用户体验和技术支持效率,分享一下在实现过程中的技术选型和架构设计。
背景
先说下背景,我们公司的产品 FinClip 是做小程序全套解决方案的。我们有一个文档中心 https://finclip.com/mop/document/ ,里面几乎存储了我们大部分的面向客户的文档。
所以在构建知识库的时候,我们有以下的数据源
- 文档中心的文档 https://finclip.com/mop/document/
- 在社区交付过程中,交付整理的问题 QA
- 售前和销售在和客户阐述方案的时候,腾讯会议纪要
实现效果
实现效果侧还是还对比较简单,对于用户而言在我们的管理后台实现了一个聊天框,能够回答整个系统内的基本所有的问题,只要数据集有涉及到的

整体架构设计

整个基于 RAG 实现的AI 问答的链路,主要包含以下几个核心部分:
- 文档中心Gitlab仓库:基于 Gitlab 管理所有技术文档
- CI Pipeline:在文档中心的文档负责文档更新的自动化处理流程
- LLM Service:大语言模型服务层,负责文档理解和问答生成,此处会针对源文档进行一次 QA 的拆分
- FastGPT:向量数据库和知识检索服务
- 用户交互层:提供统一的问答接口
这种设计带来几个明显优势:
- 文档更新自动化,确保知识库实时性
- 服务解耦,便于独立扩展和维护
- 分层处理提升系统可靠性
文档处理流程
文档处理是整个系统的基础,我们的处理流程如下:
- 文档变更触发:通过 Gitlab CI 监听文档更新
- 自动化处理:CI Pipeline 自动执行以下步骤:
- 检测文档增量更新
- 提取文档内容
- 进行 QA 拆分,生成问答对
- 推送到知识库
这个流程确保了知识库能够及时反映最新的文档内容,无需人工干预。
知识库技术选型
在知识库方案选型时,我们主要对比了 FastGPT 和 RAGFlow:
FastGPT 的优势:
- 开箱即用的向量检索能力
- 良好的社区支持
- 简单的部署维护
- 内置的文本分块策略
Embedding 和 Rerank
我们的向量检索策略采用:
- 使用 embedding 模型将文本转换为向量
- 通过 ReRank 优化搜索结果相关性
- 动态调整检索阈值,平衡召回率和精确度
最终的流程图如下

AI 问答实现
问答系统的核心流程:
知识检索:
- 用户提问向量化
- 在知识库中检索相关内容
- 通过 Rerank 筛选最相关片段
答案生成:
- 将检索内容作为上下文
- 通过 LLM 生成自然、准确的回答
- 添加引用来源,提升可信度
质量保证:
- 答案相关性评分
- 兜底策略处理
- 用户反馈收集
RAG实践 - AI 知识库问答功能的建设的更多相关文章
- 简易版AI英文问答程序解决
第四章的作业和实践题要论印象深刻无疑就是AI的那道题了.不得不说一开始看到题目的时候,我真的蒙了很久. 本题要求你实现一个简易版的 AI 英文问答程序,规则是: 1.无论用户说什么,首先把对方说的话在 ...
- AI智能问答助手 AI智能批量文章生成器 网站优化SEO批量内容生成工具 原创文章生成软件
<AI智能问答助手> 软件基于当下热门的OpenAI的ChatGPT技术,导入问题列表就可以批量生成对应的内容,内容质量高.原创度高.适合对内容生成需求量大的场景,如网站优化.广告文案 ...
- 全网最详细中英文ChatGPT-GPT-4示例文档-官网推荐的48种最佳应用场景——从0到1快速入门AI智能问答应用场景(附python/node.js/curl命令源代码,小白也能学)
目录 Introduce 简介 setting 设置 Prompt 提示 Sample response 回复样本 API request 接口请求 python接口请求示例 node.js接口请求示 ...
- UWP开发之Template10实践二:拍照功能你合理使用了吗?(TempState临时目录问题)
最近在忙Asp.Net MVC开发一直没空更新UWP这块,不过有时间的话还是需要将自己的经验和大家分享下,以求共同进步. 在上章[UWP开发之Template10实践:本地文件与照相机文件操作的MVV ...
- AI的新增功能(定义图案)(描边渐变)(图像描摹)5.1
1.定义图案:打开一个AI素材文件如图: 选择工具拖拽选择这个图案,选择“对象”“图案”“建立”完成图案的建立 此时会弹出图案选项对话框,改变拼贴类型,图案宽高,份数,不透明度,单击"完成“ ...
- redis实践:用户注册登录功能
本节将使用PHP和Redis实现用户注册登录功能,下面分模块来介绍具体实现方法. 1.注册 需求描述:用户注册时需要提交邮箱.登录密码和昵称.其中邮箱是用户的唯一标识,每个用户的邮箱不能重复,但允许用 ...
- Ceph 12.2.0 实践osd 智能分组功能
以前我们需要对ssd和hdd进行分组的时候,需要大量的修改crush map,然后绑定不同的存储池到不同的 crush 树上面,现在这个逻辑简化了很多.以上是官方宣传听起来很不错等到12.2.0稳定版 ...
- 新书:《Liferay Portal 6.1最佳实践门户网站建设》
新书:<Liferay Portal 6.1最佳实践门户网站建设> <Liferay Portal 6.1门户站点建设最佳实践>是国内第一本全面介绍Liferay Port ...
- 苏宁基于Spark Streaming的实时日志分析系统实践 Spark Streaming 在数据平台日志解析功能的应用
https://mp.weixin.qq.com/s/KPTM02-ICt72_7ZdRZIHBA 苏宁基于Spark Streaming的实时日志分析系统实践 原创: AI+落地实践 AI前线 20 ...
- Vue项目实践中的功能实现与要点
本贴记录项目实践中,各种功能的实现与技术要点,均有待改进. 路由切换的时候,显示loading动画 目前方案是: 在每个页面都手动装载一个loading组件组件的显示依赖vuex里面的一个值 , 在r ...
随机推荐
- 题解:AT_arc182_a [ARC182A] Chmax Rush!
题目传送门 洛谷题解 思路 我们只需要枚举每一个 \(v_i\),对于 \(i\) 后面的 \(v_j\) 如果 \(v_i > v_j\) 进行以下讨论. \(p_i = p_j\) \(p_ ...
- [MySQL] MySQL数据库中唯一标识符(ID)的梳理总结
0 引言 mysql 数据库中有各类id,在近期初步研究 flink cdc .debezium.mysql server id.server uuid.gtid.sesion id/connecti ...
- AI实战篇:Spring AI + 混元 手把手带你实现企业级稳定可部署的AI业务智能体
前言 在之前的内容中,我们详细讲解了Spring AI的基础用法及其底层原理.如果还有小伙伴对此感到困惑,欢迎参考下面这篇文章,深入学习并进一步掌握相关知识:https://www.cnblogs.c ...
- for-each循环陷阱
for-each删除元素报错 public static void main(String[] args) { List<String> list = new ArrayList<& ...
- CSS动画(毛玻璃按钮)
1.整体效果 https://mmbiz.qpic.cn/sz_mmbiz_gif/EGZdlrTDJa4ofJ9W4ibgD5asQcBesp1f1CXVnrQmicnzqDPskBNEQC4ia0 ...
- node.js 安装过程(绿色免安装版)
20220908_node.js 安装过程(绿色免安装版) 1.下载 下载一个长期支持(LTS)版本:https://nodejs.org/en/download/ 我选择绿色免安装版 2.解压 将下 ...
- 5.1 Vim及其安装
通过前面的学习我们知道,Linux 系统中"一切皆文件",因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器. 作为一名 Linux 初学者,你必须熟练掌握 Linux ...
- 2024 xp_CAPTCHA(瞎跑-白嫖版) 4.3最新版安装使用教程
前言 xp_CAPTCHA(瞎跑-白嫖版)是一个免费的burpsuite插件,具有自动化图形验证码识别的功能.在安装的过程中,我发现网上的教程基本都为其较早的版本,已经不具备参考价值.因而我写下本篇博 ...
- 使用flask进行Mock Server模拟接口操作及问题解决
1.flask介绍 flask是一个轻量级的python web 微框架 2.Mock Server介绍 Mock Server是一个开源的模拟服务器,它可以定义和记录API交互,支持各种http方法 ...
- OSG开发笔记(三十三):同时观察物体不同角度的多视图从相机技术
前言 前面的相机hud可以单独显示图形,继续深入研究相机hud,技术就是子视图了,实现该功能的直接技术是从相机技术. 本篇描述osg从相机技术 Demo 相机视口的关键调用 ...