iT邦幫忙

2025 iThome 鐵人賽

DAY 9
0
生成式 AI

生成式AI的風起雲湧 - 從教育到企業落地應用 (過去‧現在‧未來)系列 第 9

Day 9|(現在篇) 如何讓 AI 回答你工廠的專業問題(RAG介紹)

  • 分享至 

  • xImage
  •  

為什麼「工廠問題」不能靠一般 AI 解?

走進工廠,你會發現知識密度驚人,不管是:

  • 電纜製程裡 DR03 拉線、WE27 押出、CS11 絞線等的特有工序代碼
  • 「盤號」、「轉速」、「起始時間」這類操作現場才懂的詞彙
  • JIS C3102、IEC 60811、ISO 14064 等各種材料、碳排與設備規範
  • 班別邏輯、MES 資料表結構、RFID 流程、報工事件代碼

這些都不是 ChatGPT 原生能理解的知識。這時候,我們就需要一個專門為「企業內部知識」打造的系統架構 —— RAG (Retrieval-Augmented Generation)


什麼是 RAG?一張圖看懂:

[User 問題]
    ↓
Embedding Query
    ↓
向量資料庫 → 相似文件(如 SOP、維修紀錄、MES 事件記錄、PDF 說明書)
    ↓
組合 Prompt
    ↓
送入 LLM 產生回答(包含引用內容)

RAG 是讓 LLM(像 ChatGPT)先「查資料」再「產生答案」的流程。它能補足語言模型不懂的本地知識。


落地主題一:如何讓 AI 回答製程「盤號對應轉速」的問題?

背景:

產線人員常問:「WE27 這台機台,從盤號 D1600A016 推回去是什麼時候開機的?當時轉速多少?」

工廠常見資料來源:

  • EAP log JSON 記錄
  • 傳感器 CSV
  • 生產報工記錄
  • WE27 專屬機台規格表

解法:用 RAG 解查詢問題

Step 1:資料清洗與儲存

import os, json
import pandas as pd

# 假設這是 EAP 記錄 JSON
with open("EAP_TAKEUPREPORT_REQ_20240930.json") as f:
    data = json.load(f)

# 轉為表格
df = pd.json_normalize(data)
df.to_csv("cleaned_eap_takeup.csv", index=False)

Step 2:文字向量化(embedding)並存入向量資料庫

from langchain.vectorstores import FAISS
from langchain.embeddings import HuggingFaceEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.document_loaders import CSVLoader

loader = CSVLoader(file_path="cleaned_eap_takeup.csv")
docs = loader.load()

splitter = CharacterTextSplitter(chunk_size=500, chunk_overlap=50)
split_docs = splitter.split_documents(docs)

embedding_model = HuggingFaceEmbeddings(model_name="sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")
db = FAISS.from_documents(split_docs, embedding_model)
db.save_local("faiss_db")

Step 3:使用 RAG 查詢盤號資訊

from langchain.chains import RetrievalQA
from langchain.llms import OpenAI

retriever = db.as_retriever()
qa_chain = RetrievalQA.from_chain_type(
    llm=OpenAI(temperature=0),
    retriever=retriever,
    return_source_documents=True
)

query = "請問盤號 D1600A016 對應的轉速是多少?是哪一天開始生產?"
result = qa_chain.run(query)
print(result)

落地主題二:RAG 幫你解釋工單號碼背後的 BOM 與材料構成

工廠常見問題:

「工單 G231012045 是什麼產品?用了什麼材料?可不可以列出其銅線組成比例與重量?」

解法:

  • 整合 MES 工單資料表(如 orders, bom, materials
  • 使用 RAG 將 Excel/PDF 材料分析報告與結構描述納入知識資料庫
  • 用 prompt template 設計格式化的回答

RAG Query Prompt 設計範例:

你是一位懂得電纜工廠製程的專家。請根據下列文件資料,回答使用者問題。盡量引用材料比例、單位、來源等細節。

落地挑戰與解法:

挑戰 解法
資料格式混亂(PDF、圖片) 使用 PaddleOCR、Tesseract 自動辨識,結合版面重建
中文語意切 chunk 容易斷句 使用滑動式 chunking,或 BERT tokenizer 調整斷詞規則
太多冗詞造成搜索不精準 加入自訂欄位欄位 tag(如【盤號】、【轉速】)協助標註
JSON 太複雜無法直接向量化 轉為平面欄位或只取 body/return/header 的重要片段
資料更新後 embedding 沒同步 定時更新 embedding,或使用 Chroma 支援 delta 更新

結語:讓 AI 成為你的「現場助理」

想像一個場景:

  • 工程師問:「昨天 CS11 的第六台轉速掉到 100 是什麼原因?」
  • AI 立刻回答:「根據 DR06 事件記錄與轉速對應表,因拉力過大發生異常停機(異常代碼 E03),維修時間為 14:05 至 14:36。」

這不再是夢,而是正在發生的落地應用。

RAG 就是你內部知識的搜尋引擎 + 解釋助理,讓 AI 真正從語言模型變成你最懂工廠的「虛擬助理」。


📌 敬請期待:

Day 10|打造專屬的企業知識庫 × LangChain × embedding


上一篇
Day 8|(現在篇) 生成式AI導入工廠資訊系統的第一步
系列文
生成式AI的風起雲湧 - 從教育到企業落地應用 (過去‧現在‧未來)9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言