RAG技术详解--那些高质量智能助手背后的技术手段 @ 胡巴 | 星期六,八月 16 日,2025 年 | 4 分钟阅读 | 更新于 星期六,八月 16 日,2025 年

RAG技术详解–那些高质量智能助手背后的技术手段

你是否想过,如何让AI客服精准回答关于你司产品的任何问题?或者,如何搭建一个能真正解决用户疑惑的智能知识库?

如果你对这些问题感兴趣,那么你一定绕不开一个核心技术——RAG

听起来高大上?别怕,今天我们就用最通俗易懂的方式,带你彻底搞懂它!

一、 RAG是什么?

RAG,全称 Retrieval-Augmented Generation,中文直译过来就是“检索增强生成”。

我们可以把它拆解成三个词:

  • 检索 (Retrieval):先去搜索查找。
  • 增强 (Augmented):把找到的内容作为补充材料。
  • 生成 (Generation):结合补充材料,生成最终答案。

说白了,就两步:

  1. 先从资料库里,把相关内容检索出来。
  2. 再基于这些内容,生成精准的答案。

这个“先检索,再生成”的模式,就是RAG的核心思想,也是目前最主流的AI问答解决方案之一。

二、为什么我们需要RAG?一个简单的例子

假设你想做一个智能助手,能回答关于“产品使用手册”的所有问题。

一个最直观的想法可能是:当用户提问时,我把整个几百页的使用手册,连同用户的问题,一股脑儿全丢给大模型(比如Deepseek),让它自己找答案不就行了?

听起来很美好,但现实很骨感。这样做会带来三个致命问题

  1. 模型记不住 (上下文窗口限制):大模型一次能处理的文本长度是有限的(即“上下文窗口”)。一本几百页的手册扔过去,它可能读了后面忘了前面,答案的准确性无法保证。🧠
  2. 成本太高 (推理成本):每次提问都附带这么长的文本,调用大模型的费用会高得惊人。💰
  3. 速度太慢 (推理延迟):处理海量文本需要更长的计算时间,用户体验会非常差。⏳

结论:直接“填鸭式”地喂给模型全部资料是行不通的。我们需要一个更聪明的方法,只把最相关的内容提供给模型——这,就是RAG登场的时刻。

三、RAG的完整工作流程

RAG的整个工作流程可以分为两大阶段:准备阶段(提问前)回答阶段(提问后)

准备阶段:建立你的专属知识库 (提问前)

这个阶段是离线的,在用户提问之前就需要完成。

第1步:分片 (Chunking) 把我们庞大的资料(如产品手册)切分成一个个独立的、有意义的小片段(Chunks)。这就像把一本厚书拆分成一页一页,或者一个一个的段落。

第2步:索引 (Indexing) 为了让这些片段能被快速检索,我们需要为它们建立索引。这个过程又包含两个关键操作:

  • 文本向量化 (Embedding):这是最神奇的一步!我们使用一个专门的“Embedding模型”,把每一个文本片段都转换成一串数字,也就是“向量 (Vector)”。这个向量可以理解为该段文本在数学空间里的“坐标”。语义越相近的文本,它们的向量坐标也越接近。
  • 存入向量数据库 (Vector Database):将每个文本片段和它对应的向量,一起存入一个专门的“向量数据库”里。这个数据库就像一个图书馆,不仅存放了书(原始文本),还记录了每本书的位置(向量),方便快速查找。

至此,我们的知识库就构建完毕了!

回答阶段:智能问答的实现 (提问后)

当用户发来一个问题时,系统会启动以下流程:

第1步:召回 (Retrieval)

  • 首先,将用户的问题也通过Embedding模型,转换成一个“问题向量”。
  • 然后,用这个“问题向量”去向量数据库里进行搜索,找出与它最相似的几个文本片段的向量。
  • 最后,将这些最相似向量对应的原始文本片段提取出来。这个过程,就像根据读者的需求,在图书馆里快速找出几本最相关的书。

