2. 先懂產出配方
3. 逐節點 AI(手冊→RAG)(本篇)
4. 排落地順序
5. 用資產周轉算 ROI
6. MCP 串接 + 飛輪
7. 總結:一條路
- 每個節點適合的 AI 不一樣:進料端做對帳與計分、分選端做老師傅知識 RAG、料場端做庫存訊號、煉鋼端做爐次回饋。
- 最有代表性的一件事:把現場的老師傅手冊轉成 RAG(可查詢的知識庫)。但別把「老師傅願意教」當前提。
- 做法分三層:L0 公開資料+現有手冊 → L1 增強(可以注意什麼)→ L2 老師傅例外(選配)。先上 L0+L1,不卡老師傅。
- AI 在這裡的產出不是報表,是會跳出來的訊號 —— 而「發什麼訊號」要對到「誰會據此做決定」。
看懂了工廠脈絡與產出配方之後,這篇進入正題:一條廢鋼產線,逐個節點,AI 到底能做什麼?重點不是「哪裡都塞 AI」,而是每個節點的性質不同、適合的工具也不同。而且有一條原則貫穿全部:AI 疊在既有流程上、把看不見的東西變成訊號,不推翻現場怎麼做。
一張表:每個節點適合什麼 AI
| 節點 | AI 能做什麼 | 性質 |
|---|---|---|
| 採購 | 抓行情、比報價、供應商 CP 計分 | 資料/自動化 |
| 檢驗(門口) | 進料對帳表:量測值 × 成分價 × 宣稱 → 值多少/該不該收 | 資料/自動化 |
| 分選 | 老師傅分級知識 RAG、路由紀錄 | RAG/知識 |
| 儲存 | 成分感知庫存、補料訊號、老化警報 | 訊號 |
| 配料 | 最低成本配方試算(廢料 vs 買合金省多少) | 最佳化 |
| 煉鋼 | 爐次成分回饋卡、精煉手冊 RAG | RAG/回饋 |
最有代表性的一件事:老師傅手冊 → RAG
老廠最珍貴、也最容易隨退休流失的,是老師傅的判斷。把它變成一個可查詢的知識庫(RAG),是 AI 在製造現場最實在的用途之一。但有個現實:老師傅通常不太願意教(怕被取代、沒動機)。所以做法不能把「他願意教」當前提,要分三層、從公開資料先建:
先把公開資料 + 現有手冊做成能用的 v0(L0),再加「可以注意什麼」的增強層(L1)。這兩層完全不靠老師傅就能上線;等有了成果、建立信任,老師傅看到反而比較願意幫你補那些只有他知道的例外(L2)。關鍵是:別一開始卡在「他不教」就動不了。
一個邊界:哪些能數位化、哪些永遠留給人
做 RAG 有個容易踩的坑:想把老師傅「一眼看出」的感知能力也塞進去。但那是身體記憶(看鏽色、掂重量、聽聲音),文字寫不下來、硬寫就變雜訊。要分清楚:
| 知識類型 | 寫下來會怎樣 | 怎麼處理 |
|---|---|---|
| 程序知識(先做什麼、再做什麼) | 寫下來還活著 | 適合 RAG(像操作手冊) |
| 感知知識(一眼看出成分/等級) | 寫下來就變雜訊 | 留給人 + 儀器,別硬塞文字 |
知識怎麼存:規則用表、混淆用圖
把手冊丟進向量庫只是「案例層」。真正好用的分選知識,還要拆成兩塊結構化資料 —— 規則(每個牌號長什麼樣) 和 混淆(哪兩個容易認錯、什麼時候會失手)。用一個小小的 grades.json 就能表達:
// 規則層:每個牌號的成分帶 + 磁性(來源:公開標準)
{"grade":"304", "magnetic":"無", "Cr":[18,20], "Ni":[8,10.5], "Mo":[0,0]},
{"grade":"430", "magnetic":"有", "Cr":[16,18], "Ni":[0,0.75],"Mo":[0,0]},
{"grade":"316", "magnetic":"無", "Cr":[16,18], "Ni":[10,14], "Mo":[2,3]}
// 混淆層:兩兩容易認錯的、怎麼分、什麼時候會「失手」
{"a":"304","b":"430", "by":"磁性", "how":"磁鐵:304無磁、430有磁",
"exception":"冷加工的 304 會帶弱磁 → 誤判成 430"},
{"a":"304","b":"304L","by":"碳", "how":"差在碳含量",
"exception":"手持 XRF 測不到碳 → 分不出,要 LIBS/OES"}
關鍵在那個 exception 欄位 —— 那正是老師傅的經驗:規則說「有磁是 430」,但老師傅知道「冷加工的 304 也會帶弱磁」。這種「例外」寫成結構化資料,比藏在一段文字裡更能主動跳出來提醒。
有了規則層,「給我部分量測、猜可能牌號」就是幾行純比對,不用大模型:
# 給部分量測(磁性/Cr/Ni/Mo),篩出成分帶對得上的牌號
def grade_lookup(mag=None, cr=None, ni=None, mo=None):
out = []
for x in GRADES:
if mag and x["magnetic"] != mag: continue
for key, v in (("Cr",cr), ("Ni",ni), ("Mo",mo)):
lo, hi = x[key]
if v is not None and not (lo-0.5 <= v <= hi+0.5): break
else:
out.append(x["grade"])
return out
# grade_lookup(mag="無", cr=18, ni=8, mo=0) → ['304', '304L', '303']
所以一個分選知識庫其實是三種存法搭配:規則用表(牌號成分帶)、易錯用圖/例外(混淆與失手情境)、案例用向量(手冊語意檢索)。缺一個都會漏 —— 只有向量會答不出精確界線,只有規則會漏掉老師傅那些「但是…」。
AI 的產出是「訊號」,不是報表
這些工具做完,真正有用的產出是會自己跳出來的訊號:「這車料超規」「這級庫存低於訂單」「爐子在空等料」「這爐回收率異常」。但有一句話一定要記住 ——
沒有人會據此行動的訊號,就是一個沒人看的警報 —— 不要發。這是進場一定要問清楚的:現在什麼事發生時,誰會去做什麼?
下一篇:這些工具實際怎麼使用、怎麼落地、先做哪個。
發佈留言