--- 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