Spaces:
Sleeping
Sleeping
| title: OMS Analyze by AI | |
| emoji: 🐨 | |
| colorFrom: gray | |
| colorTo: indigo | |
| sdk: gradio | |
| sdk_version: 5.35.0 | |
| app_file: app.py | |
| pinned: false | |
| license: apache-2.0 | |
| short_description: AI OMS Platform | |
| # OMS Analyze — Prototype | |
| > Created by PEACE, Powered by AI, Version 0.0.1 | |
| Prototype Application Platform สำหรับวิเคราะห์ข้อมูลการดับไฟฟ้า (OMS - Outage Management System) โดยใช้ AI และ Machine Learning เพื่อสรุป สืบหาความผิดปกติ พยากรณ์ และจำแนกสาเหตุ | |
| แอปสร้างด้วย Gradio สำหรับใช้งานผ่านเว็บเบราว์เซอร์ และรองรับการอัปโหลดไฟล์ CSV เพื่อวิเคราะห์ รองรับบน Huggingface Space | |
| ## วิธีการติดตั้งและใช้งาน | |
| ### วิธีการใช้งานผ่าน Docker (แนะนำ) | |
| ต้องมี Docker ก่อน ถึงจะสามารถใช้งานได้ [(ดาวน์โหลด Rancher Desktop)](https://github.com/rancher-sandbox/rancher-desktop/releases/download/v1.20.0/Rancher.Desktop.Setup.1.20.0.msi) | |
| ``` | |
| docker build -t ai-oms-analyze:latest . | |
| docker run -d -p 7860:7860 -p 8000:8000 --env-file .env -v $(pwd)/outputs:/app/outputs ai-oms-analyze:latest | |
| ``` | |
| ### วิธีการใช้งาน (MacOS) | |
| ``` | |
| brew install pyenv | |
| cd /AI-OMS-Analyze | |
| pyenv install 3.12.9 | |
| pyenv local 3.12.9 | |
| /Users/$(whoami)/.pyenv/versions/3.12.9/bin/python -m venv .venv | |
| source .venv/bin/activate | |
| python -m pip install --upgrade pip setuptools wheel | |
| python -m pip install -r requirements.txt | |
| python app.py | |
| ``` | |
| ### วิธีการใช้งาน (Windows) | |
| ```bash | |
| Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) | |
| choco install pyenv-win | |
| Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted | |
| cd /AI-OMS-Analyze | |
| pyenv install 3.12.9 | |
| pyenv local 3.12.9 | |
| pip install -r requirements.txt | |
| python app.py | |
| ``` | |
| ## เมนูการใช้งาน | |
| แอปแบ่งเป็นแท็บต่าง ๆ ดังนี้ (ตรงกับ UI ใน `app.py`): | |
| ### 1. Upload & Preview | |
| - **Usecase Scenario**: อัปโหลดไฟล์ CSV เพื่อตรวจสอบข้อมูลต้นฉบับ และทำความสะอาดข้อมูล (ลบข้อมูลซ้ำ, จัดการค่าที่หายไป) | |
| - **วิธีใช้**: | |
| 1. คลิก "Upload CSV (data.csv)" และเลือกไฟล์ | |
| 2. ปรับตัวเลือกเช่น Remove Duplicates และ Missing Values Handling | |
| 3. คลิก "Apply Cleansing" เพื่อรันการทำความสะอาด | |
| 4. เปรียบเทียบตัวอย่างข้อมูลในแท็บ "Original Data" และ "Cleansed Data" | |
| 5. ดาวน์โหลดไฟล์ผลลัพธ์จากปุ่ม "Download Cleansed CSV" | |
| - **ผลลัพธ์**: ไฟล์ `outputs/cleansed_data.csv` (ดาวน์โหลดผ่าน UI) | |
| ### 2. Recommendation | |
| - **Usecase Scenario**: สร้างสรุปข้อความสำหรับเหตุการณ์ที่เลือก (เช่น สรุปเหตุการณ์ไฟฟ้าขัดข้องหรือบำรุงรักษา) และส่งออก CSV ของสรุป | |
| - **วิธีใช้**: | |
| 1. คลิก "Upload CSV (data.csv)" | |
| 2. กรอกแถวที่ต้องการในช่อง "Rows (comma-separated indexes)" หรือเว้นว่างเพื่อย่อให้เป็นทั้งหมด | |
| 3. เลือกว่าต้องการใช้ Generative AI (Use Generative AI) หรือไม่ | |
| 4. เลือกระดับสรุป (Summary Type) แล้วคลิก "Generate Summaries" | |
| 5. ดูผลในตาราง และดาวน์โหลด `outputs/summaries_from_ui.csv` | |
| - **ฟีเจอร์**: รองรับการใช้ GenAI (model selector จะปรากฏเมื่อเปิด Use Generative AI) | |
| ### 3. Summary | |
| - **Usecase Scenario**: สร้างสรุปภาพรวมของชุดข้อมูลทั้งชุด รวมสถิติพื้นฐาน และคำนวณดัชนีความน่าเชื่อถือ (SAIFI, SAIDI, CAIDI) | |
| - **วิธีใช้**: | |
| 1. คลิก "Upload CSV for Overall Summary" | |
| 2. เลือกว่าจะใช้ Generative AI ในการขยายความหรือไม่ | |
| 3. กำหนดจำนวนลูกค้าทั้งหมดสำหรับการคำนวณ reliability | |
| 4. คลิก "Generate Overall Summary" เพื่อรับ AI summary, basic statistics และ reliability metrics | |
| ### 4. Anomaly Detection | |
| - **Usecase Scenario**: ตรวจจับเหตุการณ์ที่ผิดปกติโดยใช้หลาย algorithm (Isolation Forest, LOF, Autoencoder) | |
| - **วิธีใช้**: | |
| 1. คลิก "Upload CSV for Anomaly" | |
| 2. เลือก algorithm และปรับค่า contamination | |
| 3. คลิก "Run Anomaly Detection" | |
| 4. ดูผลลัพธ์ในตารางและดาวน์โหลด `outputs/anomalies_from_ui.csv` | |
| ### 5. Classification | |
| - **Usecase Scenario**: ฝึกโมเดลเพื่อจำแนกสาเหตุของเหตุการณ์ (เลือก Target Column เช่น CauseType หรือ SubCauseType) | |
| - **วิธีใช้**: | |
| 1. คลิก "Upload CSV for Classification" | |
| 2. เลือก Target Column และชนิดโมเดล (rf/gb/mlp) | |
| 3. ปรับ Hyperparameters ใน Accordion (ถ้าจำเป็น) หรือเปิด Weak-labeling เพื่อเรียกใช้ HF | |
| 4. คลิก "Train Classifier" แล้วรอรายงานผล | |
| 5. ดาวน์โหลดโมเดลและไฟล์ predictions ผ่านปุ่มที่ปรากฏ | |
| ### 6. Label Suggestion | |
| - **Usecase Scenario**: แนะนำป้ายกำกับสำหรับเหตุการณ์ที่ไม่มีฉลาก โดยยึดจากความคล้ายกับตัวอย่างที่มีฉลาก | |
| - **วิธีใช้**: | |
| 1. คลิก "Upload CSV (defaults to data/data_3.csv)" หรือปล่อยให้ใช้ไฟล์เริ่มต้น | |
| 2. เลือกจำนวนคำแนะนำสูงสุด (Top K suggestions) | |
| 3. คลิก "Run Label Suggestion" แล้วดาวน์โหลด `outputs/label_suggestions.csv` | |
| ### 7. Forecasting | |
| - **Usecase Scenario**: พยากรณ์จำนวนเหตุการณ์หรือ downtime ในอนาคตโดยเลือกโมเดล (Prophet, LSTM, Bi-LSTM, GRU, Naive) | |
| - **วิธีใช้**: | |
| 1. คลิก "Upload CSV for Forecasting" | |
| 2. เลือก metric (count หรือ downtime_minutes) และ model | |
| 3. ปรับ periods/horizon และ (ถ้าจำเป็น) เปิด Multivariate สำหรับ DL models | |
| 4. คลิก "Run Forecasting" เพื่อดู Historical Data, Forecast Results และ Time Series Plot | |
| 5. ดาวน์โหลดไฟล์ forecast ที่สร้างใน `outputs/` (ชื่อไฟล์รูปแบบ `forecast_{metric}_{model}_...csv`) | |
| ## หมายเหตุ | |
| - เป็น prototype ยังไม่สามารถใช้งานบนระดับ Production ได้ | |
| - แนะนำแหล่งอ่าน Machine Learning [ที่นี่](https://guopai.github.io/) | |
| ## การพัฒนาเพิ่มเติม | |
| - TBA | |