什么是RAG?

一、什么是 RAG?

AG(Retrieval-Augmented Generation,检索增强生成)是一种让大语言模型(LLM)具备外部知识获取能力的技术。

简单来说:

RAG = 检索(Retrieval) + 增强(Augmented) + 生成(Generation)

它的核心思想:

先从外部知识库中找到相关信息,再把这些信息提供给大模型,让大模型基于这些信息生成答案。

举个例子:

你问 ChatGPT:

"我们公司机器人 SDK 的 TCP 通信协议是什么?"

如果没有 RAG:

用户问题

|

LLM

|

根据训练数据猜答案

LLM 不知道你的公司 SDK,所以可能:

编造答案(幻觉)

给出泛化回答

如果有 RAG:

用户问题

|

检索知识库

|

找到 SDK 文档

|

把文档片段塞给 LLM

|

LLM 根据文档回答

回答可能:

"RobotSDK 使用 TCP 长连接通信,消息采用长度前缀 JSON 协议,客户端通过 request/response future 管理异步调用..."

这就是 RAG。

二、为什么需要 RAG?

LLM 本身有三个问题:

2.1 知识有限

LLM 的知识来自训练数据。

例如:

GPT训练数据

|

|

模型参数

训练结束以后:

不知道你的私人文档

不知道公司代码

不知道最新数据

例如:

2026年的机器人SDK文档

|

|

X

LLM不知道

2.2 容易产生幻觉

LLM 本质:

根据概率生成最可能的文本

比如问:

"我们的Robot类有哪些接口?"

模型可能:

Robot.move()

Robot.stop()

Robot.navigate()

Robot.fly()

最后一个可能根本不存在。

2.3 重新训练成本太高

一种方式:

公司文档

|

重新训练LLM

问题:

成本巨大

周期长

模型容易遗忘旧知识

RAG:

公司文档

|

知识库

|

查询时检索

成本低很多。

三、RAG完整工作流程(离线阶段

RAG分两个阶段:

  1. 知识库构建阶段(Offline)
  2. 用户查询阶段(Online)

1、知识库构建阶段

Step 1:收集数据

来源:

PDF

Word

Markdown

网页

数据库

代码仓库

日志

API文档

例如:

机器人公司:

RobotSDK/

|

├── README.md

├── TCP协议.md

├── API文档.pdf

├── config说明.md

└── source code

Step 2:文档解析(Document Parsing)

把各种格式转换成文本。

例如:

PDF:

Robot SDK支持TCP通信

消息格式:

{

seq:

command:

payload:

}

转换:

Document:

"Robot SDK支持TCP通信..."

Step 3:文本切分(Chunking)

为什么切分?

因为:

LLM上下文有限。

例如:

一本1000页文档:

100万token

不能直接送给LLM。

所以切:

原文


Robot SDK通信协议...


导航模块...


电量模块...


Chunk1

Chunk2

Chunk3

通常:

chunk size:

300~1000 tokens

overlap:

50~200 tokens

Step 4:Embedding向量化

这是RAG最核心的一步。

文本:

Robot支持TCP长连接

输入Embedding模型:

text

|

|

Embedding Model

|

0.12,0.54,-0.23,...

得到:

文本的数学表示

Step 5:存入向量数据库

保存:

Vector DB

id:

001

vector:

0.123,0.55,...

text:

Robot SDK使用TCP协议

metadata:

{

source:"tcp.md",

page:3

}

常见:

数据库 特点
Milvus 大规模向量
FAISS 本地快速
Chroma 轻量
Pinecone 云服务
Weaviate 企业

2、用户查询阶段(在线)

用户:

"RobotSDK如何发送控制指令?"

Step 1:Query理解

原始:

RobotSDK如何发送控制指令?

可能经过:

拼写修正

改写

意图识别

Step 2:Query Embedding

同样:

问题

Embedding模型

0.11,0.53,...

Step 3:向量检索

计算:

问题向量

数据库中的文档向量

Step 4:Rerank(重排序)

为什么需要?

向量搜索只是粗筛。

例如:

Top10:

1 TCP协议

2 MQTT介绍

3 ROS通信

4 HTTP协议

5 Robot API

...

但是:

真正相关:

TCP协议

Robot API

所以使用:

Reranker模型。

Step 5:Prompt增强

把检索结果塞入Prompt。

原始:

用户:

Robot怎么发送控制指令?

变成:

System:

你是机器人SDK专家。

参考资料:


Robot SDK command采用TCP JSON协议

格式:

{

command:"move"

payload:{}

}


User:

Robot怎么发送控制指令?

Step 6:LLM生成答案

LLM:

输入:

问题

相关知识

输出:

Robot SDK通过TCP连接发送JSON command消息。

客户端调用sendCommand接口,

生成command字段并发送到机器人。

相关推荐
yuhulkjv3354 小时前
Claude表格复制到word不再崩溃,AI导出鸭批量导出+格式无损一键搞定
人工智能·ai·c#·word·ai导出鸭
大明者省5 小时前
WSL2 Ubuntu22.04 GPU训练环境配置指南
人工智能·算法·计算机视觉
抱抱宝5 小时前
Agent-study项目教程(03):手写 Mini-ReAct Agent(不依赖框架)
javascript·人工智能·gpt·react.js·prompt·agent
抱抱宝5 小时前
大模型应用开发教程08 | 构建完整 RAG 应用(Chroma/FAISS 实战)
人工智能·gpt·prompt·agent
美团技术团队6 小时前
KDD‘26 美团学术论文精选及KDD Cup‘26 DataAgents赛道冠军思路解读
人工智能
AKAMAI6 小时前
当AI模型超出存储增长时
人工智能·云计算
科技绘图6 小时前
快鲸GEO vs 传统AI搜索优化:全链路自动化与高效内容生产在转化闭环上的对比
数据库·人工智能·自动化
DS随心转小程序6 小时前
ChatGPT 文字怎么转为 word?解析各类转换方案,AI 导出鸭成为高效文档转换新选择
人工智能·chatgpt·word·豆包·deepseek·ai导出鸭
乌恩大侠7 小时前
【AI-RAN】硬件产品:DELL 前传交换机
人工智能·spark·aerial·o-ru·ai-ran