第2步:重排 (Rerank) 召回阶段追求的是“快”和“广”,可能会找出一些不那么精准的内容。重排阶段则追求“精”。它会使用一个更强大的模型(Cross-encoder),对召回的片段进行二次筛选和排序,选出与问题相关性最高的几个片段。这好比面试,召回是简历初筛,重排则是精挑细选后的最终面试。

第3步:生成 (Generation) 最后一步!我们将用户原始的问题,加上经过重排后最相关的几个文本片段,一起作为提示(Prompt)发送给大语言模型(如Deepseek)。

大模型会根据这些“参考资料”,生成一个精准、流畅、人性化的答案返回给用户。

四、总结

我们再来回顾一下RAG的整体流程:

准备阶段 (提问前):

  1. 分片:将原始文档切分成小片段。
  2. 索引:将每个片段向量化,并与原文一同存入向量数据库。

回答阶段 (提问后):

  1. 召回:将用户问题向量化,并在数据库中检索出最相似的N个片段。
  2. 重排:对召回的片段进行更精细的排序。
  3. 生成:将用户问题和最终筛选出的片段,一起交给大模型生成答案。

通过这样一套“分片-索引-召回-重排-生成”的组合拳,RAG技术成功地解决了大模型信息滞后、无法获取私有知识以及“一本正经地胡说八道”(幻觉)等问题。它就像是为大模型配备了一个可以随时查阅的、高效的外部大脑,让AI变得更加智能和可靠。

现在,你是否已经明白那些聪明的AI客服背后的秘密了呢?


公众号: 无限递归

alt 搜索公众号:无限递归

Copyright © 2017 - 2025 boboidea.com All Rights Reserved 波波创意软件工作室 版权所有 【转载请注明出处】

avatar

