--- tags: [rag, llm, search, embedding] --- ## RAG 检索增强生成 RAG(Retrieval-Augmented Generation)是一种将外部知识库与大语言模型结合的技术范式。 ## RAG 的核心流程 ### 1. 索引阶段(Indexing) - 加载文档(Document Loader) - 文本分块(Chunking) - 向量化(Embedding) - 存入向量数据库(Indexer) ### 2. 检索阶段(Retrieval) - 用户查询向量化 - 向量相似度搜索 - 返回 Top-K 相关文档 ### 3. 生成阶段(Generation) - 将检索结果注入 Prompt - LLM 基于上下文生成回答 ## 混合检索 结合语义搜索(向量相似度)和关键词搜索(BM25),取长补短: - 语义搜索:理解用户意图,找到表述不同但意思相近的内容 - 关键词搜索:精确匹配专业术语和专有名词 ## 向量数据库选型 - **Milvus**:分布式,适合大规模生产环境 - **Chroma**:轻量级,适合原型开发 - **内存实现**:最简单,适合小规模和个人项目