一、引言

在数字化转型浪潮下,企业知识服务体系正经历着深刻变革。如何让用户高效获取所需信息,成为提升产品竞争力和用户满意度的关键。葡萄城作为企业级开发工具与解决方案提供商,长期致力于知识服务体系的建设。本文将系统介绍葡萄城自研 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 智能问答系统,融合了前沿的自然语言处理技术与工程化最佳实践,实现了从传统搜索到智能问答的跨越。我们相信,随着技术的不断演进和用户需求的持续升级,智能知识服务将在企业数字化转型中发挥越来越重要的作用。欢迎业界开发者交流探讨,共同推动智能问答技术的创新与落地!


如需了解更多细节,欢迎访问葡萄城官网或关注我们的技术社区

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

从传统搜索到智能问答:自研 RAG 系统的技术实践与工程落地的更多相关文章

  1. iPad版微信终于来临了 微信5.4版搜索更智能 转账就是发消息

    等待甚久的iPad版微信终于来临了!昨日微信iOS版本更新至5.4.0.16,新增功能包括搜索公众号.识别图中二维码.面对面收钱,同时适配iPad.(微信5.4安卓版重回ios风格 导航菜单都放底栏位 ...

  2. Android之智能问答机器人

    本文主要利用图灵机器人的接口,所做的一个简单的智能问答机器人 实现 由于发送与接收消息都是不同的listView,所以要用有两个listVeiw的布局文件 接收消息布局文件 <?xml vers ...

  3. springboot+lucene实现公众号关键词回复智能问答

    一.场景简介 最近在做公众号关键词回复方面的智能问答相关功能,发现用户输入提问内容和我们运营配置的关键词匹配回复率极低,原因是我们采用的是数据库的Like匹配. 这种模糊匹配首先不是很智能,而且也没有 ...

  4. 智能问答中的NLU意图识别流程梳理

    NLU意图识别的流程说明 基于智能问答的业务流程,所谓的NLU意图识别就是针对已知的训练语料(如语料格式为\((x,y)\)格式的元组列表,其中\(x\)为训练语料,\(y\)为期望输出类别或者称为意 ...

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

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

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

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

  7. 从自动化到智能化,网易杭研的AIOps探索与实践

    在大数据时代下,我们借助机器学习.数据仓库.大数据平台等大数据技术手段,将运维产生的数据进行分析.处理,得出最佳运维策略,以期实现对故障的事先干预,将风险降低到最低,从而降低运维成本,提升运维效率,最 ...

  8. 【新品发布】智能驾驶实车测试系统-VDAS

    智能驾驶技术的迭代研发,需要多种传感器.海量数据.海量场景的支撑.而目前多种传感器Gbit/s级别的数据同步采集.海量数据的快速分析和评估.关键场景的切片和提取,是业界公认的棘手问题. 为了解决上述的 ...

  9. 基于深度学习的智能PCB板缺陷检测系统(Python+清新界面+数据集)

    摘要:智能PCB板缺陷检测系统用于智能检测工业印刷电路板(PCB)常见缺陷,自动化标注.记录和保存缺陷位置和类型,以辅助电路板的质检.本文详细介绍智能PCB板缺陷检测系统,在介绍算法原理的同时,给出P ...

  10. 使用jsonp跨域调用百度js实现搜索框智能提示,并实现鼠标和键盘对弹出框里候选词的操作【附源码】

    项目中常常用到搜索,特别是导航类的网站.自己做关键字搜索不太现实,直接调用百度的是最好的选择.使用jquery.ajax的jsonp方法可以异域调用到百度的js并拿到返回值,当然$.getScript ...

随机推荐

  1. Vitepress+EdgeOne Pages快速迁移旧网站内容

    Vitepress+EdgeOne Pages快速迁移旧网站内容 目录 Vitepress+EdgeOne Pages快速迁移旧网站内容 下载旧网站文章.图片 网站文章转Markdown Vitepr ...

  2. 通用C++ Makefile

    点击查看代码 ///////////////////////////////////////////// CC = g++ CFLAGS=-Wall -O2 TARGET = main SRCS := ...

  3. git push解决 error src refspec master does not match anyerror

    前言 git push origin master git push 时报错: error: src refspec master does not match anyerror: failed to ...

  4. MySQL-事务相关知识

    事务ACID的理解 引入事务的主要目的: 保证数据库从一个一致性状态切换为另一种一致性状态 所有修改要么都保存,要么都不保存 A 原子性 原子性关注单个事务的整体性,需要保证事务中的全部操作是一个单元 ...

  5. 继承的介绍、使用-java se进阶 day01

    1.继承的介绍 2.继承的使用 为什么要使用继承?假如以后要写一个项目,其中程序员一个类,项目经理一个类,Hr一个类,但是这些类的成员都一样 如图 我们会发现这些成员都是重复的,三个类都写重复的成员十 ...

  6. Ubuntu24使用Wine运行Windows程序安装微信

    Ubuntu24使用Wine运行Windows程序安装微信 2024.11.8:好消息!微信发布Linux版本了,微信主站Linux版本客户端下载页面:https://linux.weixin.qq. ...

  7. CH9121default与classical设置方法

    SYN发送间隔调整方法: 网口连接设备后双击设备列表中要配置的设备在扩展参数中单击获取扩展参数,在超时处理模式选项选择Classical然后执行设置扩展参数,最后点击复位模块后生效(仅TCP CLIE ...

  8. Linux浅谈(四)----中断&异常

    简介 CPU中断时操作系统中的两个重要概念,都作用于改变CPU执行的正常流程. 当出现某些特殊情况(如外部设备请求服务.定时器时间到等)时,CPU 暂停当前正在执行的程序,转去执行处理这些特殊情况的程 ...

  9. 使用Python计算汉密尔顿路径

    引言 在图论中,汉密尔顿路径(Hamiltonian Path)是一个经典问题,它在很多实际应用中都有广泛的应用,如网络路由.旅行商问题等.今天,我们将一起探讨如何使用 Python 来计算汉密尔顿路 ...

  10. 🎯Vercel-从零到上线的云端部署神器

    简介 Vercel是一个专注于前端和全栈应用部署的云端平台,由Zeit公司开发.它以零配置部署.全球CDN加速和对主流框架的深度支持为核心优势,成为开发者快速上线项目的首选工具.无论是个人博客.企业官 ...