RAG和向量数据库
2026-03-26
1801 字约 7 分钟
...简单来说,如果把大语言模型(LLM)比作一个博学的“大脑”,那么 RAG(检索增强生成) 就是让这个大脑学会“查资料”的方法,而 向量数据库 就是存放这些资料并能被快速检索的“智能图书馆”。
为了让你更直观地理解,我们可以把它们拆解来看:
🧠 什么是 RAG (检索增强生成)?
RAG 的全称是 Retrieval-Augmented Generation。你可以把它理解为给 AI 进行的一场“开卷考试”。
在没有 RAG 之前,AI 只能靠它训练时“背”下来的知识(训练数据)来回答问题。这有两个大问题:一是它不知道最新发生的事(比如昨天的新闻),二是它不知道你公司的内部机密(比如员工手册)。如果强行问它,它可能会一本正经地胡说八道(产生幻觉)。
RAG 的工作流程是这样的:
- 用户提问:比如你问“我们公司今年的年假政策是什么?”
- 去图书馆查书(检索):系统不会直接让 AI 瞎猜,而是先去你的“智能图书馆”(向量数据库)里,把关于“年假政策”的文档找出来。
- 带着资料答题(增强生成):系统把找到的资料和你原本的问题一起扔给 AI,并告诉它:“根据这些资料,回答用户的问题。”
- 输出答案:AI 基于你提供的资料,生成一个准确、有据可依的回答。
RAG vs. 微调(Fine-tuning): 很多人容易混淆这两个概念。
- 微调 像是给大脑“做手术”或“长期补课”,改变它的思维方式和知识储备,成本高且更新慢。
- RAG 像是给大脑“递小抄”或“发参考资料”,不改变模型本身,只是让它回答时参考外部信息,成本低且能实时更新。
📚 什么是向量数据库?
你可能会问,传统的数据库(如 MySQL)或者搜索引擎(如 Google)不行吗?为什么非要“向量”数据库?
这是因为传统数据库只能进行关键词匹配。如果你搜“怎么修车”,但文档里写的是“汽车维护指南”,传统数据库可能就找不到,因为它不认识这两个词意思相近。
向量数据库解决了“语义理解”的问题:
- 向量化(Embedding):向量数据库利用 AI 模型,把文字、图片、音频等数据转换成计算机能读懂的一串数字(向量)。这串数字代表了数据的“语义”。
- 比如,“苹果”和“水果”在向量空间里的距离会非常近。
- 相似度搜索:当你提问时,数据库不是找“一模一样”的词,而是找“意思最接近”的内容。哪怕你用的词和文档里完全不同,只要意思对,它就能通过计算向量之间的距离(比如余弦相似度)把相关内容找出来。
它的核心优势:
- 懂语义:能理解“猫”和“喵星人”是一回事。
- 速度快:即使有上亿条数据,也能在毫秒级找到最相似的那几条。
- 多模态:不仅能存文字,还能存图片、视频等。
🤝 它们是如何协同工作的?
RAG 和向量数据库是“黄金搭档”。没有向量数据库,RAG 就无法高效地找到相关资料;没有 RAG,向量数据库找到的资料也无法被大模型智能地转化为自然语言回答。
为了帮你理清它们的关系,我整理了一个简单的对比表:
| 特性 | RAG (检索增强生成) | 向量数据库 |
|---|---|---|
| 角色定位 | 工作流/架构模式 | 基础设施/存储工具 |
| 核心功能 | 协调检索和生成,决定“怎么问”和“怎么答” | 存储向量数据,负责“怎么存”和“怎么找” |
| 解决的问题 | 解决大模型知识滞后、幻觉问题 | 解决非结构化数据的语义检索问题 |
| 常见产品 | LangChain, LlamaIndex (框架) | Milvus, Pinecone, Weaviate, Chroma |
🚀 为什么它们现在这么火?
- 让 AI 落地企业:企业最担心数据安全和准确性。RAG + 向量数据库允许企业把私有数据(如合同、代码、病历)安全地存放在本地向量库中,让 AI 在不泄露数据的前提下,利用这些私有知识工作。
- 成本极低:相比于重新训练一个大模型(可能需要数百万美元),搭建一套 RAG 系统的成本非常低,甚至可以是开源免费的。
- 实时更新:今天发布的新闻,明天就能通过 RAG 被 AI 检索到,不需要重新训练模型。
总结一下:向量数据库是 AI 时代的“海马体”(负责记忆和检索),而 RAG 则是利用这个记忆系统来增强 AI 智商的“思维方法”。
如果您觉得这篇文章有帮助,请点个赞吧~
相关文章
更多文章 →AI2026-06-18
Agent 开发是什么
Agent 开发,简单说就是: 把大模型从“只会聊天的回答器”,变成“能理解任务、调用工具、执行步骤、产出结果的工作流系统”。 它不是单纯写提示词,也不是把 ChatGPT 接进网页就完事。真正的 Agent 开发更像是在做一个“会思考一点、会用工具、会按流程办事的自动化应用”。 OpenAI 的 Agents SDK 文档里把 Agent 描述为:一个配置了 指令、工具,以及可选运行行为 的大语言模型,比如 handoffs、guar...
学习
八股文2026-07-30
一、TypeScript与类型系统(20题)
1\. 在定义AI接口返回的嵌套数据结构(如多轮对话、工具调用结果)时,如何用TypeScript的泛型与条件类型实现灵活的类型推导? 场景:为“AI助手”定义统一的消息类型系统,需兼容不同模型供应商(OpenAI/Anthropic)及内部(Moonshot)的返回格式。 核心答案: 构建一个以泛型为基础、条件类型为分支的层次化类型系统。核心是利用泛型参数化“消息内容”、“工具调用”和“提供商”,再通过条件类型精确匹配不同场景下的数据...
学习
godot2026-07-27
Godot 4 常用 UI 节点详解
Godot 4 常用 UI 节点详解 在 Godot 4 中,UI 系统基于 Control(控件) 节点构建。所有 UI 节点都继承自 Control,形成一棵完整的 UI 树。与游戏引擎中常见的"Canvas + DOM"模式不同,Godot 的 UI 系统是声明式的——你在场景中搭好节点树,引擎自动完成布局计算。 一、布局系统:Container 家族 Container 是 Godot UI 的 骨架 。它决定了子节点的大小和位...
学习
cocos2026-07-22
🎯 Cocos Creator 生命周期详解
Cocos Creator 生命周期详解 一、前言 Cocos Creator 作为主流的游戏开发引擎,其组件化架构的核心就是 生命周期回调函数 。理解这些回调的触发时机、执行顺序和使用场景,是写出高质量游戏逻辑的基础。 本文基于 Cocos Creator 3.x ,系统梳理从引擎启动到场景切换、从节点创建到销毁的完整生命周期。 二、组件生命周期回调总览 Cocos Creator 的生命周期回调按触发顺序排列如下: | 回调函数 |...
学习
cocos2026-07-22
🚀 Cocos Creator 新手入门指南
一、Cocos Creator 是什么 Cocos Creator 是一款专注于 2D 和 3D 游戏开发的引擎,由 Cocos 团队开发。它的核心理念是 组件化开发 ——把游戏中的每个功能拆成独立的组件,像搭积木一样组合起来。 主要特点 : 完全免费,支持发布到 Web、iOS、Android、桌面等多平台 使用 TypeScript 编写脚本,对前端开发者非常友好 编辑器可视化操作,所见即所得 内置资源管理、动画系统、UI 系统、物...
学习
前端2026-07-17
HTML Form 可以把 POST 响应加载进 iframe
在接入支付验证、身份认证或第三方授权页面时,我们经常会遇到这样的流程: 1. 后端返回一个第三方接口地址。 2. 这个地址必须通过 请求访问。 3. 接口返回 HTML,或者重定向到真正的验证页面。 4. 验证页面需要嵌入当前网站,而不是打开新标签页。 5. 验证完成后,当前页面继续执行后续业务。 第一次遇到这个需求,很容易想到: 但涉及第三方支付时,这种方式通常会遇到 CORS、Cookie、重定向和跨域页面读取限制。 实际上,HTM...
学习
评论
请登录后发表评论
去登录