Workspace sync: auto commit 2026-04-23 12:02:11

This commit is contained in:
2026-04-23 12:02:11 +08:00
parent 6a8362bb5a
commit c59cc07327
57 changed files with 3427 additions and 30 deletions

View File

@@ -0,0 +1,68 @@
---
title: "RAG从入门到精通系列1基础RAG"
type: source
tags: [rag, llm, 向量检索, 知识库, langchain]
date: 2025-01-16
---
## Source File
- [[AI/RAG从入门到精通系列1基础RAG.md]]
## Summary用中文描述
- 核心主题RAG检索增强生成基础原理与实战入门从 Indexing索引、Retrieval检索到 Generation生成的完整流程。
- 问题域LLM 无法使用最新数据和私有数据的根本问题,以及如何通过 RAG 打通 LLM 与外部知识库的连接。
- 方法/机制:三大核心阶段——(1) Indexing将外部文档加载、切分、Embedding 向量化后存入向量数据库;(2) Retrieval用户问题 Embedding 化后通过向量相似度检索 Top-k 相关文档块;(3) Generation将问题 + 检索结果输入 LLM 生成带事实依据的答案。实战工具链QwenLLM+ BAAIEmbedding+ LangChain编排+ Qdrant向量数据库
- 结论/价值RAG 是让 LLM 拥有外部知识的标准范式LangChain 和 LlamaIndex 等框架将三阶段流程封装为 Chain大幅降低开发门槛LangSmith 可视化整个 RAG 管道便于调试。
## Key Claims用中文描述
- RAG 将 LLM 与外部数据源(私有数据/最新数据)连接,使 LLM 能够使用非训练知识生成答案。
- Indexing 阶段通过 Embedding Model 将文本转为固定长度的语义向量,以满足向量相似度检索的需求。
- 由于 Embedding Model 的 Context Window 有限512~8192 token需将外部文档切分成满足窗口大小的 Split文档块
- Retrieval 阶段根据用户问题的语义向量,在向量数据库中按相似度(余弦相似度等)找出 Top-k 个最相关的文档块。
- Generation 阶段将问题与检索到的文档块通过 PromptTemplate 组合为 Prompt输入 LLM 生成有事实依据的最终答案。
- LangChain 和 LlamaIndex 将 Indexing-Retrieval-Generation 三阶段封装为 Chain简化 RAG 应用开发。
- LangSmith 提供 RAG 管道的全链路可视化监控和调试能力。
## Key Quotes
> "RAGRetrieval Augmented Generation检索增强生成是一种将 LLM 与外部数据源(例如私有数据或最新数据)连接的通用方法。它允许 LLM 使用外部数据来生成其输出。" — RAG 的定义与价值
> "Embedding Model 的 Context Window 有限,我们不能直接把整篇文档丢进去,所以要将原始文档拆分成一个个文档块。" — 文档切分的必要性
> "看起来很复杂,但这就是 LangChain 和 LlamaIndex 这类框架存在的意义。" — 框架的价值定位
## Key Concepts
- [[RAG]]:检索增强生成,将 LLM 链接外部知识库的核心技术架构
- [[Indexing]]:索引阶段,将外部文档加载、切分、向量化后存入向量数据库
- [[Retrieval]]:检索阶段,通过向量相似度从数据库中检索与问题相关的文档块
- [[Generation]]:生成阶段,将问题+检索结果输入 LLM 生成答案
- [[Embedding]]:将文本转为固定长度语义向量的技术,是向量检索的基础
- [[Vector Store]](向量数据库):存储 Embedding Vector 并实现相似度比较的数据库系统,如 Qdrant
- [[Split]](文档块):将长文档切分后满足 Embedding Model Context Window 的文本片段
- [[Context Window]]:模型一次性处理的最大 token 数量Embedding Model 通常为 512~8192 token
- [[PromptTemplate]]:将问题与上下文组装为 LLM 输入 Prompt 的模板技术
- [[Chain]]LangChain 中将多个步骤串联执行的抽象RAG Chain 串联 Retrieval 与 Generation
- [[Token]]:模型处理文本的基本单位,英文约 3~4 字母/token中文约 1 汉字/token
## Key Entities
- [[LangChain]]Python/LLM 应用开发框架提供文档加载器、Embedding、Vector Store、Chain、RAG 原语
- [[Qwen]]:阿里通义千问系列 LLM本教程中用作 Generation 阶段的 LLM
- [[BAAI]]BGE Embedding开源 Embedding Model 系列,将文本转为语义向量
- [[Qdrant]]Rust 编写的开源向量数据库,存储 Embedding Vector 并提供相似度检索
- [[LlamaIndex]]:另一主流 LLM 数据框架(与 LangChain 并列),专注知识增强
- [[LangSmith]]LangChain 官方平台,用于构建、监控和评估生产级 LLM 应用,支持 RAG 管道可视化
- [[PyTorch研习社]]:文章来源微信公众号
## Connections
- [[RAG]] ← 基础理论 ← [[rag从入门到精通系列1-基础rag]]
- [[RAG]] ← 依赖 ← [[Embedding]]
- [[RAG]] ← 依赖 ← [[Vector Store]]
- [[RAG]] ← 工具链 ← [[LangChain]]
- [[RAG]] ← 工具链 ← [[LlamaIndex]]
- [[Indexing]] ← 依赖 ← [[Embedding]]
- [[Retrieval]] ← 依赖 ← [[Vector Store]]
- [[Generation]] ← 依赖 ← [[PromptTemplate]]
- [[Indexing]] ← 依赖 ← [[LangChain]](文档加载器/Splitter/Embedding/Vector Store
- [[Retrieval]] ← 依赖 ← [[LangChain]]Retriever
- [[Generation]] ← 依赖 ← [[LangChain]]Chain/PromptTemplate
- [[rag从入门到精通系列1-基础rag]] ← 系列第一篇 → 其他 RAG 系列文章(待补充)
## Contradictions
- 与其他 RAG 进阶技术存在优化方向上的差异:本文为基础 RAGNaive RAG采用直接向量检索 + 简单拼接 Prompt 的朴素方案。与 Advanced RAG包含 Query Rewrite、Step-back Prompt、HyDE 等查询优化技术)和 RAG Fusion多路召回 + RRF 重排)等进阶方案相比,基础 RAG 在检索质量和上下文利用上存在局限。当前 Wiki 中暂无 Advanced RAG 或 RAG Fusion 的专门页面,此冲突待后续补充进阶内容后更新。