NeuralOS
GuideIntermediate

不玩虚的 RAG · 什么时候你真的需要它(什么时候纯属烧钱)

如果你跟着这个系列走到了这里,你已经给你的 AI 装上了记忆,也学会了不丢工作成果。下一级台阶出现在你的 AI 要处理海量信息的时候:几十份 PDF、一本超厚的手册、各种转录稿、你整个业务的资料库。这正是 RAG 大放异彩的地方:与其每次都把所有东西一股脑塞给 AI(token 贵得吓人),不如只把相关的小片段递给它——这里能帮你省下大把的钱。但有一个几乎没人愿意说的扎心真相:如果你的信息量很小,搭建 RAG 只会把自己搞复杂、还多花冤枉钱。在这份指南里,你会用大白话搞懂 RAG 到底是什么、它为什么省 token、判断该不该用的确切规则(出自 Anthropic 自己),以及按你水平分层的三种实现方式:零代码、用开源仓库、以及超级应用级别的 RAG——就是我们自己内部用的那一套。不玩虚的,按顺序,一步一步来。

Jun 19, 202612 min
你正处在这个系列的第 3 级台阶
这份指南默认你已经看过[给你的 AI 装上记忆](/recursos/memoria-para-tu-ia-herramientas)(第 1 级)和 [GitHub](/recursos/guarda-todo-en-github-antes-de-que-la-ia-lo-rompa) 那一篇(你的安全网)。这里我们再往上迈一级:当信息量对聊天窗口来说太多时该怎么办。你不需要会编程。

什么时候会出现这个需求?(那个确切的时刻)

这个需求出现在一个非常具体的时刻:当你的 AI 要同时处理大量信息并开始出错的时候。典型信号:你上传了 30 份 PDF,AI 却「忘掉」了其中一半;你把一本长手册贴给它,它回答时张冠李戴或者干脆瞎编;又或者你每次开新对话都得把同一份大文档再贴一遍,因为它记不住。这时候就会有人跟你说「你需要一个 RAG」。

这份指南要治的是双重痛点
痛点有两个,不是一个。第一个:你的 AI 瞎编或无视你的长文档,或者因为反复把整份文档塞进去而让你的 token 账单爆表 → 又贵又不靠谱。第二个正好相反:因为怕内容不够用,你搭了一个根本不需要的 RAG → 白白背上基础设施和复杂度。RAG 用对了能解决第一个(还能省很多钱);用错了,就变成第二个。这份指南给你一条判断准确的规则。

用大白话讲 RAG(一个技术词都不用)

RAG 意思是「检索增强生成」。听着挺吓人,但道理很简单:与其每次都把你所有的文档塞给 AI(又贵,文档一多还根本塞不下),不如把文档单独存起来,当你提问时,让一个搜索器只检索出相关的小片段递给 AI,让它拿这些来回答。先搜索,再回答。

这样想 · 图书管理员
没有 RAG,你每次提问都在让你的 AI 把整座图书馆从头读一遍——又慢又贵,还会读晕。有了 RAG,你就有了一位熟悉书架的图书管理员:你一问,他跑过去,把管用的那 3 本书取来,AI 就拿这些来回答。它不用读全部:只取刚好够用的。

额外的一大好处:因为 AI 是基于你文档里具体的片段来回答的,它能给你标出出处(「这来自手册第 12 页」)。这正是杜绝瞎编的关键:如果内容不在你的文档里,它就不会给你编出来。

最大的好处:RAG 能省下海量 token(前提是语料库够大)

这里就是 RAG 存在的主要原因,而且分量不轻:省钱。你喂给 AI 的每一个字都要花 token,而 token 就是钱。如果你有 5.000 页文档,每次提问都把它整份贴进去,你会付出一大笔(很多时候还根本塞不下)。RAG 解决的就是这个:与其发 5.000 页,不如只发真正能回答你问题的那 3 到 4 个小片段

一笔账就说清楚了
没有 RAG:5.000 页 × 每次提问 = 每次都是好几千 token。有了 RAG:只发相关片段 = 几百个 token。结果一样,成本只是零头。正因如此,RAG 才是让 AI 在不把你搞破产的前提下用上大体量信息的标准做法。这份节省是真实且持续的……前提是你的语料库确实够大。如果它很小,这笔账就反过来了(下面的黄金法则会讲到)。

