Water_predict / app.py
lmd388222's picture
update app.py
9a00a5d verified
Raw
History Blame Contribute Delete
2.36 kB
import gradio as gr
import numpy as np
import joblib # Bỏ comment dòng này nếu bạn dùng thư viện joblib để load model
# ==========================================
# 1. LOAD MÔ HÌNH (Uncomment khi có file model thật)
# ==========================================
model = joblib.load("water_quality_model.pkl")
# ==========================================
# 2. HÀM XỬ LÝ DỰ ĐOÁN
# ==========================================
def predict_potability(ph, hardness, solids, chloramines, sulfate, conductivity, organic_carbon, trihalomethanes, turbidity):
# Gom dữ liệu người dùng nhập vào thành mảng 2D đúng với format mô hình cần
input_data = np.array([[ph, hardness, solids, chloramines, sulfate, conductivity, organic_carbon, trihalomethanes, turbidity]])
# Chạy dự đoán (Uncomment khi có model)
prediction = model.predict(input_data)[0]
return "Nước có thể uống được (1)" if prediction == 1 else "Nước KHÔNG an toàn (0)"
# ----------------------------------------------------------------
# ==========================================
# 3. XÂY DỰNG GIAO DIỆN GRADIO
# ==========================================
# Tạo danh sách 9 ô nhập liệu tương ứng với 9 features
input_features = [
gr.Number(label="pH", info="Độ pH của nước"),
gr.Number(label="Hardness", info="Độ cứng (mg/L)"),
gr.Number(label="Solids", info="Tổng chất rắn hòa tan - TDS (ppm)"),
gr.Number(label="Chloramines", info="Lượng Chloramines (ppm)"),
gr.Number(label="Sulfate", info="Lượng Sulfate (mg/L)"),
gr.Number(label="Conductivity", info="Độ dẫn điện (μS/cm)"),
gr.Number(label="Organic_carbon", info="Lượng Carbon hữu cơ (ppm)"),
gr.Number(label="Trihalomethanes", info="Lượng Trihalomethanes (μg/L)"),
gr.Number(label="Turbidity", info="Độ đục (NTU)")
]
demo = gr.Interface(
fn=predict_potability,
inputs=input_features,
outputs=gr.Text(label="Kết quả dự đoán (Potability)"),
title="Hệ thống Dự đoán Chất lượng Nước",
description="Nhập các chỉ số môi trường nước bên dưới để hệ thống phân loại khả năng uống được (Potability)."
)
# Chạy ứng dụng
if __name__ == "__main__":
demo.launch()