Procházet zdrojové kódy

docs: 新增《RAG深度解析》完整指南及AI Agent文章更新,包含核心原理与生产落地经验

gamehu před 3 měsíci
rodič
revize
cc0b6fe36b

+ 51 - 1
source/_posts/AI Agent 架构深度解析:原理、模式与生产落地.md

@@ -1,7 +1,7 @@
 ---
 title: AI Agent 架构深度解析:原理、模式与生产落地
 author: Gamehu
-date: 2026-03-31 10:39:52
+date: 2026-03-30 21:39:52
 tags:
   - AI
   - Agent
@@ -174,6 +174,56 @@ Andrej Karpathy 强调,目前行业处于"Agent的十年(Decade of Agents)
 * **事件驱动与异步执行:** Ambient Agents 在后台静默运行,监听并响应事件流(如新收到的客户邮件、代码库提交、系统报警等)<sup>46</sup>。由于没有即时聊天的延迟压力,它们可以执行包含数十次工具调用和复杂规划的深层任务<sup>48, 50</sup>。
 * **人类在环(Human-in-the-loop)与 Agent Inbox:** 这种异步、高并发的运行模式绝不意味着失控。相反,系统必须设计一个类似"智能体收件箱(Agent Inbox)"的交互界面<sup>51</sup>。Agent 将执行到一半的高风险操作或半成品报告推送到收件箱中,人类在此进行<span class="highlight-text">审批(Approve)、编辑修改(Edit)、解答 Agent 的疑问(Answer),甚至进行"时间旅行(Time Travel,即回滚到之前某一步重新运行)"</span><sup>52, 53</sup>。这不仅保证了业务的安全性,人类的纠错反馈也将作为记忆(Memory),驱动 Agent 系统的自我迭代与进化<sup>51, 54</sup>。
 
+## 六、当前实践:病历质量评估 Agent 的版本演进(从简单到复杂)
+
+为了和前面的学习框架对齐,我把当前病历质量评估 Agent 的实现拆成四个版本。每一版都解决上一版暴露的问题,而不是一上来就做“大而全”。
+
+### V1:纯规则引擎(无 Agent)
+
+最早版本只有确定性规则:字段完整性、格式约束、必填项检查。
+
+1. 优点是稳定、可解释、上线快。
+2. 缺点是只能发现“结构性问题”,看不懂跨段语义矛盾。
+
+这一版对应本文里的“传统确定性系统”,适合作为基线能力。
+
+### V2:单 Agent 循环(引入 Agentic Workflow)
+
+第二版把 LLM 接入到循环里,流程是:读取病历 -> 发现问题 -> 生成建议 -> 自检修正。
+
+1. 能力明显增强,可以识别时间线冲突、表达不一致、潜在漏项。
+2. 也暴露出典型问题:偶发幻觉、建议过于抽象、同类问题重复输出。
+
+这一版验证了本文第二部分的结论:有循环就会有收益,但没有工程约束就会不稳定。
+
+### V3:图与状态机编排(从“能跑”到“可控”)
+
+第三版把单循环改成状态机,拆成多个节点:
+
+1. 输入结构化节点。
+2. 规则校验节点。
+3. 语义评估节点。
+4. 证据绑定节点。
+5. 报告生成节点。
+
+每一步都有明确输入输出和状态落盘,支持暂停/恢复/重跑。  
+这一版对应本文的 LangGraph 思路,本质收益是“可观测、可回放、可定位”。
+
+### V4:生产化闭环(Human-in-the-loop + Traces)
+
+当前线上思路是第四版:不是追求全自动判定,而是做“高质量建议系统”。
+
+1. 高风险结论必须进人工审核收件箱。
+2. 每条问题必须附原文证据和触发依据。
+3. 全链路记录 Traces(上下文、模型输出、工具调用、状态迁移)。
+4. 人工反馈回写,驱动下一轮提示词和规则优化。
+
+这正好对应本文“上下文工程 + 执行轨迹 + 自主性滑块”的三条主线。
+
+<div class="article-quote">
+<strong>这条演进线给我的最大启发:</strong>医疗质控这种高风险场景里,Agent 的价值不在“替人做最终判断”,而在“把问题找全、证据对齐、把人工复核效率做上去”。
+</div>
+
 ---
 
 <div class="article-quote">

