生产核心原则1能下推向量库的不要放应用层metadata 预过滤、hybrid、MMR2能放检索后的精排不要放检索前的 LLMRerank 优于 HyDE 作默认3注意 API 边界PostProcessor 只在QueryEngine链路生效特别注意本文是通用解析核心是检索行为发生的三个阶段实际生产方案要还需要考虑存储是走本地还是外部向量库数据规模是大是小分布式环境等检索前Pre-Retrieval检索前处理的是Query 本身和检索范围发生在第一次向量库调用之前。Metadata 预过滤组件MetadataFiltersMetadataFilterfrom llama_index.core.vector_stores.types import MetadataFilters, MetadataFilterfilters MetadataFilters( filters[ MetadataFilter(keytype, value人物), MetadataFilter(keychapter, value3, operator), ], conditionand,)retriever vector_index.as_retriever( similarity_top_k10, filtersfilters,)原理过滤条件下推到 Pineconefilter/ Qdrantmust等向量库在 ANN 搜索时缩小候选集。建议• 业务维度租户、文档类型、权限、语言用 metadata 预过滤• 过滤字段在 ingest 阶段标准化枚举值、统一命名• 高基数动态字段如用户自定义 tag谨慎做 filter避免索引失效文档 / 节点范围约束组件doc_ids、node_idsVectorIndexRetriever参数retriever vector_index.as_retriever( similarity_top_k10, doc_ids[doc_001, doc_002], # 限定文档)场景用户已选定文档、对话上下文已锁定 ref_doc、多轮对话缩小搜索范围。建议优先doc_ids metadata filter 组合比检索后再过滤高效得多。Query Transform组件TransformQueryEngineBaseQueryTransformHyDE 核心逻辑# query_str 不变给 LLM 合成答案仍用原问题# custom_embedding_strs 变为 [假文档, 原query] → 检索 embedding 改变hypothetical_doc llm.predict(hyde_prompt, context_strquery_str)优点缺点缩短 query 与文档的语义距离每次 1 次 LLM 调用对短 query、口语化问题有帮助假文档幻觉可能带偏检索有 hybrid rerank 后边际收益下降建议默认关闭仅在评测数据证明有效后对特定 query 类型短、模糊按需开启。路由与多 Retriever 选择检索前编排组件组件作用RouterRetriever/RouterQueryEngineLLM 或规则选择哪个 retrieverQueryFusionRetriever多 retriever 并行 RRF 融合VectorIndexAutoRetrieverLLM 自动生成 metadata filters实验性功能生产慎用QueryFusionRetriever 参数QueryFusionRetriever( retrievers[dense_retriever, bm25_retriever], modereciprocal_rerank, # 生产推荐 RRF num_queries1, # 生产关闭 LLM query 扩展 similarity_top_k10,)建议•单一向量库 native hybrid不需要 QueryFusionRetriever•多数据源向量 SQL 知识图谱 QueryFusionRetriever 有价值•num_queries 1 仅 offline / 高价值场景不作默认Query 改写Chat Engine 层组件CondenseQuestionChatEngine等作用多轮对话中把「他后来怎么样了」改写成带上下文的完整问题。这发生在 Chat Engine 层严格说也在「检索前」但是会话管理而非向量检索配置。建议多轮 RAG 必须做 query condensation否则代词/省略会导致检索失败。检索中During Retrieval检索中是向量库执行 ANN / Hybrid / MMR的阶段由VectorIndexRetrieverVectorStore.query()驱动。核心参数retriever vector_index.as_retriever( similarity_top_k30, # 返回 top-k vector_store_query_modedefault, # 查询模式 alpha0.5, # hybrid 权重 sparse_top_k40, # Qdrant 等支持 filtersmetadata_filters, # 检索中过滤下推 embed_modelSettings.embed_model, # query embedding 模型)内部构建的VectorStoreQueryVectorStoreQuery( query_embedding..., similarity_top_k..., query_str..., modeVectorStoreQueryMode.DEFAULT, alpha..., filters..., sparse_top_k...,)查询模式VectorStoreQueryMode模式含义生产场景DEFAULT纯 dense 向量检索最常用默认HYBRIDdense sparse 融合Qdrant/Weaviate/Pinecone(dotproduct)SPARSE纯 BM25/sparse关键词精确匹配MMRMaximum Marginal Relevance增加多样性不是去重TEXT_SEARCH全文检索依赖向量库能力SEMANTIC_HYBRID语义 关键词混合部分向量库Pinecone hybrid 为例Index metric dotproduct写入/查询均add_sparse_vectorTrue数据必须含sparse_valuesalphadense × αsparse × (1-α)LlamaIndex 的sparse_top_k对 Pinecone 无效Pinecone 的 sparse 召回数量由统一的top_k参数控制sparse_top_k在 Pinecone 集成中不生效无需传入similarity_top_k 与 hybrid_top_k推荐宽召回 精排similarity_top_k 20~50 检索中宽召回 ↓Rerank top_n 5 检索后精排 ↓Synthesizer•similarity_top_k太小 漏召回•similarity_top_k太大 rerank 慢、噪声多•hybrid_top_k部分向量库 hybrid 专用见具体 store 文档MMR检索中多样性retriever vector_index.as_retriever( similarity_top_k10, vector_store_query_modemmr, vector_store_kwargs{ mmr_threshold: 0.5, mmr_prefetch_k: 20, },)作用在相似结果间引入多样性惩罚避免 top-k 全是雷同段落。不是• 内容去重相同文本不同 node_id 不会去重• 替代 rerank建议长文档、章节重复内容多时可尝试默认链路优先 rerank。Embedding 模型一致性Query embedding 模型必须与 ingest 相同Settings.embed_model HuggingFaceEmbedding(model_nameBAAI/bge-small-zh-v1.5)vector_index VectorStoreIndex.from_vector_store( vector_storevector_store, embed_modelSettings.embed_model, # 不能省略)不一致会导致分数无意义SimilarityPostprocessor的 cutoff 失效。检索中阶段的扩展型 Retriever 组件以下组件在 LlamaIndex 里属于Retriever 层逻辑上发生在向量库调用前后与 PostProcessor 不同它们在as_retriever()层即可接入组件阶段说明AutoMergingRetriever检索中后段向量检索 docstore 合并父节点RecursiveRetriever检索中递归查引用节点QueryFusionRetriever检索中多路检索 融合外部向量库 无 docstoreAutoMergingRetriever基本不可用父节点不在 docstore检索后Post-RetrievalPostProcessor过滤类PostProcessor作用生产建议SimilarityPostprocessor按 score 阈值丢弃cutoff 需实测Pinecone cosine 与 dotproduct 分数范围不同KeywordNodePostprocessor正文 keyword 包含/排除中文生产慎用优先 metadata hybridSimilarityPostprocessor(similarity_cutoff0.62)重排类PostProcessor类型生产建议SentenceTransformerRerank本地 cross-encoder中文用BAAI/bge-reranker-base追求更高精度可用bge-reranker-v2-m3多语言支持长文本CohereRerankAPIrerank-multilingual-v3.0LLMRerankLLM choice-select成本高非默认from llama_index.core.postprocessor import SentenceTransformerRerankreranker SentenceTransformerRerank( modelBAAI/bge-reranker-base, top_n5,)上下文扩展类PostProcessor依赖 docstore外部向量库MetadataReplacementPostProcessor否是 SentenceWindow 场景PrevNextNodePostprocessor是否AutoPrevNextNodePostprocessor是否MetadataReplacementPostProcessor配合 SentenceWindow# 检索小句子送给 LLM 的是 metadata[window] 大窗口MetadataReplacementPostProcessor(target_metadata_keywindow)布局优化PostProcessor作用LongContextReorder缓解 Lost in the Middle高分 chunk 交替放头尾时效性PostProcessor前提FixedRecencyPostprocessormetadata 有dateEmbeddingRecencyPostprocessor去重旧版相似文档TimeWeightedPostprocessor访问时间衰减安全合规PostProcessor作用PIINodePostprocessorLLM 脱敏 PIINERPIINodePostprocessorNER 脱敏自定义去重LlamaIndex core 未内置重复 ingest 时必须自行实现LlamaIndex 官方未提供内置去重 PostProcessorfrom llama_index.core.postprocessor.types import BaseNodePostprocessorfrom llama_index.core.schema import NodeWithScore, QueryBundlefrom typing import List, Optionalclass DedupByContentPostprocessor(BaseNodePostprocessor): def _postprocess_nodes( self, nodes: List[NodeWithScore], query_bundle: Optional[QueryBundle] None, ) - List[NodeWithScore]: seen set() result [] for n in nodes: key n.node.get_content().strip() if key not in seen: seen.add(key) result.append(n) return resultPostProcessor 顺序① SimilarityPostprocessor 去掉明显低分可选② DedupByContent需自定义实现去重重复 ingest 场景必加③ SentenceTransformerRerank 精排强烈建议④ MetadataReplacement SentenceWindow场景⑤ LongContextReorder 多chunk喂LLM时原则• 先过滤/去重 减少 rerank 输入量• Rerank 在扩展/替换之前对 sentence 做 rerank再替换成 window•LongContextReorder放最后结语LlamaIndex RAG 的过滤与增强是一个三阶段流水线检索前决定搜什么、在哪搜metadata 预过滤、doc 约束、query 改写。检索中向量库内完成 ANN/hybrid/MMR宽召回top_k 20~50、模型一致、能力下推向量库。检索后应用层精加工Rerank 是生产性价比最高的增强去重、分数过滤、LongContextReorder 按需叠加。在此之上再按实际评估数据决定是否加 hybrid、HyDE 或其他层每一层都要有指标证明其边际价值而不是堆参数。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】