为什么叫「chunks」?(RAG 的关键零件)

chunk 在英文里意思是「块」或「片段」。它是 RAG 的核心零件,所以值得搞懂。你的文档并不是整份存下来的:而是被切成一个个小片段——每个 chunk 通常是一段或几段话——每个片段还会连带一个类似「含义指纹」的东西一起存下来。

为什么要切块,而不是整份存文档?
因为当你提问时,你不希望 RAG 给你搬来一本 300 页的书——你要的是回答问题的那一个确切段落。切成 chunks 就能取来正是那个东西:管用的那个小而精准的单元,而不是整份文档。噪音更少、回答更准,token 也少得多。这正是 RAG 既精准又便宜的原因。

黄金法则 · 你真的需要 RAG 吗?

这里有一个几乎没有哪个「大师」会告诉你的数据,而它出自 Anthropic 自己(Claude 的创造者)。这条规则慷慨得出乎意料:

Anthropic 的原话
「如果你的知识库小于 200.000 个 token(大约 500 页材料),你完全可以直接把整个知识库放进你给模型的提示词里,不需要 RAG。」翻译一下:如果你所有的材料能装进约 500 页,你就不需要 RAG。把所有东西贴给 AI 就完事了。更简单、更精准,而且有了今天的「prompt caching」,也更便宜。

为什么这么重要?因为对大多数项目来说,500 页已经非常多了。你的品牌手册、你的模板、你业务的各种规章制度、几本书……通常都装得下。而只要装得下,搭 RAG 就是无缘无故给自己找麻烦。RAG 是给你真的超出这个体量时用的:超大的资料库、成千上万份文档、时时刻刻在变的数据。

你(真的)需要 RAG,如果……
你的材料装不进约 500 页(成千上万份文档、一个大型数据库、好几年的转录稿)。
信息经常在变,而你不想每次都把全部重贴一遍。
你正在给很多用户打造一个查询大体量语料库的应用(比如一个能就你全部文档作答的助手)。
你需要系统化、大规模地标注出处
你不需要 RAG(省了这份折腾),如果……
你的材料能装进约 500 页 → 直接贴进上下文里。有了 prompt caching,重复贴很便宜——比搭 RAG 还划算。
你只是想让 AI 记住你的规则和你的项目 → 那是记忆(第 1 级),不是 RAG。
你只有一小把文档,偶尔查一查 → 需要时上传到聊天里就行。
你才刚刚起步 → 几乎可以肯定你还在 RAG 下面一两级台阶。
养成判断的习惯(最重要的一点)
每次要往上升一级之前,把这个问题变成一种本能反应:「这东西装得进一次对话吗,还是真的太多了?」别为了赶时髦往上升。从简单的起步(记忆/上下文),只有当下面那级台阶真的不够用了才升到 RAG。这个问题会一次又一次帮你省下时间和金钱。

完整的阶梯(让你看清 RAG 在哪一级)

RAG 既不是第一步也不是最后一步——它是阶梯上的一级。按顺序往上爬,别为了赶时髦跳级:

从简单到强大
1 · 记忆/上下文 —— 把你的规则和项目放进一个文件或聊天里。几乎适用于一切场景。(本系列第 1 级。)
2 · 全部贴进去 + caching —— 如果材料能装进约 500 页,就整份塞进去。不用 RAG。
3 · 零代码 RAG —— 当量太大时:一个能取出相关片段的搜索器。(本篇指南。)
4 · 「真正的」RAG —— 面向规模化应用,配上向量数据库。开源方案,需要一点点技术。
5 · 知识图谱 —— 当你还需要 AI 理解万物之间如何互相连接时。(Graphify,在最后。)

实现 RAG 的 3 种方式(按你的水平来选)

搭建 RAG 不止一种做法:有三种,从最省力到最强大。关键是选真正适合你的那一种,而不是最唬人的那种。它们如下,随后我们一个一个讲:

你的三个选项
方式 1 · 零代码 —— 把文档拖进一个现成工具里(NotebookLM、Custom GPT)。零技术。适合绝大多数人。
方式 2 · 用开源仓库 —— 安装 RAGFlow 或 AnythingLLM 这类东西,完全掌控,免费。你的代码智能体会帮你。
方式 3 · 量身定制(超级应用) —— 为一个大规模应用打造你自己的引擎。工程师级别。我给你看看我们自己那套是什么样的。

