成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Dify+RAGFlow:泵類設備預測維護系統案例分享

人工智能
項目定位是,利用 Dify 的工作流編排能力和 RAGFlow 的知識庫組件,結合模擬的設備傳感器數據 (IoT) 和企業資源數據 (CMMS, MES, ERP),構建一個針對離心式冷卻液泵的預測性維護系統原型。

上篇文章介紹到的 Dify+RAGFLow 的協同使用文章里,提到了一個泵類設備預測性維護智能系統。后來陸續有人私信咨詢實施細節,這篇做個統一的介紹。

Dify+RAGFlow:1+1>2的混合架構,詳細教程+實施案例

項目定位是,利用 Dify 的工作流編排能力和 RAGFlow 的知識庫組件,結合模擬的設備傳感器數據 (IoT) 和企業資源數據 (CMMS, MES, ERP),構建一個針對離心式冷卻液泵的預測性維護系統原型。

注:為遵守保密協議,本文及相關代碼在原項目基礎上使用了模擬數據和接口進行演示。所展示的工作流設計、節點交互等與實際項目邏輯相似,僅供各位參考。

以下,enjoy:

1、項目背景

作者早年從事金融信貸領域時,在長珠三角走訪過大大小小幾百家工廠,其中以機械加工、注塑行業為主,但不管什么細分行業,設備的穩定運行對企業來說都是日常經營的頭等大事。尤其是像 CNC 加工中心使用的冷卻液泵這類關鍵輔助設備,意外停機會導致生產中斷,直接影響訂單排查計劃。

傳統的定期維護 (Preventive Maintenance, PM) 往往過于保守或未能及時發現潛在問題,而事后維修 (Corrective Maintenance, CM) 成本高昂。這篇要介紹的預測性維護 (Predictive Maintenance, PdM) 主要目的是通過監測離心泵設備狀態,在故障實際發生前安排維護,最大限度地減少停機時間、降低維護成本、提高設備利用率。

泵類型: 離心式冷卻液泵 (Centrifugal Coolant Pump)


泵型號 : CoolFlow Pro 5000


設備 ID: PUMP-CNC-001


使用場景: 安裝在一臺中型 CNC 立式加工中心 (Machine ID: VMC-03) 上,用于循環供給水基切削液,冷卻刀具和工件。該機床主要加工鋼材和鋁合金零件,實行兩班倒工作制 (16小時/天)。泵已運行約 18 個月。


關鍵監測參數: 振動 (mm/s RMS), 溫度 (°C), 出口壓力 (Bar), 流量 (L/min)。

2、數據構成

參照真實的業務場景,我構建了一套模擬 API (mock_api.py) 和相應的 JSON 數據文件,代表不同系統的數據源:

1、IoT 數據 (`IOT.json` & `/api/pump/status`):


    *   包含泵的實時傳感器讀數,如時間戳 (`timestamp`)、軸向/徑向振動 (`vibration_axial`/`radial`)、電機/軸承溫度 (`temperature_motor`/`bearing`)、出口壓力 (`pressure_outlet`)、流量 (`flow_rate`)。
    *   模擬了數據隨時間變化,包含正常和逐漸異常的狀態。


 2、MES 數據 (`MES.json` & `/api/mes/pump/operation`):
    *   提供泵的運行日志,關聯的設備 (`associated_machineId`),運行小時數 (`operating_hours`),處理的工單 (`jobs_processed`) 等。
    *   有助于了解泵的工作負載和上下文。


3、CMMS 數據 (`CMMS.json` & `/api/cmms/pump/history`):
    *   包含歷史維護記錄 (`maintenance_records`):工單號、日期、類型、描述、更換部件、停機時間等。
    *   包含相關故障信息 (`related_failures_info`):其他泵(或本機歷史)的故障案例,包括癥狀、故障模式、根本原因、糾正措施。這是重要的知識來源。


4、ERP 數據 (`ERP.json` & `/api/erp/spare_parts`):
    *   提供備件信息:零件 ID (`partId`)、名稱 (`name`)、描述、適用泵型號、供應商、庫存水平 (`stock_level`)、單價 (`unit_price`)、采購提前期 (`lead_time_days`)。
    *   用于生成維護建議時考慮備件可用性。


 模擬維護完成后,實際執行情況的反饋數據,用于評估預測準確性和閉環優化。

3、工作流整體思路

由 RAGFlow 負責處理知識庫,工作流基于 Dify 構建,核心思路是: 

狀態監測 -> 異常判斷 -> 深度分析與建議 -> 報告生成。

獲取狀態: 通過 GET_IOT_DATA 節點調用模擬 API 獲取指定 pumpId 的最新傳感器數據。

