核心价值

  • QA 预生成技术

采用创新的问答对生成方法,相比传统文本切片技术,能够更精准的构建知识库,显著提升检索与问答效果。

  • 企业级场景验证

已在真实业务场景中落地应用,实现从传统搜索到智能搜索的无缝升级,用户接受度与满意度明显提升。

  • 开源实践支持

提供完整技术教程,并开放源代码,助力开发者快速搭建易于落地的高质量企业级 AI 知识库系统。

概述

GC-QA-RAG 是一款面向葡萄城产品生态(包括 活字格WYNSpreadJSGCExcel 等)的检索增强生成(RAG)系统。该系统通过智能文档处理、高效知识检索、精准问答等功能,有效提升了知识管理效率和用户支持体验。

本系统创新性地采用了 QA 预生成技术,克服了传统文本切片方法在知识库构建中的若干局限性。经过实践验证,该技术方案能够显著提升检索效果,可为 RAG 领域的技术实践提供新的思路。

葡萄城秉持“赋能开发者”的理念,现将 GC-QA-RAG 项目完整开源:

Gitee地址:https://gitee.com/grape-city-ai/gc-qa-rag

Github地址:https://github.com/GrapeCity-AI/gc-qa-rag

对于初学者,我们提供了详细的入门指南,帮助您快速掌握 QA-RAG 系统的构建方法

对于面临传统架构挑战的开发者,我们的架构设计文档可为您提供参考,助力现有知识库的优化升级

本项目也分享了葡萄城在 RAG 知识库产品设计方面的实践经验,希望能为相关领域的产品和技术探索提供有益参考。

葡萄城 AI 搜索地址:https://ai-assist.grapecity.com.cn/

项目背景

作为企业级解决方案提供商,葡萄城积累了大量的产品用户。在日常使用中,用户需要快速获取准确的产品信息,但现有帮助文档和技术社区存在以下挑战:

内容分散在多个平台(约 4000 篇文档、2000 个教程帖和 50000 个主题帖)

传统关键词搜索效果有限,难以满足精准查询需求

基于 AI 大模型技术,我们开发了 GC-QA-RAG 系统,旨在:

提供更智能、高效的产品问题解答服务

优化技术支持流程,提升服务效率

查看项目背景了解更多。

产品设计

GC-QA-RAG 采用"传统搜索界面+智能问答"的混合设计模式,旨在结合搜索引擎的高效性与 AI 的智能化能力。经过对对话式 AI 助手的深入评估,我们发现传统搜索界面更符合用户对信息获取效率的核心需求,同时通过智能回答区域提供 AI 增强的交互体验。

查看产品设计了解更多。

核心功能

  • 双页面结构:简洁的 Home 页聚焦搜索入口,Search 页呈现智能回答与分类搜索结果
  • 智能问答系统:支持打字机效果的逐字输出,提供追问功能实现有限的多轮对话
  • 优化搜索结果:

    -- 四类选项卡分类展示(全部/帮助文档/求助中心/专题教程)

    -- 预生成详细答案支持"展开更多"查看

    -- 无分页设计提升浏览效率
  • 交互增强:

    -- 回答质量反馈(有用/没用)

    -- 一键复制文本/图像

    -- 实时显示各类结果数量

用户体验

产品通过清晰的界面层级和智能化的交互设计,在保持搜索效率的同时提供 AI 增强功能。默认的单次搜索模式确保响应速度,追问功能满足深度探索需求,而可视化的上下文管理帮助用户保持操作认知。这种平衡设计使用户既能快速获取核心信息,又可按需展开更深入的智能交互。

技术架构

GC-QA-RAG 采用三层架构设计,确保系统清晰高效且可扩展:

构建层 - ETL

文档解析:支持多种类型文档(产品说明文档,论坛帖子等)

QA 生成:基于文档内容自动生成问答对

向量化:将文本转换为高维向量,支持语义检索

索引构建:建立高效的检索索引与有效负载

检索层 - Retrieval

问题改写:优化用户查询,提高检索准确率

混合检索:结合关键词和语义检索

RRF 排序:基于相关性排序算法优化结果

结果融合:整合多源检索结果

生成层 - Generation

问答模式:对接文本大模型,直接回答用户问题

思考模式:对接推理大模型,先思考再回答

