Lazy loaded image
技术分享
RAG中向量的作用是什么?
Words 2987Read Time 8 min
2026-3-26
2026-3-26
type
Post
status
Published
date
Mar 26, 2026
slug
summary
tags
Ai
category
技术分享
password
😀
前言: AI开发中最激动人心、也是真正能拉开产品差距的环节:RAG(检索增强生成)。接下来会以一款星座运势APP的向量知识库为例进行解读。

一、 核心概念:什么是“向量(Vector)”?它的逻辑是什么?

要把一堆文字交给计算机进行“语义搜索”,计算机是看不懂中文的,它只懂数字。向量化(Embedding),就是把“一段文字”翻译成“宇宙空间中的一个精确坐标点”。
通俗的比喻: 假设我们有一个三维的“星轨坐标系”:
  • X轴 代表【外向 ----- 内向】
  • Y轴 代表【破坏 ----- 疗愈】
  • Z轴 代表【物质 ----- 精神】
  1. 当你把一句本地知识:“INTJ需要独自在安静的房间冥想来恢复能量” 喂给 Embedding 嵌入模型时,模型会给它打分,计算出它的坐标可能是 (内向90, 疗愈85, 精神95)。这个坐标就是向量
  1. 你的另一句知识:“白羊座去吃一顿爆辣火锅释放情绪”,它的坐标可能是 (外向80, 疗愈60, 物质90)
向量相似度检索的逻辑: 当用户提问:“我是 INTJ,最近好累精神内耗怎么办?” 系统也会把这句话变成坐标,假设是 (内向88, 疗愈90, 精神92)。 计算机(向量数据库)只需要在空间中算一下距离(余弦相似度),就会发现:用户的提问坐标,离“INTJ冥想”那个知识点的坐标非常近,而离“白羊座吃火锅”非常远。
于是,系统精准地把“INTJ冥想”这段文字提取了出来。这就是向量检索的底层逻辑——通过数学距离,匹配语义上的相关性。

二、 打造你的“私有意识库”

代码拆解: initKnowledgeBase(),将一段段本地文本通过 Embedding 模型转化为向量,存入 MemoryVectorStore
核心作用: 如果把大模型比作一个拥有全宇宙通识的“超级大脑”,那么步骤 A 就是在给这个大脑植入一块“你专属的记忆芯片”
  • 大模型的痛点: 千问、GPT 等模型虽然知识渊博,但它们不知道你设定的游戏规则。比如,在你的《星轨秘典》里,天蝎座的解药是“去摸摸小猫”,但大模型自己可能会瞎编说“去投资理财”。
  • 步骤 A 的意义: 把你独家创作的运势规则、疗愈法则、甚至昨天的塔罗牌意,提前全部“切碎”并翻译成宇宙坐标(向量)存起来,建立一个随时可查的图书馆。

三、 开卷考试(检索 + 增强生成)

代码回顾: generatePersonalFortune(),先去向量库搜索,把搜到的文字塞进 Prompt,再发给大模型。
这是 RAG 发挥魔力的地方,分为两步动作:
  1. 检索(Retrieval): 用户的参数(INTJ、天蝎座)进来后,系统带着这些词去步骤 A 建好的图书馆里“搜刮”,精准拿出了你提前写好的《天蝎座疗愈指南》原文。
  1. 增强生成(Augmented Generation): 把搜出来的原文,强行塞到大模型的 Prompt 里,逼着大模型“开卷考试”。

四、 RAG 对你的 Prompt 和回答有什么决定性的影响?

理解了上面的逻辑,我们来看看你的 Prompt 和 AI 回答在“有没有 RAG”时的巨大差别。

1. 如果没有 RAG(只有 Prompt 注入)

  • 你的 Prompt: “你是一个占星师,用户是天蝎座,请给他运势指引。”
  • 大模型的反应(闭卷考试): “哦,天蝎座啊,我脑子里有几十亿网上的资料。天蝎座腹黑、记仇、神秘。我随便给他写一段吧:‘今日你充满神秘力量,注意防范小人...’”
  • 结果: 充满通用废话,像地摊文学,没有你这个 App 独有的“高维疗愈”灵魂,甚至会出现 AI 幻觉(乱编任务)。

2. 如果有了 RAG(向量检索 + Prompt 强约束)

  • 你进化后的 Prompt: “你是一个占星师,用户是天蝎座。你什么都不要自己瞎编,必须严格根据我下面提供给你的这本《星轨秘典》来回答:【刚刚通过向量查出来的一段话:天蝎座近期极易陷入深度内耗...现实锚点任务最好是去接触柔软的、有生命力的事物】。请根据这段秘典,为他写运势。”
  • 大模型的反应(开卷考试): “收到!既然老板给了参考资料,我就不自己瞎想了。我把老板给的‘摸小猫、化解防御机制’用极其优美的、具有神秘治愈感的文笔重新润色一下。”
  • 结果: * analysis: "星轨察觉到了你近期紧绷的防御机制,内耗的暗流正在涌动。无需对抗,放下对绝对控制的执念..."
    • dailyTask: "去抚摸一只柔软的流浪猫,或者买一束带着露水的鲜花。"

总结:你为什么需要 RAG?

  1. 掌控绝对的“设定权”:你的 App 叫星轨,你希望运势是治愈的、心理学向的,RAG 能保证 AI 100% 遵守你的世界观,而不是输出俗套的星座运势。
  1. 避免 AI 幻觉(胡说八道):大模型是个讨好型人格,不知道也会硬编。RAG 给它提供了“事实依据”,把它从一个“盲目创造者”变成了你的“御用高级润色师”。
  1. 无限扩展性:未来你的知识库可以从这几行代码,扩展到几十本玄学名著、成千上万条解梦记录、塔罗牌阵解析。你只需要往向量库里扔文本(步骤 A),步骤 B 永远能精准找到答案并生成完美解析。
上一篇
从零构建ERC20 MINT DEMO
下一篇
从零到RAG完整落地(大模型调用<NodeJs>)