什么是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字段并发送到机器人。

相关推荐
子兮曰4 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
回眸&啤酒鸭4 天前
【回眸】Minicart 电商购物车核心功能落地指南
人工智能
一隅论数智4 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
AI的探索之旅4 天前
97 个 OpenCV 实例(三十):双目立体,从标定到点云
人工智能·opencv·计算机视觉
AlbertZein4 天前
Step-5-Preview 上手实测:3D 游戏、金融分析、网页设计一次跑完
人工智能·aigc
LaughingZhu4 天前
Product Hunt 每日热榜 | 2026-09-19
人工智能·深度学习·神经网络·搜索引擎·百度
美狐美颜SDK开放平台4 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
1点东西4 天前
做了近两年的Agent开发,其实真正要学的就是这五件事
llm·agent·ai编程
wukangjupingbb4 天前
智能网联汽车安全能力框架
人工智能