Asterism

RAG 入门:从最小流程到第一个可运行示例

内容摘要

上手 RAG 的最佳路径是先构建最小可行系统(MVP)。本文介绍 Java 技术栈的工具链选择(LangChain4j / Spring AI)、四步构建法(数据准备→索引构建→检索策略→生成提示)、常见难点与优化方向,以及 RAG 系统的评估指标。

| Spring AI | Spring 官方 AI 框架,与 Spring Boot 集成自然 | 已有 Spring 体系项目,强调工程整合 |
| 原生开发 | 直接基于向量数据库 SDK + LLM API 组合实现 | 对链路可控性、性能和定制化要求较高 |

向量数据库

方案特点适用场景
Milvus高性能分布式向量数据库大规模生产环境
Elasticsearch同时支持全文检索与向量检索需要混合检索、已有 ES 体系
FAISS轻量、适合本地快速验证本地实验、小规模检索
pgvectorPostgreSQL 向量扩展,维护成本低团队已有 PostgreSQL 技术栈

嵌入模型

方案特点适用场景
OpenAI text-embedding-3效果稳定、使用简单预算充足,优先效果
Hugging Face 开源模型bge-large-zhm3e-base,可私有化部署数据敏感或希望控制成本
国内 Embedding API如智谱 AI、通义千问需要更便捷的国内服务接入

评估工具

方案特点
RAGAS常见开源 RAG 评估框架,适合离线评测
自定义评估更贴近业务目标,可结合人工标注、点击率、采纳率等指标

选型建议:

  • 已有 Spring Boot 项目,优先考虑 Spring AI
  • 想快速拼装一条可运行的 RAG 链路,优先考虑 LangChain4j
  • 需要更强的可控性、精细优化能力或和现有基础设施深度整合,可考虑原生开发。

3.2 Java 实战:四步构建最小可行系统(MVP)

第一步:数据准备与清洗

RAG 的上限,很大程度上取决于知识库的质量。第一步不是”接模型”,而是先把数据整理干净。

技术要点:

分块建议:

第二步:索引构建

技术要点:

第三步:检索策略优化

技术要点:

第四步:生成与提示工程

技术要点:

RAG MVP 流程RAG MVP 流程

MVP 验收标准:

  1. 能基于知识库回答明确问题。
  2. 能返回引用来源或文档片段。
  3. 对证据不足的问题,能够拒答或明确说明依据不足。
  4. 能通过一组简单测试问题,观察到可重复的效果变化。

3.3 Java 开发者的两条上手路径

路径一:低代码快速验证(适合业务方)

路径二:工程化开发(适合技术团队)

如果目标是”先验证业务价值”,优先走低代码路径;如果目标是”接入现有 Java 系统,并纳入权限、审计、监控和治理”,优先走工程化开发路径。

3.4 落地过程中常见的难点与优化方向

难点典型表现优化建议
文档解析复杂PDF、PPT、扫描件、图表类内容提取不完整;流程图、架构图多以形状元素呈现,只提文字会丢失大量潜藏信息引入 OCR、版面分析能力,对高价值文档进行人工抽检;对重要图表提取描述与结构化信息
分块策略不合理块太大导致召回粗糙,块太小导致语义破碎;固定 top_k 可能漏掉必要信息按章节/段落切分,保留重叠区间,并按文档类型定制策略;根据块密度动态调整召回数量
专有名词召回差缩写、内部术语、产品名难以命中;向量查询对专有名词不友好引入术语词典、同义词映射、查询改写和混合检索
新旧版本并存回答引用了过期文档或冲突内容;技术报告周期更新导致召回多个版本增加版本号、生效时间、状态字段,并在排序时优先最新有效版本;明确标注版本来源
仅靠向量检索不稳定短问题、精确关键词问题效果不佳;向量相似度无法完全反映真实语义匹配采用向量检索 + BM25/全文检索 + Rerank
复杂逻辑推理困难需要跨文档、多步骤推理才能得出答案;无法在单段落中直接找到答案将任务拆成多个子问题,必要时引入工作流或规则引擎
公式计算类问题难金融、统计等场景需要严格套用公式将”检索”和”计算”拆开,交给外部计算模块处理
长文本与多轮问答上下文过长、历史对话污染当前问题做上下文裁剪、会话摘要、分轮检索和轮次隔离

这些问题说明:RAG 不是”接上向量库就结束”,真正决定效果的往往是数据治理、检索策略和评估闭环。

3.5 常见问题与应对方式

分块策略与 top-k 选择

世界知识缺失

多跳问题与推理能力

信息丢失与检索链路噪声

这些问题说明:RAG 的效果不仅取决于”接了什么模型”,更取决于数据质量、检索策略、评估与调优的工程闭环。

3.6 如何评估一个 RAG 系统?

文档召回率(Document Recall)

文档召回率衡量的是:对于一个问题,所有真正相关的文档中,有多少被系统成功检索出来了。

计算方式如下:

文档召回率 = 成功检索到的相关文档数量 / 所有相关文档数量

如果召回率过低,后面的生成模型再强,也只能”基于错误或不完整的信息认真回答”。因此,RAG 的第一优先级通常不是把答案写得多漂亮,而是先确保该找回来的内容能找回来。

常用评估指标

指标含义关注重点
Context Precision 上下文精确度检索结果中,真正相关的上下文是否排在前面排序质量
Context Recall 上下文召回率检索结果是否覆盖了回答问题所需的信息检索完整性
Faithfulness 忠实度生成答案是否忠于给定上下文,是否出现幻觉事实一致性
Answer Relevance 答案相关性最终答案是否真正回答了用户问题回答相关性

实践建议: