最近在工作中构建了一套自动的基于文档中心为数据集构建知识库 AI 问答的系统,来提升用户体验和技术支持效率,分享一下在实现过程中的技术选型和架构设计。

背景

先说下背景,我们公司的产品 FinClip 是做小程序全套解决方案的。我们有一个文档中心 https://finclip.com/mop/document/ ,里面几乎存储了我们大部分的面向客户的文档。

所以在构建知识库的时候,我们有以下的数据源

  1. 文档中心的文档 https://finclip.com/mop/document/
  2. 在社区交付过程中,交付整理的问题 QA
  3. 售前和销售在和客户阐述方案的时候,腾讯会议纪要

实现效果

实现效果侧还是还对比较简单,对于用户而言在我们的管理后台实现了一个聊天框,能够回答整个系统内的基本所有的问题,只要数据集有涉及到的

整体架构设计

整个基于 RAG 实现的AI 问答的链路,主要包含以下几个核心部分:

  • 文档中心Gitlab仓库:基于 Gitlab 管理所有技术文档

    • CI Pipeline:在文档中心的文档负责文档更新的自动化处理流程
  • LLM Service:大语言模型服务层,负责文档理解和问答生成,此处会针对源文档进行一次 QA 的拆分
  • FastGPT:向量数据库和知识检索服务
  • 用户交互层:提供统一的问答接口

这种设计带来几个明显优势:

  1. 文档更新自动化,确保知识库实时性
  2. 服务解耦,便于独立扩展和维护
  3. 分层处理提升系统可靠性

文档处理流程

文档处理是整个系统的基础,我们的处理流程如下:

  1. 文档变更触发:通过 Gitlab CI 监听文档更新
  2. 自动化处理:CI Pipeline 自动执行以下步骤:
    • 检测文档增量更新
    • 提取文档内容
    • 进行 QA 拆分,生成问答对
    • 推送到知识库

这个流程确保了知识库能够及时反映最新的文档内容,无需人工干预。

知识库技术选型

在知识库方案选型时,我们主要对比了 FastGPT 和 RAGFlow:

FastGPT 的优势:

  • 开箱即用的向量检索能力
  • 良好的社区支持
  • 简单的部署维护
  • 内置的文本分块策略

Embedding 和 Rerank

我们的向量检索策略采用:

  1. 使用 embedding 模型将文本转换为向量
  2. 通过 ReRank 优化搜索结果相关性
  3. 动态调整检索阈值,平衡召回率和精确度

最终的流程图如下

AI 问答实现

问答系统的核心流程:

  1. 知识检索

    • 用户提问向量化
    • 在知识库中检索相关内容
    • 通过 Rerank 筛选最相关片段
  2. 答案生成

    • 将检索内容作为上下文
    • 通过 LLM 生成自然、准确的回答
    • 添加引用来源,提升可信度
  3. 质量保证

    • 答案相关性评分
    • 兜底策略处理
    • 用户反馈收集