多轮对话:支持上下文相关的连续对话

答案优化:确保回答的准确性和可读性

查看技术架构了解更多。

技术挑战

在构建企业级 RAG 知识库系统的实践中,我们面临着知识表征方面的基础性挑战。这些挑战主要源于知识本身固有的时空特性,这在当前 AI 技术发展阶段呈现出显著的解决难度。

空间语义歧义问题

问题描述:

产品不同模块中存在功能命名冲突现象。以活字格低代码平台为例,其文档中会出现以下情况:

  • 页面模块的"数据透视表"功能
  • 报表模块的"数据透视表"功能
  • 表格报表模块的"数据透视表"功能
  • Excel 的"数据透视表"功能(大模型内部知识)

影响:

这种命名冲突不仅给技术支持人员带来困扰,对 AI 系统的语义理解也构成了显著挑战。

时序版本管理问题

问题描述:

同一功能在不同版本中存在特性差异,典型表现为:

知识库中收录了某个功能的多个版本文档

用户可能仍在使用旧版本,仅需了解特定版本的功能特性

影响:

这种版本差异使得准确匹配用户实际环境中的功能特性变得复杂,增加了知识检索的难度。

落地效果

GC-QA-RAG 系统在实际业务场景中取得了令人鼓舞的应用成效,主要体现在以下几个方面:

  • 用户接受度与粘性

系统上线后,用户访问量呈现稳步增长并逐渐趋于稳定,表明产品已经形成了稳定的用户群体和使用习惯。用户留存数据反映出较高的使用粘性,许多用户已将系统作为日常求疑解答的工具。

  • 持续的产品优化

我们建立了完善的用户反馈机制,定期收集来自终端用户和技术支持团队的使用体验和改进建议。这些宝贵的实践反馈为系统迭代提供了明确方向,推动产品功能持续完善。

  • 用户群体认可度

系统获得了用户群体的高度评价,其背后的技术创新思路也引起了专业开发者用户的广泛关注。技术原理和实现方案成为客户咨询探讨的热点,多个客户与团队表示希望借鉴相关经验。

  • 业务价值体现

从实际使用效果来看,系统显著提升了技术支持效率和用户自助服务能力。知识获取革新带来可感知的流程优化,用户正向评价充分印证其成效。

这些成果不仅验证了产品和技术路线的可行性,也为后续发展奠定了坚实的基础。同时,我们相信 QA 预生成方案对文档型知识库具有普遍的参考价值。我们将继续秉持开放的态度,与用户社区和专业开发者携手合作,共同推动技术的不断进步。

查看落地效果了解更多。

