FAB RAG知识问答机器人:让大模型学习所有工艺文档
FAB RAG知识问答机器人:让大模型学习所有工艺文档
1. 问题背景
FAB工程师最头疼的问题之一:工艺文档太多,找不到想要的信息。一个新入行的工程师,想知道CVD镀膜的标准工艺参数,要在几百份SOP里翻半天,找到的还是过时的版本。
传统的做法:关键词搜索。输入「CVD温度」,返回所有包含这个词的文档,不管上下文是什么。搜出来的结果相关性差,经常找不到真正需要的信息。
我们想要的:一个懂FAB工艺的AI助手。输入「CVD镀膜标准参数」,它能直接告诉你:目标温度是多少、允许偏差范围是多少、超过偏差怎么处理。这些信息来自哪份文档、哪个版本,一清二楚。
这就是RAG(检索增强生成)的用武之地。RAG把大模型的推理能力和FAB专业知识库结合起来,让AI既懂FAB工艺,又知道去哪找准确的信息。
2. RAG是什么
RAG(Retrieval-Augmented Generation,检索增强生成)是一种把外部知识库和大模型结合的技术。原理:用户提问 → 检索相关文档 → 把文档内容和问题一起发给大模型 → 大模型生成答案。
为什么要用RAG,而不是直接让大模型回答FAB工艺问题?原因很简单:大模型的知识有截止日期,它不知道自己工厂的具体工艺参数,它知道的是通用的工艺原理。我们的工厂用的是自己的工艺配方,这些数据只有我们自己有。
RAG的核心价值:让大模型「看到」了你给它的所有文档。你可以给它喂:设备手册、工艺SOP、历史故障记录、培训材料、工程师论坛帖子……这些文档构成了你的工厂知识库。
3. FAB知识库构建7步法
Step1 文档收集:从MES、QMS、设备商等渠道收集FAB各类文档。SOP是最核心的,要确保版本是最新的。
Step2 数据清洗:去除噪音格式(页眉页脚、水印、表格),统一文档编码(UTF-8),提取核心内容(正文而非目录)。
Step3 文档分段:按章节或工序分段,每段200-500字。分得太短丢失上下文,分得太长干扰检索。FAB场景的分段策略:按工艺步骤分段比按页分段效果好。
Step4 向量化:用Embedding模型(如text2vec-base-chinese)将文本转为向量,存入向量数据库(如Milvus、FAISS)。这一步是RAG的检索基础。
Step5 检索测试:Query检索验证,确认Top-K参数调优命中率。命中率=检索到的文档中真正相关的比例,是RAG系统最重要的指标。

Step6 Prompt优化:写FAB专属的Prompt模板,防止大模型幻觉(乱编数据),加入质量反馈机制(用户可以评价回答质量)。
Step7 持续迭代:根据用户反馈不断优化知识库和检索算法,知识库是活的,要持续更新。
4. Python实战代码(约80行)
知识库构建代码(40行):用PyMuPDF读取PDF文档,按段落分段,用Sentence-Transformer编码向量,存入FAISS索引。关键函数:load_pdf(提取PDF内容)、chunk_documents(按段落分段)、build_vector_index(构建向量索引)。
问答代码(40行):用户问题→Query改写→向量检索→上下文组装→LLM生成。关键参数:top_k=3(返回最相关的3段文档)、max_context_length=2000(限制上下文长度)、temperature=0.1(减少幻觉)。
5. 效果对比
关键词搜索→RAG:准确率从35%提升到91%(提升了160%)。这是因为RAG能理解FAB工艺语义,不只是匹配关键词。
以前找工艺参数:翻SOP目录,找文档,打开文档,搜索关键词,定位段落,核对版本。平均耗时15-30分钟。
现在问AI助手:输入问题,等待10秒,直接得到答案,附带文档来源。平均耗时1分钟。节省时间:80-90%。
6. 踩坑经验
坑1:文档版本混乱。最常见的问题是找到的SOP是旧版本。解决:文档加上版本号和更新日期,知识库里只保留最新版本,旧版本归档处理。
坑2:检索命中率低。解决:调整Chunk大小(FAB场景推荐200-400字),调整Top-K参数(推荐3-5),增加Query改写步骤(把口语化问题转成FAB专业术语)。
坑3:大模型编造数据(幻觉)。解决:在Prompt里强调「只根据提供的文档回答,不知道就说不知道」,同时在答案里标注信息来源(哪份文档的哪一段)。
7. 进阶方向
多模态RAG:FAB有大量图片(设备图纸、工艺流程图),可以用多模态Embedding(如CLIP)来处理图片内容,实现「看图问答」。
实时知识库:设备参数、工艺变更通知自动同步到知识库,不用手动更新。
多语言支持:FAB有大量英文设备文档,可以用翻译模型处理英文文档,实现中英文双语问答。




