核心价值

  • 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. MD5 - windows也可以查询某个文件的MD5码

    命令格式 certutil -hashfile 文件名称 md5 示例 Microsoft Windows [版本 10.0.22621.1702] (c) Microsoft Corporation ...

  2. 墨者学院SQL注入(MySQL)的总结:

    ​ 我们打开靶机 ​ 在这个界面我们可以看见在密码的下面有一个停机公告,我们点进去,会发现可以发现这个公告是存在id的,又可以会出现漏洞.所以我们尝试着在id=1的后面加上and 1=1 ​ 我们可以 ...

  3. Cordova基本使用(一)

    简述 Apache Cordova是一个开源的移动开发框架.允许你用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发. 应用在每个平台的具体执行被封装了起来,并依靠符合标准的A ...

  4. Django实战项目-学习任务系统-需求说明

    一,需求说明 在我最近的阅读中,我深深被一些关于智能或系统的小说吸引.这些小说的主角意外获得某种神秘的智能或系统,然后通过完成系统发布的各种任务,逐渐提升自己的知识和能力.即使是普通的屌丝,也能在系统 ...

  5. vue学习一(指令2.v-bind,v-model)

    2.1.v-bind:  单向绑定(修改数据项,标签内容也改变:修改标签内容,数据项不会改变) 给html标签的属性绑定,可以用来动态修改class,简写    v-bind:style    =   ...

  6. python web服务器--WSGI/ASGI协议--web框架,三者之间的关系

    在 Python Web 开发中,Web 服务器.WSGI/ASGI 协议 和 Web 框架 是三个核心组成部分,它们共同协作以实现完整的 Web 应用程序.以下是三者之间的关系和作用的详细讲解: 1 ...

  7. Linux运维面试题之:Root密码忘记如何解决

    目录 6.5 Root密码忘记如何解决 6.5.1 系统自带救援模式 6.5.2 U盘.光盘救援系统 6.5 Root密码忘记如何解决 解决方案有两种:自救,别人救 解决方案 应用场景 1️⃣ 系统自 ...

  8. 虚拟机使用ESXi主机物理硬盘的办法

    虚拟机使用ESXi主机物理硬盘的办法 weixin_33928137 于 2018-06-19 15:22:06 发布 868 收藏 1文章标签: 运维版权 VMware Workstation的虚拟 ...

  9. Redis 原理 - Hash

    Hash 数据结构 使用 ziplist 当同时满足下面两个条件时,使用 ziplist 存储数据 元素个数少于512个 (hash-max-ziplist-entries: 512) 每个元素长度小 ...

  10. 【JDBC第5章】批量插入

    第5章:批量插入 5.1 批量执行SQL语句 当需要成批插入或者更新记录时,可以采用Java的批量更新机制,这一机制允许多条语句一次性提交给数据库批量处理.通常情况下比单独提交处理更有效率 JDBC的 ...