跳到主要内容
📖 本章预览

本章为预览版本,展示部分核心内容。完整内容包含详细源码解析、实战代码和面试要点,加入知识星球即可解锁全部章节。

第10章 RAG 进阶:检索质量调优秘籍

实战场景:我们以"企业内部技术文档问答系统"为贯穿案例。公司有 500+ 篇技术文档(Spring Boot 规范、数据库设计规范、部署手册、故障排查手册等),需要让员工通过自然语言提问获取精准答案。


10.1 实战案例背景与基础设施

10.1.1 项目结构

rag-advanced-demo/
├── src/main/java/com/example/rag/
│ ├── RagAdvancedApplication.java // 启动类
│ ├── config/
│ │ └── RagConfig.java // RAG 配置
│ ├── model/
│ │ ├── SearchResult.java // 检索结果
│ │ ├── QAResult.java // 问答结果
│ │ └── EvalReport.java // 评估报告
│ ├── search/
│ │ ├── SearchStrategyFactory.java // 检索策略工厂
│ │ ├── SimpleVectorSearch.java // 基础向量检索
│ │ ├── HybridSearchService.java // 混合检索
│ │ ├── HydeSearchService.java // HyDE 检索
│ │ ├── MultiQuerySearchService.java // 多查询检索
│ │ └── ReRankService.java // 重排序服务
│ ├── pipeline/
│ │ ├── RagPipeline.java // RAG 管道编排
│ │ └── ContextWindowManager.java // 上下文窗口管理
│ ├── eval/
│ │ └── RagEvaluator.java // RAG 评估
│ └── controller/
│ └── RagController.java // REST 接口
└── src/main/resources/
└── application.yml

10.1.2 基础配置

# application.yml
spring:
ai:
dashscope:
api-key: ${DASHSCOPE_API_KEY}
chat:
options:
model: qwen-plus
temperature: 0.1
embedding:
options:
model: text-embedding-v3
vectorstore:
pgvector:
index-type: HNSW
distance-type: COSINE_DISTANCE
dimensions: 1024

datasource:
url: jdbc:postgresql://localhost:5432/rag_demo
username: postgres
password: postgres

# 自定义 RAG 配置
rag:
default-top-k: 5
default-similarity-threshold: 0.7
rerank-candidate-count: 20
rerank-final-count: 5
context-max-tokens: 3000

10.1.3 数据模型

package com.example.rag.model;

import java.util.List;
import java.util.Map;

/**
* 检索结果:封装检索到的文档及其评分
*/
public record SearchResult(
/** 检索到的文档文本 */
String text,
/** 相似度分数 */
double score,
/** 文档元数据(来源、页码等) */
Map<String, Object> metadata
) {}
package com.example.rag.model;

import java.util.List;



🔒 解锁完整内容

本章剩余内容需要解锁后查看

以上仅为本章部分预览内容,完整内容包含更多深度源码解析、实战代码和面试要点。

加入知识星球你将获得:

  • ✅ 全部 26 章完整内容 + 持续更新
  • ✅ 配套源码 + 实战项目
  • ✅ 一对一答疑 + 面试辅导
  • ✅ 简历优化 + 内推机会

📚 本章完整目录

以下为本章完整目录结构,加入知识星球即可解锁全部内容。

10.1.4 RAG 配置类

10.2 检索策略一:基础向量检索(Baseline)

原理

完整代码

原理

完整代码

10.4 检索策略三:HyDE(假设性文档嵌入)

原理

完整代码

10.5 检索策略四:Multi-Query(多角度查询改写)

原理

完整代码

10.6 检索策略五:Re-Ranking 重排序

原理

完整代码

10.7 上下文窗口管理与 Token 预算控制

原理

完整代码

10.8 RAG 管道编排:策略工厂 + 完整管道

原理

完整代码

10.9 RAG 评估体系

原理

完整代码

10.10 REST API 接口层

10.11 策略选择指南

组合策略示例