工业设备维修手册的 RAG 实战:从 PDF 到 Agent 可检索的知识库
你有一堆设备维修手册 PDFAgent 不知道这些知识。RAG 是答案——把非结构化文本变成向量让 LLM 能「看懂」你的私有知识。问题LLM 不认识你的设备通用 LLM 不知道你的设备型号、你的维护流程、你工厂里 CNC-001 上次检修换了哪个轴承。但你有这些资料——设备维修手册、故障代码对照表、历史检修记录。RAGRetrieval-Augmented Generation检索增强生成就是把这些私有知识「喂」给 LLM 的标准方案。RAG 的核心流程文档 → 文本分块 → Embedding 向量化 → 存入向量数据库 ↓ 用户提问 → Embedding → 向量检索 → Top-K 文档片段 → 拼入 Prompt → LLM 回答本文带你用 Milvus LangChain4j 实现一个工业 RAG 管道。架构总览┌─────────────┐ ┌──────────┐ ┌─────────┐ │ 维修手册文档 │ → │ 文本分块 │ → │ Embedding│ └─────────────┘ │ (500字) │ │ (向量化) │ └──────────┘ └────┬────┘ │ 存入 ▼ ┌─────────┐ │ Milvus │ │ 向量数据库│ └────┬────┘ │ 检索 Top-3 ▼ 用户提问 ──→ Agent ──→ KnowledgeBaseTool ──→ 拼入 Prompt ──→ LLM 回答Step 1搭建 Milvusdocker-compose.yml加三个服务etcd: # 元数据存储 minio: # 对象存储 milvus: # 向量数据库 (standalone)docker compose up -d milvus访问http://localhost:9091确认运行正常。Step 2构建知识库我用 35 条中文工业设备维修知识构建了基础知识库public static final ListString ENTRIES List.of( 轴承温度超过70°C时应立即检查润滑系统。常见原因包括润滑脂不足、润滑脂变质、轴承间隙过小..., 电机振动超标4.5mm/s通常由以下原因导致转子不平衡、联轴器对中偏差..., // ... 35 条工业维修知识 );为什么 35 条而不是 10000 条MVP 阶段的 RAG 不需要海量数据。35 条覆盖了常见故障类型机械、电气、液压、传感器足够验证检索质量。等你验证完分块策略和检索管线再加量也不迟。Step 3文本分块Chunking这是 RAG 最关键的一步。块太大检索不精准块太小语义不完整。LangChain4j 提供了DocumentSplitterDocumentSplitter splitter DocumentSplitters.recursive(500, 50); // 500 每块最大字符数, 50 块之间重叠字符数为什么要有重叠防止关键信息恰好被切在两块边界上。比如「轴承温度过高…建议更换润滑脂」如果被切成两块检索「轴承温度」只能命中前半段丢掉了「更换润滑脂」这个关键操作。Step 4Embedding 存入 Milvus我用 LangChain4j 自带的AllMiniLmL6V2模型384 维本地运行不需要 API KeyEmbeddingModel model new AllMiniLmL6V2EmbeddingModel(); EmbeddingStoreIngestor ingestor EmbeddingStoreIngestor.builder() .embeddingModel(model) .embeddingStore(milvusStore) .documentSplitter(splitter) .build(); ingestor.ingest(document);Step 5Tool 化 RAG 检索把 RAG 封装成 LangChain4j 的 ToolTool(从工业设备维修知识库中检索相关故障诊断信息。 当用户询问设备故障原因、维修方法时使用此工具。 输入查询问题返回最相关的维修知识条目。) public String searchKnowledgeBase(String query) { Embedding qe embeddingModel.embed(query).content(); var results embeddingStore.search( EmbeddingSearchRequest.builder() .queryEmbedding(qe).maxResults(3).minScore(0.5).build()); // ... 返回 JSON }LLM 不需要知道搜索引擎的存在。它只需要知道「这个工具能查维修知识」——调用、检索、返回全自动完成。Step 6分块大小对比实验我在ChunkExperiment中测试了四个分块大小对应的检索命中率分块大小命中率现象200 字符~55%块太碎语义不完整500 字符~85%平衡点 — 语义完整 检索精准1000 字符~78%块太大噪声增加2000 字符~65%检索结果不精准500 字符是工业知识库的甜点位置。一条设备故障知识通常 300-600 字500 字刚好覆盖一条完整的「症状→原因→处理」三元组。完整调用流程# 1. 启动依赖 docker compose up -d emqx milvus # 2. 启动应用 ./mvnw spring-boot:run # 3. 摄入知识库 curl -X POST http://localhost:8080/api/rag/ingest # 4. RAG 增强对话 curl -X POST http://localhost:8080/api/agent/chat \ -H Content-Type: application/json \ -d {message:CNC-001 轴承温度71°C是什么原因}Agent 的推理链用户问题 → LLM判断 → searchKnowledgeBase(轴承温度高原因) → 向量检索 → Top-3 知识条目 → LLM 整合 → 轴承温度超过70°C应立即检查常见原因包括...下一步RAG 的 MVP 搭建完成。后续我会深入混合检索Dense BM25 → RRF 融合Cross-Encoder 重排序Query 改写HyDE、Multi-Query检索质量评估Hit Rate / MRR / NDCG学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%免费】