AI-OMS-Analyze / README.md
kawaiipeace's picture
Update README
1921d67

A newer version of the Gradio SDK is available: 5.49.1

Upgrade
metadata
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)

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)

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 ที่นี่

การพัฒนาเพิ่มเติม

  • TBA