解析數據: 使用 CODE 節點解析返回的 JSON 字符串,提取關鍵指標,并判斷是否需要維護 (needs_maintenance 標志)。

條件分流: IF/ELSE 節點根據 needs_maintenance 標志決定流程走向。

ELSE (正常):  流向 ANSWER 節點,輸出簡單的狀態正常信息。
IF (異常):  啟動預測性維護流程。

信息整合 (IF 分支):

調用 GET_CMMS_DATA 和 GET_MES_DATA 獲取歷史維護和運行數據。
調用 KNOWLEDGE_RETRIEVAL 節點,結合當前異常指標查詢知識庫 (離心泵設備手冊 pdf、歷史維修案例 excel)。

故障預測 (IF 分支): 調用 FAULT_PREDICTION(LLM 節點),將整合后的信息(實時數據、歷史數據、知識庫信息)提供給 LLM,要求其分析可能的故障模式并預測需要更換的關鍵備件 ID。

備件 ID 提取 (IF 分支): 使用 EXTRACT_PART_ID (CODE 節點) 從 FAULT_PREDICTION 的文本輸出中解析出 required_partId。

ERP 查詢 (IF 分支): 調用 GET_ERP_DATA (HTTP 節點),使用 extracted_part_id 作為參數查詢具體備件信息 。

ERP 數據解析 (IF 分支): 使用 PARSE_ERP_DATA(CODE 節點) 解析 GET_ERP_DATA 返回的 JSON 字符串為列表。

生成維護建議 (IF 分支): 調用 SUGGESTIONS(LLM 節點),將故障預測結果和解析后的 ERP 備件信息列表提供給 LLM,要求生成詳細的維護步驟、備件清單和時間建議。

最終輸出: 通過 ANSWER 2 節點展示維護建議或最終報告。

4、關鍵節點介紹

**START:** 定義工作流入口參數 (`pumpId`)。
  **GET\_... (HTTP Request):** 與模擬 API 交互,獲取各類數據。
  **CODE (解析 IoT):** 解析 IoT JSON,提取關鍵指標,**計算 `needs_maintenance` 標志**。
  **IF/ELSE:** 根據 `needs_maintenance` 標志進行流程分支。
  **KNOWLEDGE_RETRIEVAL:** (可選) 連接外部知識庫進行 RAG 查詢。
  **FAULT_PREDICTION (LLM):** 基于多源信息進行故障診斷與預測。
  **EXTRACT_PART_ID (CODE):** 從 LLM 輸出中解析結構化信息 (Part ID)。
  **PARSE_ERP_DATA (CODE):** 解析 ERP 返回的 JSON 列表字符串。
  **SUGGESTIONS (LLM):** 結合故障預測和備件信息生成維護建議。
  **ANSWER / ANSWER 2:** 輸出最終結果。

5、主要報錯與解決過程參考

基于我前期在上手熟悉 Dify 工作流搭建中踩過的坑,結合這個項目做個對照說明,各位可以大致做個參考:

1.  HTTP 請求:URL 與參數混淆
    *   **節點:** `GET_IOT_DATA`
    *   **報錯:** `Invalid non-printable ASCII character...`
    *   **原因:** 同時在 URL 字段和 PARAMS 字段中定義了查詢參數。
    *   **解決:** URL 只寫基礎路徑,參數在 PARAMS 中定義 (推薦: `{{start.pumpId}}`)。


2.  HTTP 請求:網絡訪問 & CORS 
    *   **節點:** 所有 HTTP 請求節點
    *   **報錯:** Dify 404,但 API 日志顯示 200 OK。
    *   **原因:** API 服務監聽地址限制;缺少 CORS 配置。
    *   **解決:**
        *   API (`mock_api.py`): 啟動時 `host='0.0.0.0'`。
        *   API (`mock_api.py`): 安裝 `flask-cors` 并啟用 `CORS(app)`。


3.  數據處理:JSON 字符串解析 
    *   **節點:** `CODE` (解析 IoT), `IF/ELSE`, `ANSWER`
    *   **報錯:** `IF/ELSE` 條件不生效;`ANSWER` 直接輸出占位符。
    *   **原因:** HTTP 節點返回的 `body` 是 JSON **字符串**,而非結構化對象。
    *   **解決:** 在 HTTP 節點后加 `CODE` 節點,用 `json.loads()` 解析 `body` 字符串,輸出解析后的對象/列表供后續節點使用。


4.  IF/ELSE 節點:數值比較類型問題 
    *   **節點:** `IF/ELSE`
    *   **報錯:** 數值比較條件 (`> 6.0`) 不生效。
    *   **原因:** `IF/ELSE` 可能將變量視為字符串進行比較。
    *   **解決:** 將比較邏輯移入 `CODE` 節點,輸出簡單標志位 (如 `"1"`/`"0"` 字符串),`IF/ELSE` 只判斷此標志位。


