一個基於 Streamlit 的製造執行系統(MES)數據分析平台,支援多廠區製程監控、KPIV 分析、重工率追蹤和互動式視覺化。
Agentic MES 是一個現代化的製造數據分析平台,旨在幫助製造業實現數據驅動的製程管理與品質控制。透過直觀的 Web 介面,使用者可以:
- 🏭 多廠區管理 - 支援不同廠區的獨立數據監控
- 📊 即時數據分析 - KPIV(關鍵製程輸入變數)即時追蹤
- 🔧 品質管理 - 重工率、良率、雙胞率分析
- 📈 視覺化報表 - 互動式圖表與趨勢分析
- 🤖 智慧洞察 - 相關係數分析與異常值檢測
graph TB
subgraph "使用者介面層"
A[Portal 入口網站] --> B[Factory A 儀表板]
A --> C[Factory B 儀表板]
A --> D[Factory C 儀表板]
end
subgraph "應用邏輯層"
B --> E[Data Fetcher 資料擷取模組]
C --> E
D --> E
E --> F[數據預處理]
F --> G[特徵工程]
end
subgraph "數據層"
E --> H[(SQL Server<br/>MES Database)]
E --> I[Config<br/>配置檔案]
end
subgraph "監控與日誌"
B -.-> J[Monitor<br/>效能監控]
C -.-> J
D -.-> J
A -.-> K[User Tracking<br/>使用者追蹤]
end
style A fill:#FF6B6B
style E fill:#4ECDC4
style H fill:#95E1D3
style J fill:#F7DC6F
- 使用者選擇 - 在入口網站選擇廠區與產品線
- Session 管理 - Streamlit Session State 儲存使用者選擇
- 數據查詢 - Data Fetcher 根據選擇動態生成 SQL 查詢
- 資料處理 - 自動清理、轉換、特徵工程
- 視覺化呈現 - Plotly 互動式圖表展示
- 廠區與產品線選擇
- 使用者操作追蹤(可選)
- Session State 管理
- 數據概覽 - 描述統計與基本資訊
- 電流趨勢 - 時間序列分析與箱形圖
- 關鍵 KPIV - pH值、溫度、流量、轉速監控
- 相關係數 - 變數間關聯性熱力圖
- 自訂分析 - 2D/3D 散點圖與趨勢線
- 每日重工率趨勢
- 雙胞率分析
- 機台/料號交叉篩選
- 工單級別追蹤
- 智慧數值校正(自動檢測異常範圍)
- 時間聚合(1分鐘~4小時彈性調整)
- 多維度篩選(機台、料號、工單、重工狀態)
- 動態機台配置
| 類別 | 技術 |
|---|---|
| 前端框架 | Streamlit 1.28+ |
| 數據處理 | Pandas 2.0+, NumPy 1.24+ |
| 視覺化 | Plotly 5.17+ |
| 資料庫 | SQL Server (ODBC Driver 17) |
| 語言 | Python 3.8+ |
| 配置管理 | python-dotenv |
- Python 3.8 或更高版本
- SQL Server(或相容資料庫)
- ODBC Driver 17 for SQL Server
-
Clone 專案
git clone https://github.com/yourusername/Agentic_MES.git cd Agentic_MES -
建立虛擬環境
python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate
-
安裝相依套件
pip install -r requirements.txt
-
配置環境變數
# 複製範例檔案 cp .env.example .env cp config.py.example config.py cp monitor.py.example monitor.py # 編輯 .env 填入您的資料庫連線資訊 nano .env
-
調整配置檔案
- 編輯
config.py,根據您的機台和產品線進行配置 - 確認 MACHINE_CONFIGS 中的參數符合資料庫欄位
- 編輯
-
執行應用程式
streamlit run portal.py
-
瀏覽器開啟
- 預設位址:
http://localhost:8501
- 預設位址:
# 資料庫連線
DB_SERVER=your_database_server
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password
# 功能開關
ENABLE_USER_TRACKING=false # 是否啟用使用者追蹤MACHINE_CONFIGS = {
'Machine_A': {
'product': 'Product_1', # 產品線
'cols': [ # KPIV 參數列表
'Sn_pH', 'Cu_pH', 'Ni_pH',
'Temperature_Tank1', ...
],
'current_groups': { # 電流群組
'Sn槽電流': ['Current_Sn_1', 'Current_Sn_2'],
...
}
}
}factories = {
"Factory_A": ["Product_1", "Product_2"],
"Factory_B": ["Product_3", "Product_4"],
...
}-
選擇廠區與產品線
- 在 Portal 頁面點擊對應的產品線按鈕
-
進入儀表板
- 點擊左側導航列對應的廠區頁面
-
設定查詢參數
- 選擇時間範圍
- 選擇時間聚合顆粒度(1分鐘~4小時)
- 選擇目標機台
-
執行查詢
- 點擊「執行查詢 (KPIV)」按鈕
- 系統會自動從資料庫獲取數據並進行預處理
-
數據分析
- 切換不同 Tab 查看各類分析
- 使用篩選器進行深入分析
- 選擇 Tab: "自訂變數分析"
- 勾選「啟用 3D 模式」
- 選擇 X、Y、Z 軸變數
- 選擇顏色依據(時間漸層/其他變數)
- 可旋轉 3D 圖表進行探索
- 選擇 Tab: "重工/雙胞率分析"
- 點擊「載入/更新分析數據」
- 使用多選框篩選:
- 機台別名
- 料號類別
- 工單編號
- 查看每日趨勢與箱形圖
Agentic_MES/
├── portal.py # 入口網站主程式
├── data_fetcher.py # 資料擷取模組
├── config.py.example # 配置檔案範本
├── monitor.py.example # 效能監控模組範本
├── .env.example # 環境變數範本
├── .gitignore # Git 忽略規則
├── requirements.txt # Python 相依套件
├── README.md # 專案說明文件
├── ARCHITECTURE.md # 架構詳細說明
└── pages/ # Streamlit 多頁面應用
├── factory_A.py # Factory A 儀表板
└── factory_B.py # Factory B 儀表板
本專案採用 MIT 授權 - 詳見 LICENSE 檔案
如有任何問題或建議,歡迎透過以下方式聯繫:
- 📧 Email: fuyuangche@gmail.com
- 💼 LinkedIn: Wei-Che Fu
- 🐛 Issues: GitHub Issues
感謝所有為本專案做出貢獻的開發者!
- Streamlit 團隊提供優秀的框架
- Plotly 團隊提供強大的視覺化工具
- 所有開源社群的支持
Made with ❤️ for Smart Manufacturing
⭐ 如果這個專案對您有幫助,請給個 Star!