0. 上下文衔接Day 8 完成了 RAG 离线建库的基础四步:文档加载 → 智能分块 → BGE-M3 向量化 → Milvus/Universe 建库。今天在此基础上做五层优化,把 RAG 从"能用"推进到"好用":上下文增强 Step 2.5:分块后、向量化前,让大模型给每个 chunk 补一句全局上下文描述,解决孤立块语义残缺的问题并发控制 Semaphore:批量调用大模型时限制并发数,防止 API 限流混合检索 Hybrid Search:稠密向量 + 稀疏向量两路召回,取长补短Reranker 重排序:CrossEncoder 对粗排结果精排,提升相关性意图分类器:三层分类策略,判断通用 vs 专业问题,没必要检索的就不检索Day 10+ 在线查询Day 9 五层优化Day 8 基础建库专业问题通用问题1 文档加载2 智能分块3 BGE-M3向量化4 向量数据库建库2.5 上下文增强大模型生成chunk描述Semaphore并发控制混合检索稠密+稀疏两路召回RRF/加权融合Reranker重排CrossEncoder精排Top-12 → Top-3意图分类器三层分类策略MiniLM-L6-v2retrieve流水线封装用户问题LLM生成带引用答案1. 上下文增强 Step 2.5:解决孤立块语义残缺1.1 问题背景分块后每个 chunk 是独立的,但实际文档是有上下文的。比如一个讲 Spring IOC 的文档,某个 chunk 里只写了"降低类之间的耦合度"——没有主语,向量模型根本不知道这在说 Spring。用户搜"Spring IOC 的作用"时,这个块因为缺主语可能匹配不上。这就是上下文增强要解决的问题:给每个 chunk 补上它在全文中的定位和作用描述,让向量更准确。原始chunk降低类之间的耦合度...向量空间位置模糊不知道在讲什么