5.  CODE 節點:Python 語法 & 類型錯誤 
    *   **節點:** 所有 `CODE` 節點
    *   **報錯:** `IndentationError`, `NameError`, `Output variable 'xxx' must be a [Type]`。
    *   **原因:** 縮進錯誤;變量未定義;Dify 輸出類型配置與代碼返回不符。
    *   **解決:** 嚴格檢查 Python 縮進;確保 `return` 前所有變量已定義賦值;確保 Dify 中輸出變量的**名稱和類型**與代碼 `return` **完全匹配** (e.g., Part ID 是 String)。


6.  TEMPLATE 節點:Jinja2 語法 & 數據錯誤 
    *   **節點:** `TEMPLATE`
    *   **報錯:** `jinja2.exceptions.TemplateSyntaxError`。
    *   **原因:** 括號錯誤 (`{{{` vs `{{`, `}} }`); 控制結構括號錯誤 (`{{%` vs `{%`); 變量名不匹配;在未解析數據上訪問屬性。
    *   **解決:** 修正 Jinja2 語法;確保模板變量名與輸入變量名**完全一致**;對列表/字典數據,**先用 CODE 解析**再傳入模板,并使用 `{% for %}` 訪問循環變量屬性 (`{{ part.name }}`)。

6、從模擬到生產切換注意事項

看完上述內容,如果你計劃將基于 mock_api.py 測試成功的工作流切換到對接真實的生產環境,需要注意替換數據源接入點,并適配數據格式

主要步驟如下:

1.  獲取真實 API 信息:** 獲取真實的 IoT、CMMS、MES、ERP 系統的 API 詳細信息:
    
    *   **URL 端點 (Endpoint):** 每個系統提供數據的具體網址。
        
    *   **請求方法 (Method):** GET, POST, PUT, DELETE 等。
        
    *   **認證方式 (Authentication):** 如何驗證 Dify 的訪問權限?可能是 API Key (放在 Header 或 Query Param)、OAuth 2.0 Token (放在 Header)、用戶名密碼等。
        
    *   **請求參數/體 (Parameters/Body):** 如何指定要查詢的設備 ID、時間范圍、零件 ID 等?是在 URL 參數中,還是在 POST 請求的 Body 中?Body 的格式是 JSON、XML 還是其他?
        
    *   **響應格式 (Response Format):** 真實系統返回的數據結構是怎樣的?與模擬的 JSON 結構是否一致?
        
2.  修改 Dify HTTP Request 節點:
    
    *   定位工作流中所有調用模擬 API 的 HTTP Request 節點 (`GET_IOT_DATA`, `GET_CMMS_DATA`, `GET_MES_DATA`, `GET_ERP_DATA`)。
        
    *   **更新 URL:** 將節點的 URL 字段替換為真實 API 的端點。
        
    *   **調整方法:** 根據真實 API 要求修改請求方法 (GET/POST 等)。
        
    *   **配置認證:** 在節點的 `Headers` 或 `Params` 部分添加必要的認證信息 (如 `Authorization: Bearer <token>`, `X-API-Key: <key>`)。
        
    *   **適配參數/體:** 根據真實 API 要求修改 `Params` 或 `Body` 的內容和格式。
        
3.  適配數據解析 (關鍵步驟??):
    
    *   真實 API 返回的數據結構**極有可能**與模擬 JSON 不同。
        
    *   因此,所有緊跟在 HTTP Request 節點之后的 `CODE` 節點(如解析 IoT 的 `CODE` 節點, `PARSE_ERP_DATA` 節點,以及可能需要為 CMMS/MES 新增的解析節點)**必須進行修改**。
        
    *   需要根據真實 API 返回的 JSON (或其他格式) 結構,調整 Python 代碼中 `json.loads()` 之后訪問數據的方式(字典鍵名、列表索引、嵌套結構等),以確保存儲到 Dify 輸出變量中的是后續節點期望的數據。
        
    *   **這是最容易出錯的環節,需要仔細比對真實 API 的響應并耐心調試** `CODE` **節點的 Python 代碼。
        
4.  端到端測試:** 修改完成后,使用真實的設備 ID 或測試 ID 進行完整的端到端測試,驗證:
    
    *   是否能成功從所有真實系統中獲取數據。
        
    *   數據解析是否正確。
        
    *   LLM 節點接收到的上下文是否符合預期。
        
    *   整個流程是否能按預期運行。

網絡連通性: 確保運行 Dify 的環境能夠訪問到企業內網的真實系統 API 地址。

權限管理: 確保 Dify 使用的 API Key 或憑證具有訪問所需數據的正確權限。

數據格式差異: 重點關注真實 API 與模擬 API 在數據結構上的差異,并適配解析邏輯。