BoBo`s Blog每天进步一点点,能多一点是一点

appdata apt-get bloomfilter channel Chatbot ChatGPT Chrome chsh ClickHouse Context css csv CUDA Cursor DaDa英语 Deepseek defer df docker elasticsearch embedding error ffmpeg fix-missing form gif git GitLab globalproject golang hosts HTTP HTTPS iconv IDE Interface iota Kafka LangChain libssl LLM ln mac mac系统更新 Map MCP MetaMCP mkdir MSYS2 mysql n8n nginx OCR oh-my-zsh Ollama openconnect openssl PAM permission php pip PowerShell puppeteer python rabbitmq RAG RAGFlow redis reflect rsync SD sed shell Slice snowflake space SQL SSH struct syntax_err tensorflow ubuntu ue4 unauthorized unreal4 UV vim virtualbox vpn VSCode Windows x86_64 xcode-select YCM zookeeper zsh 上海积分 主从复制 事务 二进制安全 交叉熵 人力资源 代码工具 代码编辑助手 代码评审 以太坊 信息论 全民哀悼 内存管理 内容创作 分屏 分支删除 加密货币 区块链 匿名函数 协作系统 协议设计 启动盘 品种 图片转视频 均线 夏天 夏季 实用技巧 密码修改 工作流 工作流触发 工具 工具管理 布局识别 开发工具 开发环境 循环 微信公众号 批处理 批量处理 批量替换 批量重命名 挖矿 接收器 效率工具 教程 数据分析 数据合并 数据处理 数据查询 数据类型 数据结构 数据聚合 数据转换 文件同步 文件管理 文本向量化 文本向量检索 文本识别 日志切分 智能体 智能助手 智能合约 替代方案 本地部署 概率论 比特币 水果 治疗 流量分析 浏览器调试 消息队列 游侠源码网 版本控制 狗狗币 生活 用户行为 电视 症状 磁盘清理 笔记本技巧 系统配置 编程语言 编译PHP 编辑器 网站统计 网络 自动化 自动化工作流 自动化工具 自动提交 自动签到 节点 获取方式 虚拟机 西瓜 记忆 购买指南 跨平台 软连接 运维技巧 闭包 集成 雪花算法 零代码 面瘫 鞋子 项目无法编译
基本信息
  • 姓名:bobo
  • 花名:胡巴
  • 性别:男
  • 血型:O型
  • 星座:白羊座

联系方式

  • 所在地:上海
  • QQ:279250819
  • 微信号:wanghuiwoshinideyou
  • 电子邮件:279250819@qq.com

博客地址

公众号

alt 无限递归

工作经历
  • 2022.5 - 2025-08-08

    • 公司:乐府互娱
    • 职位:高级平台服务器开发工程师
    • 荣誉:
      • 得到公司Leader的高度认可
    • 所作所为:
      • 优化SDK接入流程,提升接入效率:通过重构SDK后端接入代码,提炼接入模板,显著提升接入时间,由7天缩短到4天
      • 参与公司两款游戏大推,保障SDK服务稳定:通过大推前代码持续review,大推前压测,发现问题并及时修复,设计告警机制,包括飞书及时告警及grafana监控告警及时发现服务问题并修复上线,保障大推期间服务稳定。同时能够和游戏研发、游戏运营、游戏运维团队保持紧密配合,保障大推期间服务稳定
      • 推动cursor在项目组内的应用,提升开发效率:通过AI工具分享,实战演示等,提升项目组内AI工具使用率,进而提升整个项目组开发效率,使IOS开发再也不惧怕Unity开发
      • 利用n8n搭建数据查询助手,提升财务工作效率:利用n8n+AI搭建了对账查询工作流,免去了财务与技术的沟通成本,至少使双方每月沟通时间成本减少2小时
      • 参与公司千目广告系统的开发及维护,提升广告系统稳定性,为公司发行买量业务保驾护航:异步任务优化
  • 2019.6 - 2022.4

    • 公司:萌推(上海突进网络科技有限公司)
    • 职位:中级PHP工程师 & 初级golang工程师
    • 荣誉:
      • 绩效A连续得主
      • 月度之星
      • 优秀个人奖
    • 所作所为:
      • 利用ES优化OMS、MMS管理系统商品列表查询
      • 利用消息队列、Redis、乐观锁优化商品审核流程
      • 利用Redis对商家端接口进行有效限流
      • 优化商品相关表索引,提升SQL查询速度
      • 商品中台构建,统一商品相关操作
      • 大表优化(数据分离、分表、大字段拆分)
      • 掌握所有商品核心流程
  • 2018.5 - 2019.5

    • 公司:DaDa英语(上海卓赞教育信息科技有限公司)
    • 职位:中级PHP开发工程师
    • 荣誉:无
    • 所作所为:
      • 利用ES优化教师CMS系统统计数据接口至500ms内
      • 工单系统开发及持续优化
      • 教师CMS系统的功能开发及持续优化
  • 2018.3 - 2018.5

    • 公司:波奇(上海)信息科技有限公司
    • 职位:初级PHP开发工程师
    • 荣誉:同下
    • 所做作为:如下
  • 2016.7 - 2018.3

    • 公司:光橙(上海)信息科技有限公司
    • 职位:初级PHP开发工程师
    • 荣誉:
      • 年度最佳进步奖
    • 所作所为:
      • 利用Redis提升商详接口最佳响应速度至50ms内
      • 利用Redis提升双11活动页可承受QPS至500以上
      • 利用Redis对接口进行简单限流
      • 与小伙伴合作提升搜索质量(ES初识)
      • 其他C端接口的开发及优化
      • B端商城老页面的维护及优化
SKILLS

编程语言

  • PHP
  • Golang
  • Shell
  • JAVA
  • JS
  • HTML\CSS

数据库

  • MySQL
  • Redis
  • Clickhouse

消息中间件

  • RabbitMq
  • Kafka

文档撰写

  • Swagger
  • Markdown

技术框架

  • Laravel
  • gin

搜索引擎

  • ElasticSearch

抓包工具

  • Charles