RAG实践 - AI 知识库问答功能的建设的更多相关文章

  1. 简易版AI英文问答程序解决

    第四章的作业和实践题要论印象深刻无疑就是AI的那道题了.不得不说一开始看到题目的时候,我真的蒙了很久. 本题要求你实现一个简易版的 AI 英文问答程序,规则是: 1.无论用户说什么,首先把对方说的话在 ...

  2. AI智能问答助手 AI智能批量文章生成器 网站优化SEO批量内容生成工具 原创文章生成软件

    <AI智能问答助手>   软件基于当下热门的OpenAI的ChatGPT技术,导入问题列表就可以批量生成对应的内容,内容质量高.原创度高.适合对内容生成需求量大的场景,如网站优化.广告文案 ...

  3. 全网最详细中英文ChatGPT-GPT-4示例文档-官网推荐的48种最佳应用场景——从0到1快速入门AI智能问答应用场景(附python/node.js/curl命令源代码,小白也能学)

    目录 Introduce 简介 setting 设置 Prompt 提示 Sample response 回复样本 API request 接口请求 python接口请求示例 node.js接口请求示 ...

  4. UWP开发之Template10实践二:拍照功能你合理使用了吗?(TempState临时目录问题)

    最近在忙Asp.Net MVC开发一直没空更新UWP这块,不过有时间的话还是需要将自己的经验和大家分享下,以求共同进步. 在上章[UWP开发之Template10实践:本地文件与照相机文件操作的MVV ...

  5. AI的新增功能(定义图案)(描边渐变)(图像描摹)5.1

    1.定义图案:打开一个AI素材文件如图: 选择工具拖拽选择这个图案,选择“对象”“图案”“建立”完成图案的建立 此时会弹出图案选项对话框,改变拼贴类型,图案宽高,份数,不透明度,单击"完成“ ...

  6. redis实践:用户注册登录功能

    本节将使用PHP和Redis实现用户注册登录功能,下面分模块来介绍具体实现方法. 1.注册 需求描述:用户注册时需要提交邮箱.登录密码和昵称.其中邮箱是用户的唯一标识,每个用户的邮箱不能重复,但允许用 ...

  7. Ceph 12.2.0 实践osd 智能分组功能

    以前我们需要对ssd和hdd进行分组的时候,需要大量的修改crush map,然后绑定不同的存储池到不同的 crush 树上面,现在这个逻辑简化了很多.以上是官方宣传听起来很不错等到12.2.0稳定版 ...

  8. 新书:《Liferay Portal 6.1最佳实践门户网站建设》

    新书:<Liferay Portal 6.1最佳实践门户网站建设>   <Liferay Portal 6.1门户站点建设最佳实践>是国内第一本全面介绍Liferay Port ...

  9. 苏宁基于Spark Streaming的实时日志分析系统实践 Spark Streaming 在数据平台日志解析功能的应用

    https://mp.weixin.qq.com/s/KPTM02-ICt72_7ZdRZIHBA 苏宁基于Spark Streaming的实时日志分析系统实践 原创: AI+落地实践 AI前线 20 ...

  10. Vue项目实践中的功能实现与要点

    本贴记录项目实践中,各种功能的实现与技术要点,均有待改进. 路由切换的时候,显示loading动画 目前方案是: 在每个页面都手动装载一个loading组件组件的显示依赖vuex里面的一个值 , 在r ...

随机推荐

  1. kaggle数据集某咖啡店的营销数据分析

    因为还处于数据分析的学习阶段(野生Python学者),所以在kaggle这个网站找了两个数据集来给自己练练手. 准备工作 import pandas as pd import os import ma ...

  2. Python-提高-1

    阅读目录 1.GIL(全局解释器锁) 2.深拷贝.浅拷贝 3.私有化 4.import导入模块 5.再议 封装.继承.多态 一.GIL(全局解释器锁) GIL面试题如下 描述Python GIL的概念 ...

  3. mysql 查询两个日期之间所有天数(查询近两个月所有日期)

    本文转自博文:https://blog.csdn.net/qq_42795259/article/details/126722209 遇到一个需求需要查询近两个月所有日期,如下图: 首先实现解决问题如 ...

  4. Kriging 模型 —— 克里金法 —— 最优插值

  5. Python 抓取猫眼电影排行

    import json import re import requests from requests.exceptions import RequestException import time # ...

  6. npm : 无法加载文件 D:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本

    升级node和npm之后,npm run dev 启动一个Vue项目,报错如下: npm : 无法加载文件 D:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本. ...

  7. Linux下使用谷歌输入法

    Linux的中文输入法一直太烂,scim终于出来对googlePinyin的支持了. 安装步骤: 1.安装scim: sudo apt-get install scim 2.从git上checkout ...

  8. 同步工具之Vector

    官网: https://vector.dev/ 用于构建可观察性管道的轻量级.超快速工具 [安装] curl --proto '=https' --tlsv1.2 -sSf https://sh.ve ...

  9. MySQL8.0之特性

    MySQL 8.0 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能.下面我们将简要介绍下 MySQL 8.0 中值得关注的 ...

  10. GitBook之基本使用

    GitBook 简介 GitBook 官网 GitBook 文档 GitBook 准备工作 安装 Node.js GitBook 是一个基于 Node.js 的命令行工具,下载安装 Node.js,安 ...