基于预生成 QA 对的 RAG 知识库解决方案的更多相关文章

  1. 管正雄:基于预训练模型、智能运维的QA生成算法落地

    分享嘉宾:管正雄 阿里云 高级算法工程师 出品平台:DataFunTalk 导读:面对海量的用户问题,有限的支持人员该如何高效服务好用户?智能QA生成模型给业务带来的提效以及如何高效地构建算法服务,为 ...

  2. C#:通过Visual Studio项目预生成命令获取SVN版本号

    之前有一个winfrom项目,想要通过获取SVN版本号作为程序的内部编译版本号.网上也有各种方法,但没有一篇行得通的方法.于是我经过一系列研究,得出了一些经验,特总结成一篇博客. 方法一:通过SVN命 ...

  3. Linux下c基于openssl生成MD5的函数

    Linux下openssl提供了一系列哈希及加密的函数,如果调用openssl提供的MD5函数生成任意字符串的MD5呢?下面提供了一段代码实现Linux下c字符串生成md5的函数. 具体代码: 1 2 ...

  4. kbmMW基于硬件生成随机数

    按作者的说法,Delphi提供的生成随机数不是真正随机的,因为他是根据种子计算的,即种子+算法生成的随机数,如果被人知道原始种子值和算法的调用次数,则可以重现随机数,因此在安全领域,这是不安全的.同时 ...

  5. TensorFlow练习7: 基于RNN生成古诗词

      http://blog.topspeedsnail.com/archives/10542 主题 TensorFlow RNN不像传统的神经网络-它们的输出输出是固定的,而RNN允许我们输入输出向量 ...

  6. 根据wsdl,基于wsimport生成代码的客户端

    根据wsdl,基于wsimport生成代码的客户端 wsimport是jdk自带的命令,可以根据wsdl文档生成客户端中间代码,基于生成的代码编写客户端,可以省很多麻烦. 局限性:wsimport   ...

  7. c#生成方案里预生成拷贝文件

    我们在做项目时,可能是多人合作,这样每个人的目录层次级别是不一样的,如果用VS自带的OUTPUT输出目录,改变路径,把DLL集中生成到一个文件夹,那么不同人的机器上结果是不一样的,这就造成了,我这台机 ...

  8. 基于wsimport生成代码的客户端

    概述 wsimport是jdk自带的命令,可以根据wsdl文档生成客户端中间代码,基于生成的代码编写客户端,可以省很多麻烦. wsimport命令 wsimport的用法 wsimport [opti ...

  9. day104:MoFang:个人中心页面&flask-admin&基于faker生成仿真数据

    目录 BUG:登陆跳转并解决页面卡顿现象 1.前端显示个人中心页面 2.flask-Admin构建和配置后台运营站点管理用户信息 3.基于Faker生成仿真测试数据 BUG:登陆跳转并解决页面卡顿现象 ...

  10. Atitit 基于sql编程语言的oo面向对象大规模应用解决方案attilax总结

    Atitit 基于sql编程语言的oo面向对象大规模应用解决方案attilax总结 1. Sql语言应该得到更大的范围的应用,1 1.1. 在小型系统项目中,很适合存储过程写业务逻辑2 1.2. 大型 ...

随机推荐

  1. 机器学习 | 强化学习(4) | 无模型控制(Model-Free Control)

    无模型控制(Model-Free Control) 无模型预测概论 上一节课: 无模型预测 用于估计一个未知马尔科夫决策过程的价值函数 这节课 无模型控制 最优化一个未知马尔科夫决策过程的价值函数 一 ...

  2. vue+elementUI 表格操作按钮添加loading

    前言 表格操作栏,某个操作需要异步请求才能做跳转等 方案 整个列表每行都加一个loading字段,不够优雅 利用$set方法 改变当前行当前按钮loading,可行(代码如下) //按钮 row.lo ...

  3. js回忆录(3) -- 循环语句,前后缀运算符

    计算机对于大批量数据的处理速度比起人类不知道快了多少,因此对于重复的操作,使用循环语句处理是很方便的,对于我们前端来说,给同一标签的元素绑定事件啦,tab切换啦,左右联动效果啦,等等都可以使用循环语句 ...

  4. 5个步骤完成 Vue3 开发调试工具安装教程

    Vue3 开发调试工具安装教程 5个步骤 第一步:点击浏览器右上角,更多工具 – 扩展程序 第二步:点击右上角 – 开发者模式 开关 第三步:点击 "添加已解压的扩展程序" 第四步 ...

  5. Vite项目入口文件

    官方文档:https://cn.vitejs.dev/guide/#index-html-and-project-root

  6. AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗

    最近在研究AI Agent如何调用三方API,整理了一篇文章,分享给大家. 调用三方 API(Function Calling)不是通过提示词(Prompt)来实现的,而是通过函数调用机制(Funct ...

  7. mac 触控板 三指拖动

    1. 打开系统偏好设置 点击屏幕左上角的苹果图标(),选择"系统设置". 2. 打开指针控制 在系统偏好设置窗口左侧栏中,点击"辅助功能",然后在右侧列表中, ...

  8. Laravel 配置连接多个数据库以及如何使用

    目录 配置连接 配置 .env 文件 配置 \config\database.php 文件 使用 Schema Query Eloquent 配置连接 配置 .env 文件 /* 这部分是默认的数据库 ...

  9. 大型通用电子制造执行系统(MES)

    ​ 简介: 系统参考西门子MOM智能制造Opcenter工业软件制造执行系统Camstar电子套件人机料法环数据建模业务对象和车间生产执行事务逻辑,采用面向对象分层设计与C#编程开发:包含电子制造企业 ...

  10. 接口介绍以及定义和使用--java进阶day02

    1.接口介绍 日常生活中有很多接口,比如手机数据线的接口和手机充电器的接口 我们转换视角,站在设计者的角度思考接口,接口体现出规则,手机的接口大小和数据线的接口大小必须一致,各种接口的大小都要一致,都 ...