+ 554 - 0
source/_posts/RAG 深度解析:从原理到生产落地的完整指南.md

@@ -0,0 +1,554 @@
+---
+title: RAG 深度解析:从原理到生产落地的完整指南
+date: 2026-04-02 10:38:52
+tags:
+  - AI
+  - RAG
+  - LLM
+  - 向量数据库
+categories:
+  - AI
+author: Gamehu
+---
+
+<div class="tag-container">
+  <span class="ai-tag">AI</span>
+  <span class="sub-tag">RAG</span>
+  <span class="sub-tag">LLM</span>
+  <span class="sub-tag">向量检索</span>
+</div>
+
+> 这篇是我之前搭建 RAG 系统时的踩坑总结。从最初的"不就是向量检索+LLM吗"到真正生产上线,中间踩的坑比我想象的多得多,有些坑甚至让我怀疑人生。
+
+其实在上一家公司的时候我就手痒自己搞过一个产品的 RAG,当时借着技术分享活动练手。那时候技术栈比较旧,加上边学边搭,效果只能说...勉强能跑。召回率估计就60%左右,不稳定,有时候幻觉大得离谱。不过当时内部项目不上线,虽然效果不咋地,但分享活动上大家认可度挺高——毕竟都是第一次了解这东西,有个能跑通的 Demo 已经算成功了。
+
+当时问题一大堆:Embedding选哪个?chunking咋切?上下文太长怎么处理?幻觉怎么解决?评估指标怎么定?一个接一个冒出来,搞得我头大。
+
+这次要真正上线生产了,逼着我把 RAG 的每个环节都仔仔细细学了一遍。
+
+<div class="divider-tech"></div>
+
+## 一、RAG 的起源:为什么 Meta 要搞这么个东西
+
+### 1.1 2020 年的那篇开山之作
+
+RAG 这个概念最早出自 Meta(当时还叫 Facebook AI)2020 年 5 月的一篇论文。那时候 GPT-3 还没发布,BERT 刚火了一年多。研究团队面临的核心问题是:**怎么让语言模型具备知识,但又不需要把知识全部塞进模型参数里?**
+
+他们的思路很巧妙:与其让模型死记硬背所有知识,不如给模型配一个"外挂"——一个可检索的知识库。模型需要的时候就去查,查到了再生成答案。这就像是开卷考试,不用背整本书,知道怎么查就行。
+
+这个思路解决了当时的大痛点:
+- **知识更新问题**:模型参数是固定的,但世界在变。RAG 让知识库可以独立更新
+- **知识容量问题**:模型参数量再大也有限,但外部知识库可以无限扩展
+- **可解释性问题**:模型能告诉你答案是从哪查的
+
+### 1.2 为什么现在 RAG 火了
+
+2023 年 ChatGPT 爆火之后,RAG 突然成了企业落地 LLM 的首选方案。原因很简单:**企业有大量私有数据**,这些数据不能用来训练通用大模型——隐私、成本、时效性都是问题。RAG 提供了一个完美的解决方案:把私有数据放在向量数据库里,查询时再喂给 LLM。
+
+所以现在你看到的各种"企业知识库"、"智能客服"、"文档问答",底层基本都是 RAG。
+
+说实话,我刚开始接触 RAG 的时候也觉得"这不就是搜索+大模型吗,有啥难的"。但真正做起来才发现,要让这个"简单"的架构在生产环境稳定跑起来,要考虑的东西远比想象的多。
+
+<div class="divider-gradient"></div>
+
+## 二、RAG 到底是什么:名字里的三个关键词
+
+RAG 全称是 **Retrieval-Augmented Generation**,三个词分别对应三个核心环节。我第一次看到这个名字的时候也觉得挺绕口的,其实就是"先检索,再增强,最后生成"的意思。
+
+### 2.1 Retrieval(检索)
+
+**核心任务**:从海量文档中找到与用户问题相关的片段。
+
+关键技术点包括 Embedding(把文本转成向量)、向量数据库(存储和索引这些向量)、相似度搜索(找出最相似的文档片段)。
+
+这里有个坑我踩过:刚开始我以为向量相似度越高,检索结果就一定越好。实际上不是这样,有时候语义相近但内容不相关的情况挺常见的,后面会讲怎么解决。
+
+### 2.2 Augmented(增强)
+
+**核心任务**:把检索到的信息注入到 LLM 的输入中。
+
+这里的关键是 Prompt Engineering。你需要设计一个模板,把问题和检索到的上下文组合起来,让 LLM 知道"基于这些信息来回答"。
+
+### 2.3 Generation(生成)
+
+**核心任务**:LLM 根据增强后的输入生成最终答案。
+
+这一步看起来简单,但实际上有很多细节:
+- 上下文长度限制怎么办?
+- 检索到多个片段怎么排序?
+- 如果检索结果里有矛盾信息怎么处理?
+
+<div class="article-quote">
+<strong>一句话总结:</strong>RAG = 先查资料,再回答。就像开卷考试,允许你翻书,但得自己组织语言作答。
+</div>
+
+<div class="divider-wave"></div>
+
+## 三、完整的 RAG 系统应该长什么样
+
+一个生产级的 RAG 系统绝不是"向量数据库+LLM"那么简单。我把完整链路画出来,你可以看看有多少环节:
+
+{% asset_img Xnip2026-04-02_22-55-48.jpg RAG(检索增强生成)系统架构与工作流程 %}
+
+### 3.1 数据准备阶段(Indexing)
+
+```
+原始文档 → 文档解析 → 文本分块 → Embedding → 存储到向量数据库
+```
+
+**文档解析**:PDF、Word、HTML、Markdown,各种格式都要能处理。特别是 PDF,里面有表格、图片、多栏布局,解析起来很头疼。我在这块上吃过不少苦头——有些 PDF 的表格解析出来格式全乱了,调试了好久才搞定。
+
+**文本分块(Chunking)**:这是最关键的一步,也是我踩坑最多的地方。分块策略直接决定检索效果:
+- 分太细:丢失上下文,回答不连贯
+- 分太粗:超出 Embedding 模型限制,或者检索不精确
+- 常见策略:按段落分、按句子分、按固定 token 数分、按语义分
+
+我自己的经验是:先用固定长度(比如 512 tokens)做 baseline,然后根据实际情况微调。别一上来就搞复杂的语义分块,先把简单的做好。
+
+**Embedding**:把文本块转成向量。选型要考虑:
+- 维度:768D、1024D、1536D 等
+- 语言支持:中英混合场景需要多语言模型
+- 领域适配:通用模型 vs 垂直领域模型
+
+**存储**:主流选择包括 Pinecone、Milvus、Weaviate、Qdrant、PGVector 等。我在项目里用的是 Qdrant,部署简单,Rust 写的性能也不错,文档也比较清晰。
+
+### 3.2 查询阶段(Querying)
+
+```
+用户问题 → 问题改写/扩展 → Embedding → 向量检索 → 重排序 → 上下文组装 → LLM生成
+```
+
+**问题改写(Query Transformation)**:
+用户的问法往往不完美。比如问"公司的年假政策",可能需要改写成"年假有多少天?怎么申请?"才能检索到更相关的内容。
+
+常用技巧:
+- **HyDE**(Hypothetical Document Embeddings):让 LLM 先生成一个假设的答案,然后用这个答案去检索
+- **子查询分解**:把复杂问题拆成多个子问题分别检索
+- **多向量查询**:一个问题生成多个 Embedding 去检索
+
+**向量检索**:
+不只是简单的 cosine similarity。实际生产中会用到:
+- **近似最近邻(ANN)**:HNSW、IVF 等算法
+- **混合检索**:向量相似度 + 关键词匹配(BM25)
+- **过滤条件**:按元数据过滤(比如只查某个部门、某个时间段的文档)
+
+**重排序(Reranking)**:
+向量检索速度快但精度有限。通常先召回 Top-K(比如 100 个),再用更精确的模型(比如 Cross-Encoder)重排序,选出最相关的 Top-N(比如 10 个)。
+
+**上下文组装**:
+把选中的文档片段按一定策略拼接成 Prompt。策略包括:
+- 按相似度排序
+- 按时间排序
+- 按原文档顺序
+- 递归摘要(如果文本太长)
+
+### 3.3 生成阶段(Generation)
+
+Prompt 模板通常长这样:
+
+```
+基于以下参考信息回答问题。如果参考信息不足以回答,请明确说明。
+
+参考信息:
+{context}
+
+问题:{question}
+
+答案:
+```
+
+进阶技巧:
+- **引用标注**:让 LLM 在答案中标注信息来源
+- **多轮对话**:维护对话历史,支持追问
+- **拒绝回答**:当检索结果不相关时,让 LLM 拒绝回答而不是胡说
+
+<div class="divider-stars"></div>
+
+## 四、关键技术深度解析
+
+### 4.1 Embedding 选型指南
+
+Embedding 模型是 RAG 的基石。选错了,后面再怎么优化都白搭。
+
+**主流模型对比**:
+
+| 模型 | 维度 | 语言 | 特点 |
+|------|------|------|------|
+| text-embedding-ada-002 | 1536 | 多语言 | OpenAI 出品,效果稳定但贵 |
+| text-embedding-3-small/large | 1536/3072 | 多语言 | 新版,效果更好 |
+| BGE-m3 | 1024 | 中英 | 开源,中文场景表现好 |
+| GTE-large | 1024 | 多语言 | 阿里巴巴开源,性价比高 |
+| E5-mistral-7b-instruct | 4096 | 多语言 | 指令式 Embedding,支持任务提示 |
+
+**选型建议**:
+1. **英语场景**:OpenAI 的 text-embedding-3 系列或开源的 E5
+2. **中文场景**:BGE-m3 或 GTE-large
+3. **成本敏感**:考虑开源模型 + 本地部署
+4. **领域垂直**:在通用模型基础上做微调
+
+### 4.2 向量数据库怎么选
+
+我调研过市面上主流的向量数据库,给你个对比:
+
+**托管服务**:
+- **Pinecone**:开箱即用,功能全,但贵
+- **Weaviate**:开源 + 托管,支持复杂查询
+- **Zilliz Cloud**:基于 Milvus,适合大规模
+
+**开源自托管**:
+- **Milvus**:功能最全,支持分布式,企业级首选
+- **Qdrant**:Rust 写的,性能不错,部署简单
+- **Chroma**:轻量级,适合本地开发和 POC
+- **PGVector**:PostgreSQL 插件,已有 PG 基础设施的首选
+
+**选型建议**:
+- 快速验证:Chroma 或 PGVector
+- 生产上线:Milvus(大规模)或 Qdrant(中小规模)
+- 不想运维:Pinecone 或 Zilliz Cloud
+
+### 4.3 Chunking 策略实战
+
+Chunking 可能是 RAG 里最容易被忽视,但又最关键的环节。
+
+**常见策略**:
+
+1. **固定长度**:每 500 个 token 切一刀
+   - 优点:简单
+   - 缺点:可能切断语义
+
+2. **按段落**:以换行符为界
+   - 优点:保持段落完整性
+   - 缺点:段落长度差异大
+
+3. **递归字符**:先按段落,段落太长再按句子,句子太长再按固定长度
+   - 优点:兼顾语义和长度
+   - 缺点:复杂度高
+
+4. **语义分块**:用模型识别语义边界
+   - 优点:最智能
+   - 缺点:计算开销大
+
+**Overlap(重叠)技巧**:
+相邻 chunk 之间保留一部分重叠内容(比如 10-20%),避免关键信息被切分。
+
+**Metadata 标记**:
+每个 chunk 要保留元数据:
+- 来源文档 ID
+- 章节标题
+- 页码
+- 时间戳
+
+这些 metadata 对过滤和溯源都很重要。
+
+<div class="divider-tech"></div>
+
+## 五、Advanced RAG:不止于基础玩法
+
+基础 RAG 解决的是"有没有"的问题,Advanced RAG 解决的是"好不好"的问题。
+
+### 5.1 Self-RAG:让模型自己判断要不要检索
+
+传统 RAG 的问题是:不管问题需不需要查资料,都先检索一遍。这会导致:
+- 浪费计算资源
+- 引入无关信息,反而影响生成质量
+
+Self-RAG[^2] 的思路是:让 LLM 自己判断「需不需要检索」。模型在生成每个 token 时,可以决定:
+- **Retrieve**:去查资料
+- **Generate**:直接生成
+- **Critique**:评估生成质量
+
+### 5.2 Corrective RAG:检索质量不好就换策略
+
+CRAG[^3] 的思路是动态调整检索策略:
+- 如果检索结果置信度高 → 正常生成
+- 如果置信度低 → 用 web search 补充
+- 如果相关性一般 → 对检索结果做精炼
+
+### 5.3 Multi-hop RAG:多跳推理
+
+有些问题需要多步推理。比如问"公司 A 的 CEO 的母校的校训是什么",需要:
+1. 先查公司 A 的 CEO 是谁
+2. 再查这个人的母校
+3. 最后查校训
+
+Multi-hop RAG 就是递归地进行「检索-生成-再检索」。
+
+### 5.4 GraphRAG:结合知识图谱
+
+GraphRAG[^4] 把向量检索和知识图谱结合起来:
+- 用 LLM 从文档中提取实体和关系
+- 构建知识图谱
+- 查询时先在图谱里找相关实体,再检索相关文档
+
+这种方法对复杂关系的问题效果更好。
+
+<div class="article-quote">
+<strong>选型建议:</strong>别一上来就用 Advanced RAG。先把基础 RAG 的效果做到 80 分,再根据痛点选对应的增强方案。Advanced RAG 带来的是复杂度,确保你真有这个需求。
+</div>
+
+<div class="divider-gradient"></div>
+
+## 六、RAG 评估:怎么知道你的系统好不好
+
+RAG 最难的不是做出来,而是知道做得好不好。
+
+### 6.1 评估维度
+
+**检索质量**:
+- **命中率(Hit Rate)**:正确答案是否在 Top-K 里
+- **MRR(Mean Reciprocal Rank)**:正确答案的平均倒数排名
+- **NDCG**:考虑排序位置的加权指标
+
+**生成质量**:
+- **相关性(Relevance)**:答案是否回答了问题
+- **忠实度(Faithfulness)**:答案是否基于检索内容,有没有幻觉
+- **上下文精确率/召回率**:用了多少检索到的内容
+
+### 6.2 评估方法
+
+**人工评估**:
+- 最准,但最贵
+- 适合小数据集和关键案例
+
+**自动评估**:
+- 用 LLM 当评委:让 GPT-4 来打分
+- 指标计算:Ragas[^5] 等框架提供了自动评估能力
+
+**A/B 测试**:
+- 生产环境里最靠谱的评估方式
+- 看用户满意度、任务完成率等业务指标
+
+### 6.3 Ragas 框架介绍
+
+Ragas 是一个专门用于 RAG 评估的框架,提供了:
+- **Context Precision**:检索的上下文中有多少是相关的
+- **Context Recall**:回答问题需要的上下文有多少被检索到了
+- **Faithfulness**:答案是否被上下文支持
+- **Answer Relevancy**:答案是否相关
+
+使用示例:
+
+```python
+from ragas import evaluate
+from ragas.metrics import faithfulness, answer_relevancy
+
+result = evaluate(
+    dataset,
+    metrics=[faithfulness, answer_relevancy]
+)
+```
+
+<div class="divider-wave"></div>
+
+## 七、生产落地的坑与解法
+
+### 7.1 幻觉问题依然严重
+
+RAG 能显著减少幻觉,但无法完全避免。常见情况:
+- **过度综合**:LLM 把多个片段的信息错误组合
+- **无中生有**:当检索结果不够时,LLM 会脑补
+
+**解法**:
+- 在 Prompt 里明确要求"只基于提供的上下文回答"
+- 设置拒绝回答的阈值
+- 对关键信息做事实核查
+
+### 7.2 上下文窗口限制
+
+GPT-4 有 128K 上下文,Claude 有 200K,但:
+- 检索结果多了,成本飙升
+- 长上下文下注意力分散,关键信息容易被淹没
+
+**解法**:
+- 限制检索结果数量(比如 Top-5)
+- 对长文档做摘要后再检索
+- 使用 Map-Reduce 策略:分别处理多个片段,再综合答案
+
+### 7.3 性能优化
+
+RAG 涉及多个环节,延迟容易失控。
+
+**优化策略**:
+- **并行化**:Embedding 和检索可以并行
+- **缓存**:常见问题直接返回缓存结果
+- **流式输出**:LLM 生成时边生成边返回
+- **索引优化**:预计算常用查询的检索结果
+
+### 7.4 多租户隔离
+
+企业场景下,不同用户/部门只能访问自己的文档。
+
+**解法**:
+- **Metadata 过滤**:查询时加过滤条件
+- **命名空间隔离**:不同租户用不同的 collection
+- **权限系统**:检索前做权限校验
+
+<div class="divider-stars"></div>
+
+## 八、RAG 的典型应用场景
+
+### 8.1 企业知识库问答
+
+最常见的场景。把公司内部文档(产品手册、技术文档、规章制度等)做成 RAG 系统,员工可以随时提问。
+
+**关键点**:
+- 文档格式多样,解析要 robust
+- 权限控制复杂
+- 需要支持多轮对话和追问
+
+### 8.2 智能客服
+
+替代传统 FAQ,基于产品文档自动生成回答。
+
+**关键点**:
+- 需要接入工单系统
+- 对回答准确率要求高(不能乱说)
+- 复杂问题要能转人工
+
+### 8.3 代码助手
+
+基于代码库做问答,比如"这个函数是做什么的"、"怎么使用这个 API"。
+
+**关键点**:
+- 代码 Embedding 需要专门模型
+- 要处理代码的上下文关系(import、继承等)
+- 可能需要结合 AST 分析
+
+### 8.4 法律/医疗问答
+
+专业领域的问答,对准确性要求极高。
+
+**关键点**:
+- 领域知识库建设成本高
+- 需要可解释性(引用来源)
+- 合规要求严格
+
+<div class="article-quote">
+<strong>选型建议:</strong>不是所有场景都适合 RAG。如果问题需要很强的推理能力,或者数据量很小(可以全塞进 Prompt),可能直接用 LLM 更简单。
+</div>
+
+<div class="divider-tech"></div>
+
+## 九、技术选型与架构建议
+
+### 9.1 完整技术栈推荐
+
+**入门版(快速验证)**:
+- LangChain / LlamaIndex:RAG 框架
+- OpenAI API:Embedding + LLM
+- Chroma:向量数据库
+- 预计开发时间:1-2 周
+
+**生产版(企业级)**:
+- 自研 Pipeline:更灵活可控
+- BGE / GTE:开源 Embedding
+- Milvus / Qdrant:自托管向量数据库
+- vLLM / TGI:LLM 推理服务
+- 预计开发时间:2-3 月
+
+### 9.2 框架选择:LangChain vs LlamaIndex
+
+**LangChain**:
+- 生态最全,集成最多
+- 灵活性高,可以深度定制
+- 学习曲线较陡
+
+**LlamaIndex**:
+- 专注 RAG,抽象层次更高
+- 数据连接能力强
+- 上手更快
+
+**我的建议**:
+- 快速原型:LlamaIndex
+- 深度定制:LangChain
+- 大规模生产:自研 Pipeline
+
+<div class="divider-gradient"></div>
+
+## 十、总结与展望
+
+RAG 从 2020 年的一个学术概念,发展到现在成了企业 AI 落地的标配方案。它的价值在于**在不对 LLM 做微调的情况下,让模型具备特定领域的知识**。
+
+但这不意味着 RAG 就是银弹。实际落地中你会发现:
+
+1. **数据质量决定天花板**:再强的 RAG 也救不了烂数据
+2. **评估比实现难**:怎么知道好不好,比怎么做更难
+3. **维护成本不低**:数据更新、索引重建、模型迭代都是持续工作
+
+### 未来趋势
+
+**RAG 2.0 / Agentic RAG**:
+RAG 不再是静态的「检索-生成」,而是让系统能主动决策:
+- 需不需要检索?
+- 检索几次?
+- 如何验证结果?
+
+这其实就是 Agent 化的 RAG。
+
+**多模态 RAG**:
+不只是文本,图片、视频、音频也能检索。比如问"视频里讲了什么",系统能直接检索视频内容。
+
+**端到端优化**:
+现在 Embedding、检索、生成是分开优化的。未来可能会出现端到端训练的 RAG 系统,整体优化。
+
+<div class="article-quote">
+<strong>最后的话:</strong>
+RAG 看着好像不是什么高深技术,但是真要把效果、成本、稳定性三者平衡好,比想象的要麻烦得多。
+
+它把 NLP、数据库、系统工程、产品思维全搅在一起,每个环节都能让你怀疑人生。Embedding 选错了,后面怎么调都没用;Chunking 策略不对,检索质量直接拉胯;评估指标没定好,你甚至不知道自己在优化什么。
+
+最近听到不少"RAG 不行了"的声音,说要被长上下文模型取代了。我的建议是:别急着跟风。先把业务指标跑出来,看看用户的真实反馈。技术趋势归趋势,能解决实际问题的方案才是好方案。希望这篇能让你少走点弯路,毕竟坑我已经帮你踩过了。
+</div>
+
+---
+
+## 参考资源
+
+### 学术论文
+
+[^1]: Lewis, P., et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. NeurIPS 2020.
+- Meta/Facebook Research: https://research.facebook.com/publications/retrieval-augmented-generation-for-knowledge-intensive-nlp-tasks/
+- arXiv: https://arxiv.org/abs/2005.11401
+
+[^2]: Asai, A., et al. (2023). Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection.
+- arXiv: https://arxiv.org/abs/2310.11511
+
+[^3]: Yan, S., et al. (2024). Corrective Retrieval Augmented Generation.
+- arXiv: https://arxiv.org/abs/2401.15884
+
+[^4]: Edge, D., et al. (2024). From Local to Global: A Graph RAG Approach to Query-Focused Summarization.
+- arXiv: https://arxiv.org/abs/2404.16130
+
+[^5]: Ragas: Automated Evaluation Framework for RAG.
+- GitHub: https://github.com/explodinggradients/ragas
+
+### 官方文档与指南
+
+- **AWS RAG 概述**: https://aws.amazon.com/what-is/retrieval-augmented-generation/
+- **AWS RAG 最佳实践**: https://docs.aws.amazon.com/prescriptive-guidance/latest/writing-best-practices-rag/introduction.html
+- **Vectorize 元数据理解**: https://docs.vectorize.io/build-deploy/data-pipelines/understanding-metadata/
+
+### 技术博客与教程
+
+- **Tensorlake - RAG 引用标注**: https://www.tensorlake.ai/blog/rag-citations
+- **Firecrawl - 最佳向量数据库对比**: https://www.firecrawl.dev/blog/best-vector-databases
+- **DeepLearning.AI - 高级 RAG 构建与评估**: https://www.deeplearning.ai/short-courses/building-evaluating-advanced-rag/
+- **DeepLearning.AI - Agentic RAG**: https://www.deeplearning.ai/short-courses/building-agentic-rag-with-llamaindex/
+
+### 视频资源
+
+- **KodeKloud - Complete RAG Tutorial 2026**: https://www.youtube.com/watch?v=vT-DpLvf29Q
+
+### 学术案例研究
+
+- **JMIR AI - 医疗领域 RAG Chatbot 研究**: https://ai.jmir.org/2025/1/e75262/PDF
+- **UNIPD Thesis - RAG 相关研究**: https://thesis.unipd.it/handle/20.500.12608/74379
+
+---
+
+<div class="content-divider"></div>
+
+**延伸阅读:**
+- [AI Agent 架构深度解析:原理、模式与生产落地](AI-Agent-架构深度解析:原理、模式与生产落地.md)
+- [Agentic 入门:让 AI 不再一把梭,而是像人一样反复干活](Agentic-入门:让-AI-不再一把梭,而是像人一样反复干活.md)
+- [MCP 协议:让 AI 工具链标准化的野心与落地](MCP协议.md)

binární
source/_posts/RAG 深度解析:从原理到生产落地的完整指南/Xnip2026-04-02_22-55-48.jpg