性能與頻率: 真實 API 可能有調用頻率限制或響應時間較長,需要考慮工作流的性能和可能的超時設置。

錯誤處理: 針對真實 API 可能出現的各種錯誤(網絡錯誤、認證失敗、無效參數、系統內部錯誤等),在 Dify 工作流中增加更健壯的錯誤處理邏輯。

7、后續拓展方向

增加報告模板 (TEMPLATE): 引入并調試 TEMPLATE 節點,利用 Jinja2 生成結構更清晰、格式更專業的 HTML、Markdown、PDF 報告 (需要額外工具集成)。

定時觸發與批量處理: 增加定時任務觸發器 (如 Dify 的計劃任務或外部調度系統調用 API),定期檢查設備狀態,而不是僅通過手動輸入 pumpId 觸發。

集成到業務系統:

告警通知: 在檢測到異常時,通過 HTTP 請求節點調用企業微信、釘釘、郵件等的 API 發送告警通知。
工單系統集成: 將 `SUGGESTIONS` 生成的維護建議通過 API 推送到 CMMS 系統,自動創建維護工單。

API 暴露: 將整個 Dify 工作流封裝為 API,供其他業務系統(如設備監控大屏、生產管理系統)調用。

閉環反饋機制: 實現 /api/cmms/report/update 接口,接收維護完成后的實際結果。設計新的 Dify 工作流或節點來處理這些反饋,分析預測準確性,并將分析結果存入數據庫或知識庫,用于持續優化模型或 Prompt。

更復雜的故障預測模型: FAULT_PREDICTION 可以替換為更專業的機器學習模型服務接口,或者使用更強大的 LLM 并優化 Prompt 以進行更精確的故障定位和剩余壽命預測 (RUL)。

知識庫增強: 持續豐富 RAGFlow (MinerU、 Mistral OCR等工具的測評后續會專門寫一篇) 中的內容,加入更多設備類型、故障案例和解決方案。

用戶交互優化: 利用 Dify 的 Agent 或 Web App 能力,創建更友好的用戶界面,允許用戶查詢特定設備狀態、歷史記錄或手動觸發分析。

8、項目資料包

有需要項目源碼的盆友可以付費后查看下方百度云盤鏈接(包含Code節點代碼)

責任編輯:龐桂玉 來源: 韋東東
相關推薦

2025-04-14 00:40:00

2025-04-17 01:00:00

DifyRAGFLow

2025-04-07 07:00:00

2025-04-25 01:30:00

RAGFlowDifyMiniO

2025-02-24 09:33:10

2021-08-03 10:18:22

物聯網預測性維護規范性維護

2023-09-19 17:20:08

物聯網物聯網預測維護

2020-05-14 15:12:32

工業物聯網IIOT預測性維護

2022-02-09 10:27:00

預測性維護技術物聯網

2020-06-10 21:57:41

工業4.0預測性維護物聯網

2020-03-16 13:47:24

數字化分析團隊

2009-12-29 14:58:05

ADSL設備維護

2022-06-13 14:58:19

系統案例

2025-05-26 03:21:00

Dify變量組件

2020-08-29 18:35:42

預測性維護工業物聯網IIOT

2019-12-26 21:59:29

物聯網智能電梯預測性維護

2020-10-23 21:53:44

預測性維護智能建筑物聯網

2023-10-28 16:10:25

智能電網物聯網

2017-07-25 12:09:10

機器學習預測性維護模型

2015-01-13 17:35:30

BPM選型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美日韩国产精品一区 | 欧美日韩亚洲一区 | 中文字幕欧美一区 | 99精品久久 | 欧美视频免费在线 | 国产在线精品免费 | 天天影视亚洲综合网 | 中文字幕爱爱视频 | 91久久久久久久久久久 | 久久999 | 久色视频在线 | 国产精品自产拍在线观看蜜 | 日本又色又爽又黄的大片 | 国产精品一卡二卡三卡 | 日韩精品激情 | 国产一区二区三区四区五区加勒比 | 特级丰满少妇一级aaaa爱毛片 | 午夜av电影院 | 久久精品视频亚洲 | 日韩一级免费电影 | 西西裸体做爰视频 | 久久com| 99精品视频免费观看 | 色免费看| 欧美一级黑人aaaaaaa做受 | 亚洲精品免费在线观看 | 99爱在线| 欧美一区二区久久 | 久草.com| 成人二区 | 国产中文 | 中文字幕高清av | 丁香综合| 国内精品视频 | 成年男女免费视频网站 | 国产精品国产精品国产专区不蜜 | 韩日精品一区 | 天天躁天天操 | 青青久草| 亚洲一区二区三区 | 97精品超碰一区二区三区 |