用LangChain搭半导体知识问答机器人:工程师每天省3小时(附完整代码)

图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遇到过类似问题吗?评论区说说你的经历!
**❤️ 如果觉得有用**:
- 👆 点赞 + 收藏,方便随时查阅
- 🔔 关注我,每周分享半导体智能制造实战经验
- 💬 评论区留言,一起交流!
更多推荐




所有评论(0)