让 AI 回答公司内部文档的问题——RAG(检索增强生成)是当前最主流的方案,不需要微调模型。

一、RAG 的核心原理

  • 1.1 为什么需要 RAG——大模型的训练数据截止日期问题
  • 1.2 RAG 流程——检索 → 增强 → 生成
  • 1.3 与微调的区别——RAG 是”查资料”,微调是”背下来”

二、文档处理——把文档变成向量

  • 2.1 文档切片——太长会丢失上下文,太短会丢失连贯性
  • 2.2 Chunk Size 的选择——500-1000 Token
  • 2.3 Overlap——块之间的重叠,防止语义断裂
  • 2.4 文档格式处理——PDF / Word / Markdown
  • 2.5 Spring AI 的 DocumentReader 接口

三、向量化与存储

  • 3.1 Embedding 模型选型——OpenAI text-embedding-3-small
  • 3.2 向量数据库选型——Milvus / Elasticsearch / pgvector
  • 3.3 Spring AI 的 VectorStore 抽象
  • 3.4 写入向量——vectorStore.add(documents)

四、检索——找到最相关的文档

  • 4.1 语义检索——查询向量 → 相似度搜索
  • 4.2 混合检索——关键词 + 语义
  • 4.3 检索重排序(ReRank)——提高准确率
  • 4.4 topK 的选择——返回几个文档

五、生成——把检索结果喂给大模型

  • 5.1 Prompt 模板——“根据以下资料回答问题:{context} \n 问题:{question}”
  • 5.2 引用来源——告诉用户答案来自哪里
  • 5.3 不知道就说不知道——不要瞎编

六、优化策略

  • 6.1 查询重写——把口语化问题变成搜索友好的查询
  • 6.2 多轮对话记忆——记住上下文
  • 6.3 评估——RAGAS 评估框架

七、完整案例——公司制度问答系统

  • 7.1 资料准备——员工手册 PDF
  • 7.2 代码实现——Spring AI + Milvus
  • 7.3 效果演示

八、总结

  • RAG = 文档切片 + 向量化 + 检索 + 生成
  • Spring AI 的抽象让 RAG 开发变得简单