方式 1 · 一行代码都不写就搭好 RAG(简单路线)

如果你过了那道筛选、确实该用 RAG,那有好消息:你不需要编程,也不用搭数据库。有一些工具,你把文档拖进去就完事,一个带出处标注的智能搜索器就有了。这里有两个任何人今天都能用的:

NotebookLM(Google · 免费)
把你的文档(PDF、网页、文本)上传到一个「笔记本」里,用自然语言向它提问。它会给你回答,并标注出每一条断言的确切出处——跟瞎编说再见。这就是纯粹的 RAG,你甚至不需要知道 RAG 是什么。(体量和来源数量的限制会随套餐不同而变化;使用时请核对当前的规定。)
Custom GPT(ChatGPT · 付费套餐)
你创建一个 GPT,把文件上传给它,ChatGPT 会在内部自动搭好搜索器。你只管跟它说话就行。如果你已经在付 ChatGPT,又想要一个了解你的文档的助手,这个再合适不过。
防瞎编规则
当你搭零代码 RAG 时,永远给它这条指令:「只根据我的文档里有的内容作答,并标注出处;如果里面没有,就明确说出来,而不是瞎编」。这能把你的 RAG 变成一个可信的信息来源,而不是一个自信满满的算命先生。

方式 2 · 用开源仓库(掌控更多)

当你的项目变大,或者你想在自己的服务器上掌控全局时,有一些强大又免费的开源工具。对非专家最友好的两个(你的 AI 会帮你安装它们):

infiniflow/ragflow
REPO

RAGFlow —— 领先的开源 RAG 引擎,专为非开发者设计:用可视化方式搭好你的流水线,还能读懂复杂文档(Word、PDF、Excel、扫描件、图片)。回答时标注出处。把 RAG 与智能体能力融为一体。

PythonApache-2.0View on GitHub
Mintplex-Labs/anything-llm
REPO

AnythingLLM —— 一款「一站式」桌面应用,让你拥有自己的、基于你文档的 RAG 聊天,本地且私密。「别再租用你的智能,把它变成你自己的。」如果你想让数据不离开你的机器,它再理想不过。

JavaScriptMITView on GitHub
贴给你的智能体 · 用仓库搭一个正经的 RAG文本
我想用下面这两个仓库之一,基于我的文档搭一个开源 RAG:
- RAGFlow (https://github.com/infiniflow/ragflow) —— 可视化 RAG,如果我想要一套完整的方案就用它。
- AnythingLLM (https://github.com/Mintplex-Labs/anything-llm) —— 桌面应用,本地且私密。

用简单的语言一步一步引导我,假设我不会编程:
1. 根据我的情况帮我选哪个更合适:[描述你的文档、是否想让一切本地/私密,以及你的操作系统]。
2. 告诉我怎么安装它(连同它的依赖要求,比如 Docker),能你来做的地方就你来做。
3. 帮我上传文档、建立知识库。
4. 把它配置成只用我文档里有的内容作答,并且始终标注出处。
5. 给我 3 个测试问题,确认它确实在正确读取我的文档。

如果某一步得我亲手做,就用确切的操作说明告诉我。
把它交给你的代码智能体
如果你用的是 Claude Code 这类智能体,就别自己手动装任何东西:上面的提示词会让它扛下重活。你只管选仓库、提供文档、做验证。记得在安装新东西之前先把进度存进 GitHub(见本系列的 GitHub 那篇指南)。

方式 3 · 一个超级应用的 RAG(我们自己那套就是这么跑的)

第三种方式是最硬核的:当你在打造一个超级应用时——一个信息量巨大、用户众多的平台——任何开箱即用的工具都够不着。这时你就要量身打造你自己的 RAG 引擎。这是工程师级别(由你或你的团队指挥代码智能体来做),但我们把它掀开给你看,不玩虚的,让你看看它能走多远:这就是我们在自家应用里用的那套 RAG 引擎是怎么跑的。

注意 · 这是 RAG,一个零件——不是完整的大脑
先讲清楚一件重要的事,免得搞混:你在这里看到的是搜索引擎(也就是 RAG),它是一个零件。一个应用完整的「大脑」——所谓的 brain——比这更多:它把这个 RAG 跟每个用户的记忆、有时还加上一张连接关系的图谱组合在一起。RAG 是「它对你的文档知道些什么」;brain 才是整个大脑。这个我们在本系列的下一篇资源里讲。
我们 RAG 的各个零件(生产环境中)
向量库:PostgreSQL 加上 pgvector 扩展(跑在 Supabase 上)+ 一个 HNSW 索引,用来在几十万个向量之间快速搜索。
Embeddings:把每个 chunk 转成它的「含义指纹」的模型——768 维的 Gemini,免费档(成本 $0)。
规模:已索引超过 15.000 个 chunk(文档、代码、笔记)——根本塞不进一次聊天;在这里 RAG 不是奢侈品,而是唯一的办法。
混合搜索:70% 按含义(向量)+ 30% 按精确关键词(文本),再配上把最相关的往上提的 re-ranking。比单用任何一种都更准。
会自我保养的索引:系统会重新索引损坏的、标记过时的、丢弃没用的——RAG 自己就能保持健康。(这是搜索器的维护,不是「用户的记忆」——那是另一个零件,属于 brain 的部分。)
每个 chunk 约 200 token:恰好卡在「取来正好那一段」和「别丢了上下文」之间的甜蜜点。
这教会你什么
注意这个套路,因为它是整个系列的核心一课:从便宜起步(免费 embeddings、一个你本来就有的数据库),只有当规模逼你时才变得精密(15.000+ 个片段)。起步阶段你不需要这些——但现在你知道了,当你真的打造大东西时,一个 RAG 能长成什么样。只有下面那级台阶真的不够用了,才往上升。
在 NeuralOS 里,这套 RAG 引擎是产品的一部分
那套量身定制的 RAG 引擎,正是我们要搬进 NeuralOS 的东西:每个应用、每个智能体都有自己针对大体量文档的搜索,而你不用去搭 pgvector 或 embeddings。这个愿景已经画进界面里了;云端引擎是我们正在建的路的一部分。理念就是:让你无需当工程师也能拥有「方式 3」。
进入提示词之前:一句实诚的预期
「方式 3」不是一贴上去就一次到位、完美无缺的复制粘贴——那是在给你灌水。它是一个要花好几天的工程项目,还带着架构上的抉择。所以下面这个提示词不是说「立刻给我搭好」:它是一个架构师提示词,让 AI 在写代码之前先做规划。这个顺序——先定架构、后写代码——正是能在开头避开那些昂贵错误的关键。

当你要动手搭一个量身定制的 RAG 时,把它复制下来贴给你的代码智能体(Claude Code、Cursor)。它内置了那些对我们管用的决策,好让它一开始就站在坚实的地基上,而不是临场瞎凑:

贴给你的智能体 · 量身定制 RAG 的架构师(方式 3)文本
你要帮我为一个大规模应用打造一个量身定制的 RAG。先别急着写代码。先跟我一起做规划,因为最贵的错误就是没定好架构就写代码。

第 1 步 —— 面试我(一次问一个问题,用简单的语言):
- RAG 要索引什么信息、有多少?(文档类型、大致体量)
- 你预期有多少用户、每天多少次查询?
- 数据经常变吗?我需要删除/更新 chunk 吗?
- 是多租户(多个客户数据分隔)吗?有敏感数据吗?
- 我现在已经用了什么技术栈(数据库、语言、托管在哪)?

第 2 步 —— 提出架构,用这些经过实战检验的决策作为起点(并告诉我在我的情况下是否该改动、为什么):
- 向量库:PostgreSQL + pgvector 加 HNSW 索引(如果我已经用 Postgres/Supabase,就复用它)。
- Embeddings:一个便宜或免费的模型(比如 Gemini),存好你选定的维度。
- 切块:约 200 token 的片段加一点重叠,并存好元数据(出处、日期、章节)。
- 混合搜索:结合向量 + 精确文本,再加一层 re-ranking 把最相关的往上提。
- 隔离:如果是多租户,每次查询都要始终按客户 id 过滤。

第 3 步 —— 给我一份分阶段的计划(先建什么、什么留到以后),其中要有一个能端到端跑通的最小阶段,然后再谈优化。

第 4 步 —— 列出生产环境 RAG 里最常见的 5 个错误,以及从第一天起如何规避(比如没按租户过滤、切块切得不好、没处理更新、盲信而不标出处、不衡量回答质量)。

等我们批准了计划,再从那时起才开始一步一步搭第 1 阶段,每完成一个能跑通的阶段就把进度存进 GitHub。
把它和系列里的其余部分结合起来
这正是本系列所有东西汇合的时刻:每个阶段都存进 GitHub(你的安全网),在把一个阶段判定为合格之前用 C-A-R 协议做审计,如果项目变得庞大,再在它上面加一张图谱(Graphify)。一个做得好的生产级 RAG,靠的是前面所有台阶的支撑。

提示词 1 · 诊断 —— 我到底需不需要 RAG?

在搭任何东西之前,让你的 AI 先告诉你,你其实处在哪一级台阶。把它复制下来贴给 ChatGPT、Claude 或你的智能体:

贴给你的 AI · 台阶诊断文本
我想搞清楚我是真的需要 RAG,还是在给自己找麻烦。请一个一个地问我这些问题,等我回答,最后告诉我我在哪一级台阶、为什么:

1. 我大概有多少份文档、每份多大?(总页数的粗略估算)
2. 那些信息是经常在变,还是稳定的?
3. 我需要它给每个回答标出处吗?
4. 这是只给我自己用,还是给一个很多人会用的应用?
5. 我今天用的是什么 AI 工具?

你给建议的规则:
- 如果我所有的材料能装进约 500 页(约 200.000 token),就告诉我我不需要 RAG:让我把全部贴进上下文里,更简单也更精准。
- 如果明显超过这个量,或者变化很大,或者是给很多用户用的,就推荐我用 RAG,并告诉我零代码路线(NotebookLM / Custom GPT)够不够,还是我需要开源方案。
- 别推着我搞过度工程。给我推荐能解决我情况的**最简单**那级台阶,并说明理由。

提示词 2 · 搭一个零代码、防瞎编的迷你 RAG

如果诊断结果是「对,用零代码 RAG」,这个提示词会引导你搭好它,尤其是验证它确实在读你的文档、没在瞎编:

贴给你的 AI · 搭建并验证你的 RAG文本
我要搭一个零代码 RAG 来查询我的文档。用简单的语言一步一步引导我,假设我不会编程。

1. 根据我的情况在 NotebookLM(免费)和 ChatGPT 的 Custom GPT 之间给我推荐一个:我有[描述你的文档:多少份、什么类型、我会用来查什么]。
2. 告诉我创建空间、上传文档的确切步骤(连点击操作)。
3. 帮我拟好我要给它的指令,让它只用我文档里有的内容作答、标注出处,并在内容不在文档里时明确说「文档里没有」,而不是瞎编。
4. 给我 3 个测试问题,确认它确实在读我的文档(而不是靠泛泛的记忆作答)。
5. 告诉我怎么察觉它在瞎编,以及一旦发生该调整什么。

做得简单点。如果有些事只能我在网页上做,就用确切的点击操作告诉我。

典型错误(免得你踩坑)

明明贴文档就够,却去搭 RAG
头号错误。如果你的材料装得进上下文,RAG 只会给你多加复杂度和成本。先用 500 页那条规则判断,再决定。
把 RAG 和记忆搞混
RAG 不记你的对话、也不记你的偏好——那是记忆(第 1 级)。RAG 在你的文档里搜索。它们是互补的两回事,不是对手。
信了出处却不核对
RAG 可能取来错误的片段,还说得一脸笃定。所以提示词 2 里带了测试问题:可以信,但要核对它是否标了出处、出处是否真说了它所声称的内容。

下一级台阶 · 从一个零件到完整的大脑

RAG 是一个强大的零件,但它只是其中之一:它在你的文档里搜索。当你打造一个真正的应用时,那个应用还需要记住每一个用户,有时还要理解万物如何互相连接。这三样东西合在一起——RAG + 记忆 + 图谱——就构成了所谓的 brain,也就是你应用自己的大脑。那是下一篇资源,它会把你看到的一切汇聚起来。

brain · 给你的应用一个自己的大脑(下一级台阶)
RAG 只是它的零件之一。brain 把它们全部组合起来:你的应用知道什么,以及它记得每个用户的什么。
你的 AI 的记忆 · 第 1 级台阶(如果你跳过了)
在 RAG 之前,你需要的几乎总是简单的记忆。从这里开始。
#rag#documentos#contexto#sin-codigo
Ready to build?

Start building in
under 3 minutes

Join 4,200+ builders. No credit card. Build your first app with AI in minutes.