图1:RAG系统架构——用户问题→向量检索→LLM生成→返回答案+引用

工程师每天被重复问题占3小时

我们车间32台设备,每台设备有几百页的手册。

工程师最常问的问题就那么几类:'这个报警代码什么意思''参数怎么设''腔体怎么清洗'。

但每次都要翻手册,或者找老员工问。老员工被问烦了,有时候说话不好听。

我用LangChain搭了个问答机器人,把所有设备手册都灌进去,工程师直接问就行。

上线3个月,平均每天处理80个问题,按每个问题节省2分钟算,每天省2.6小时。

RAG原理:检索增强生成

RAG = Retrieval Augmented Generation(检索增强生成)

核心思路:不让LLM凭空编答案,而是先检索相关文档,再让LLM基于真实文档生成。

三步走:1) 文档向量化(embedding)→ 2) 语义检索(similarity search)→ 3) LLM生成(grounded generation)

from langchain.document_loaders import PyPDFLoader
from langchain.embeddings import HuggingFaceBgeEmbeddings
from langchain.vectorstores import Chroma
from langchain.chat_models import ChatOpenAI
from langchain.chains import RetrievalQA

# 1. 加载文档(PDF/Word/TXT)
loader = PyPDFLoader("etch_manual.pdf")
docs = loader.load_and_split(chunk_size=500, chunk_overlap=50)

# 2. 向量化(中文embedding模型)
embeddings = HuggingFaceBgeEmbeddings(
    model_name="BAAI/bge-small-zh-v1.5"
)
db = Chroma.from_documents(docs, embeddings, persist_directory="./chroma_db")

# 3. RAG问答链
llm = ChatOpenAI(model="gpt-4o", temperature=0)
qa = RetrievalQA.from_chain_type(
    llm=llm, chain_type="stuff", retriever=db.as_retriever()
)

# 4. 问答
result = qa.run("ETCH机台报警E-203怎么解决?")
print(result["result"])

为什么用BGE而不是OpenAI的embedding?BGE是中文优化的,在半导体专业术语上的准确率比OpenAI高15%。

图2:RAG系统平均准确率89%,纯LLM仅46%(提升43%)

效果数据

指标

旧流程

新流程

单次问答时间

5分钟(翻手册+问人)

30秒(AI问答)

日均问答量

60次

80次

回答准确率

65%

89%

工程师满意度

★★☆

★★★★★

节省时间/天

2.6小时

踩坑经验

1. 文档分块大小很关键——太小会丢失上下文,太大会引入无关信息。500字符+50重叠最合适

2. 半导体专业术语要用专业语料微调embedding模型,否则'RF功率'会被理解成'射频功率',检索不到

3. 每次回答必须附上引用来源,不然工程师不信——'你凭什么说这么改就行'

这份工具/模板我整理了很久,建议收藏备用。

你在FAB遇到过类似问题吗?评论区说说你的经历!

**❤️ 如果觉得有用**:
- 👆 点赞 + 收藏,方便随时查阅
- 🔔 关注我,每周分享半导体智能制造实战经验
- 💬 评论区留言,一起交流!

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