離岸風電維運平台不只是工單系統——它是一個必須在鹽霧海風中回答精確問題的知識引擎。 本週(2026-06-08),WindMindOM 的 M5 模組在三個關鍵里程碑同步交匯: 語意向量檢索基礎架構 ChromaVectorRetriever 正式上線、 Z72 現場手冊被分拆成 531 個語意 chunks 全量寫入向量資料庫、 以及現場完工流程(M5-5 Part B-2)的 assignee 過濾與佐證上傳完成閉環。
這三件事看起來像是三個獨立的 PR,但從系統架構角度來看, 它們共同構成了 WindMindOM 從「工單管理工具」向「風機知識問答平台」的決定性跨越。
M5-2:從關鍵字到語意——ChromaVectorRetriever 的架構決策
在 WindMindOM 早期版本中,知識檢索依賴關鍵字比對:技師輸入「葉片異常振動」, 系統返回包含這幾個字的段落。這個方式在手冊文本規範、術語統一時還算可用, 但真實的離岸風場現場話語遠比這複雜——技師可能說「旋轉部件有異聲」, 而正確的 SOP 段落可能用「葉片不平衡 + 主軸諧振」來描述同一問題。
本週合入的 PR #100 引入了 ChromaVectorRetriever, 以 ChromaDB 作為本地向量資料庫後端,搭配 Sentence Transformers 生成語意嵌入(Embedding)。 系統架構設計上選擇了一個重要的抽象層:
🧬 ChromaVectorRetriever 設計重點
- 統一介面:與既有的關鍵字檢索層共享相同的
Retriever抽象,兩者可以在同一個 RAG pipeline 中混用(Hybrid Search 預留空間) - Collection 隔離:Z72 手冊、ECN 規範、工單歷史各有獨立 collection,避免跨文件污染
- 非同步寫入:向量寫入採用 async batch,確保批量 ingestion 不阻塞 API 回應
- 本地優先:在風場網路不穩定的環境下,ChromaDB 本地部署比雲端向量 DB 更可靠
這個選擇反映了工業 AI 應用的一個核心矛盾: 雲端向量資料庫(如 Pinecone、Weaviate)功能豐富,但需要穩定網路; 離岸風場的通訊條件恰恰是最不穩定的環境之一。 在可靠性與功能之間,研究室選擇了「本地優先、語意優先」的路線。
M5-3/4:Z72 手冊向量化——531 chunks 的工程細節
有了 ChromaVectorRetriever,下一個問題是:把什麼內容向量化? 這週的 PR #103 回答了這個問題:Z72 現場維護手冊全量向量化, 最終產出 531 個語意 chunks,取代了原有的 fixture 測試資料。
531 不是一個隨機的數字。Chunking 策略的選擇直接決定了 RAG 系統的回答品質:
| 設計面向 | 選擇 | 理由 |
|---|---|---|
| Chunk 大小 | 512 tokens(含 64 token overlap) | 保留跨段落的 SOP 步驟完整性 |
| 分割依據 | 章節結構優先,段落為輔 | 避免將同一個 SOP 步驟切成兩個 chunk |
| Metadata 標記 | 章節 ID、機組型號(Z72)、頁碼 | 支援後續過濾與來源追溯 |
| 取代 fixture | 是,正式取代測試用虛擬資料 | 讓 CI 測試在真實向量空間中驗證 |
📚 為什麼「取代 fixture」是一個重要決策?
在軟體開發中,用虛擬資料(fixture)做測試是常規操作, 但在向量檢索系統中,fixture 往往太「乾淨」:向量之間的距離分布與真實手冊文本完全不同。 當你的測試在 fixture 上通過,但真實手冊文本讓 retriever 返回錯誤段落時, 你才會發現問題。PR #103 讓 CI pipeline 開始在真實的 Z72 向量空間中跑, 讓每次 commit 都承擔「真實檢索品質」的壓力。 這是研究等級的系統工程與產品等級的系統工程之間的關鍵差距。
M5-5 Part B-2:讓完工流程在現場真正可用
語意檢索解決了「問對問題、找到答案」的部分;但離岸風電維運還有另一半邏輯: 任務完成的佐證閉環。工單不只要派出去,還要確認「有誰做了什麼、留下了什麼證據」。
本週的 PR #101 完成了 M5-5 Part B-2 現場完工流程,核心新增功能包含:
- Assignee 過濾:完工提交只接受被指派的技師,防止非授權人員誤提交
- 佐證上傳:支援現場照片與簽名作為完工佐證,並設定檔案大小上限(PR #102 的後續修正)
- 退料 Guard 重做:處理退料場景的 edge case,避免耗材庫存在部分退料時出現計算異常
💡 技術啟示:工業 SaaS 的「最後一公里」難題
在一般的 Web 應用中,檔案上傳是小事。 但在離岸風場的場景中,技師在機艙頂拍的照片可能是 15MB 的 RAW 檔, 而風場現場的 4G 訊號只有 1 Bar。 「佐證上傳」的背後是:壓縮策略、斷點續傳、離線暫存、重試機制的完整工程。 這些不是研究論文會討論的細節,卻是工業 SaaS 產品落地的決定性因素。 WindMindOM 在 M5 這週直接面對了這些「最後一公里」問題。
本週研究室行動項目
✅ 確認完成
- ChromaVectorRetriever 正式上線,PR #100 合入(M5-2)
- Z72 手冊 531 chunks 全量向量化,取代 fixture,PR #103 合入(M5-3/4)
- 現場完工流程 Assignee 過濾 + 佐證上傳,PR #101 合入(M5-5 Part B-2)
- 完工佐證大小上限 + 退料 guard 修正,PR #102 合入
- 清理 21 個 stale PRs,健康度盤點完成
🎯 下一步展望
- M5-2 語意檢索品質評估:在真實 531-chunk 空間上進行 Hit Rate 與 MRR 測試
- Hybrid Search 實驗:BM25 關鍵字 + ChromaDB 語意,加權融合策略設計
- Multi-turbine 支援:將向量化流程擴展至 Vestas V120 等其他機型手冊
- 現場完工流程離線模式:評估 PWA 或 React Native 的離線佐證暫存方案
WindMindOM 在 M5 這週跨越了一條重要的邊界: 從「管理工單的工具」變成「能回答風機問題的系統」。 531 個 chunks 只是開始——真正的挑戰是在接下來的評估與迭代中, 讓這個知識引擎真正在現場技師的手裡成為可信賴的夥伴。
本週 RAG Ultimate 同步完成了 Phase 3 r112~r114 三輪 standby 健康 checkpoint, 系統保持穩定。下一步待確認 Phase 4 主線方向。
- windMindOM PR #100 — M5-2 ChromaVectorRetriever(語意向量檢索升級)
- windMindOM PR #101 — M5-5 Part B-2 現場完工流程(assignee 過濾 + 簽名/拍照)
- windMindOM PR #102 — 完工佐證大小上限 + 退料 guard 重做
- windMindOM PR #103 — M5-3/4 接完整 Z72 手冊向量檔(531 chunks,取代 fixture)
- ChromaDB 官方文件 — 開源嵌入式向量資料庫
- Sentence Transformers — 語意嵌入模型框架
- RAGAS: Automated Evaluation of Retrieval Augmented Generation (arXiv 2312.10997)