从传统搜索到智能问答:葡萄城自研 RAG 系统的技术实践与工程落地
一、引言
在数字化转型浪潮下,企业知识服务体系正经历着深刻变革。如何让用户高效获取所需信息,成为提升产品竞争力和用户满意度的关键。本文将系统介绍葡萄城自研 RAG(Retrieval-Augmented Generation,检索增强生成)智能问答系统的技术创新、架构设计与工程实践,分享葡萄城在智能搜索与问答领域的探索与思考。
二、项目缘起:从搜索到智能问答的需求升级
1. 现状与挑战
葡萄城已建立了完善的知识服务体系,包括标准化文档、技术社区、搜索平台等。现有"葡萄城搜索中心"支持跨平台内容检索,覆盖官网、博客、社区、视频等多种内容源。然而,随着知识库规模的扩大和用户需求的提升,传统基于关键词的搜索方式暴露出诸多不足:
- 用户难以精准定位帮助文档中的功能说明;
- 技术支持人员难以快速查重和定位历史解决方案;
- 方案搜寻效率低,用户体验不佳。
2. 技术探索与自研动因
随着大语言模型(LLM)技术的快速发展,基于 RAG 的智能问答成为提升知识服务能力的理想路径。在调研了多种开源与商业化 RAG 方案后,发现它们难以直接适配葡萄城多源异构的数据结构和业务需求。为此,我们决定自研 RAG 系统,目标包括:
- 适配多样化内容结构(如帮助文档、论坛帖子等);
- 支持高频动态更新,保障知识库时效性;
- 灵活扩展,满足未来产品演进需求;
- 性能与维护可控,便于长期运维。
三、创新点:QA 预生成与"问题对问题"匹配
1. 传统 RAG 的局限
传统 RAG 方案通常将用户问题与文档段落直接匹配,但用户提问多为简洁疑问句,文档内容则为陈述性描述,二者在语义表达上存在结构性差异,导致检索准确率受限。
2. 预生成 "QA 对"
基于大语言模型的信息抽取能力,提出了"问题与问题匹配"的创新思路:
- 利用 LLM 为每段文档生成"预设问题",将原始文档转化为多个 QA 对(问题+答案);
- 用户问题与预设问题进行语义一致的精准匹配,显著提升检索效果;
- 每个 QA 对还配有详细答案(Full Answer)和上下文摘要(Summary),为后续生成环节提供丰富的上下文。
这种方式不仅解决了语义错位问题,还能将一篇文档拆解为多个知识点,极大提升了知识库的颗粒度和检索相关性。
四、产品设计:融合搜索与智能问答的极致体验
1. 界面设计
我们摒弃了传统对话式 AI 助手的设计,转而采用"传统搜索界面 + 智能问答"的混合方案:
- 首页(Home):聚焦搜索,支持产品切换,输入框简洁直观;
- 搜索页(Search) :顶部导航+产品切换器+搜索框,智能回答区域采用打字机效果逐字输出,搜索结果分为"全部/帮助文档/求助中心/专题教程"四个选项卡,支持数量提示与禁用。
2. 智能回答与多轮对话
- 智能回答区域支持加载动画、逐字生成、停止生成、复制、追问等操作;
- 支持多轮追问,自动折叠历史内容,保持上下文连贯;
- 回答区提供"有用/没用"反馈,便于后续优化。
3. 搜索结果优化
- 选项卡显示结果数量,无结果时自动禁用;
- 帮助文档类结果支持"展开更多"查看详细答案,无需跳转原文;
- 搜索结果无分页,提升信息获取效率。
五、技术架构:三阶段 RAG 流程与多通道混合检索
1. 架构总览
系统采用典型的三阶段 RAG 架构:
- 构建(ETL):文档采集、QA 对生成、向量化、入库;
- 检索(Retrieval):多通道混合检索(稀疏+稠密),RRF 融合排序;
- 生成(Generation):基于 LLM 和检索结果生成自然语言回答。
2. 知识构建(ETL)
- 支持多源内容采集(帮助文档、论坛、API 文档等);
- 基于 LLM 生成结构化 QA 对,人工抽检保证质量;
- 向量化采用稀疏(BM25)+稠密(Dense Vector)双通道,支持前缀机制区分不同文档场景;
- 每条知识条目包含问题、答案、详细答案、摘要、链接、标题、分类、时间等丰富元数据。
3. 检索机制
- 混合检索策略:BM25(关键词)+ Dense(语义)双通道,分别检索问题和答案字段;
- RRF(Reciprocal Rank Fusion)融合排序,提升相关性与多样性;
- TopK 策略,最终返回最优结果集。
4. 生成机制
- LLM 结合用户问题与检索结果生成自然语言回答,附带文档链接;
- 支持"思考模式",输出中间推理过程,增强信任感;
- 多轮对话场景下,自动识别用户意图并改写问题,保证上下文连贯。
六、工程落地:高可用、可扩展的系统实践
1. 部署架构
系统分为两大模块:
- 知识检索与问答服务:Qdrant 向量数据库、MySQL 日志与反馈、Server 应用(API)、Client 应用(前端)、第三方 LLM 服务接入;
- 知识库构建服务(ETL):定时任务驱动的文档采集、QA 生成、向量化与入库,支持全量与增量更新。
2. 请求限流与熔断
- 采用移动窗口算法实现多维度限流(接口/时间),防止突发流量冲击;
- 支持熔断与降级机制,保障系统稳定性。
3. 性能与监控
- 检索性能:2 秒内返回结果,支持异步加载;
- 生成性能:依赖 LLM,平均 30 秒内完成;
- 全链路监控:请求成功率、响应时间、LLM 调用、向量库查询等多维度指标。
4. 用户体验优化
- 前端界面简洁直观,支持 Markdown 展示详细答案;
- 多轮对话与上下文记忆,提升连续交互体验;
- 用户反馈机制完善,所有反馈入库用于后续优化。
七、落地效果与未来展望
1. 实际应用成效
- 首批覆盖活字格、Wyn、SpreadJS、GcExcel 四大核心产品,支持帮助文档与技术社区内容;
- 日活用户数、提问频次、热门问题分布等数据持续增长;
- 答案准确率与用户满意度显著提升,系统稳定性良好。
2. 持续优化方向
- 拓展更多内容源(API 文档、视频、插件等);
- 优化检索与生成策略,提升响应速度与准确率;
- 深化用户反馈分析,驱动系统持续迭代;
- 探索模型微调与新功能(如图像复制、链接分享等)。
八、结语
葡萄城自研 RAG 智能问答系统,融合了前沿的自然语言处理技术与工程化最佳实践,实现了从传统搜索到智能问答的跨越,帮助葡萄城更好的"赋能开发者"。我们相信,随着技术的不断演进和用户需求的持续升级,智能知识服务将在企业数字化转型中发挥越来越重要的作用。欢迎业界开发者交流探讨,共同推动智能问答技术的创新与落地!
项目 Github 地址
https://github.com/GrapeCity-AI/gc-qa-rag
项目实现效果

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
懒懒笔记 | 课代表带你梳理【RAG课程 11&12:优化和加速你的RAG】
Yo bro!想我了吗?😏 今天懒懒课代表要带大家回顾第11讲和第12讲的内容——如何让你的RAG系统跑得更快更稳!🚀 在前面的课程中,我们学习了通过多节点组、多路召回等策略提升RAG系统的召回效果。但是!效果提升的同时也带来了新的问题: 🙋♂️“系统启动太慢了,每次都要重新加载文档...” 🙋♂️“检索响应时间太长,用户体验不好...” 🙋♂️“大模型推理速度跟不上...” 可见,打造一个高性能的RAG系统,优化是必不可少的环节!第9、10讲正是为此而来——手把手教你如何加速你的RAG~ 持久化存储,告别漫长的冷启动 为什么需要持久化? 传统RAG系统将所有数据存在内存中,导致: 📌系统重启后数据丢失 📌每次启动都要重新处理文档 📌内存资源浪费严重 解决方案就是——向量数据库!LazyLLM原生支持两种存储后端: 实测对比 我们对三种存储进行了性能测试(文档量1614个节点): 使用Milvus后,二次启动时间直接节省了近90%!这效率提升,爱了爱了~🔝 高效检索,向量索引的魔法 前面我们讲了持久化存储能提升系统启动速度,那检索响应速度慢怎么办...
- 下一篇
Proxy-Go v15.1 发布,sps 的 socks5 和 http 代理,新增域名嗅探功能!
Proxy 是 golang 实现的高性能 http、https、websocket、tcp、udp、socks5 代理服务器,支持正向代理、反向代理、透明代理、内网穿透、TCP/UDP 端口映射、SSH 中转、TLS 加密传输、协议转换、DNS 防污染智能代理、前置 CDN/Nginx 反代、代理连接重定向、API 动态调用上级代理、限速限连接数。提供全平台的命令行版本,友好易用的 Windows&Linux&macOS 控制面板,强大的安卓版。 更新内容 1、sps 添加域名嗅探功能,支持在流量上报中获取客户端请求的域名。 更新: v10.7 及以后版本,执行:proxy update,即可完成快速更新到最新版。 特色功能 链式代理,程序本身可以作为一级代理,如果设置了上级代理那么可以作为二级代理,乃至 N 级代理。 通讯加密,如果程序不是一级代理,而且上级代理也是本程序,那么可以加密和上级代理之间的通讯,采用底层 tls 高强度加密,安全无特征。 智能 HTTP 代理,HTTPS 代理,SOCKS5 代理,会自动判断访问的网站是否屏蔽,如果被屏蔽那么就会使用上级代...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS关闭SELinux安全模块
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS8编译安装MySQL8.0.19
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Hadoop3单机部署,实现最简伪集群