github-actions
commited on
Commit
Β·
62a93be
1
Parent(s):
41582a3
Update model artifacts
Browse files- app.py +18 -21
- requirements.txt +1 -2
- saved_model.joblib +2 -2
- vectorizer.joblib +2 -2
app.py
CHANGED
|
@@ -2,43 +2,40 @@
|
|
| 2 |
import gradio as gr
|
| 3 |
import joblib
|
| 4 |
import json
|
| 5 |
-
import os
|
| 6 |
from src.preprocessing import clean_text
|
| 7 |
|
| 8 |
-
model = joblib.load("saved_model.joblib")
|
| 9 |
-
vectorizer = joblib.load("vectorizer.joblib")
|
| 10 |
|
| 11 |
def predict(text):
|
| 12 |
clean = clean_text(text)
|
| 13 |
vec = vectorizer.transform([clean])
|
| 14 |
pred = model.predict(vec)[0]
|
| 15 |
-
|
| 16 |
-
if hasattr(model, "predict_proba"):
|
| 17 |
-
proba = model.predict_proba(vec)[0]
|
| 18 |
-
proba = { "Aman": round(proba[0]*100, 2), "Judi": round(proba[1]*100, 2) }
|
| 19 |
-
|
| 20 |
-
label = "π« Judi Online" if pred == "judi" or pred == 1 else "β
Aman"
|
| 21 |
-
return {"Prediksi": label, "Probabilitas (%)": proba}
|
| 22 |
|
| 23 |
def load_metrics():
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
with open(path) as f:
|
| 27 |
return json.load(f)
|
| 28 |
-
|
|
|
|
| 29 |
|
| 30 |
with gr.Blocks() as demo:
|
| 31 |
with gr.Tab("Inference"):
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
|
|
|
|
|
|
|
|
|
| 35 |
|
| 36 |
with gr.Tab("Monitoring"):
|
|
|
|
| 37 |
metrics = load_metrics()
|
| 38 |
-
if metrics:
|
| 39 |
-
gr.
|
| 40 |
-
|
| 41 |
-
|
| 42 |
gr.Image("model/confusion_matrix.png", label="Confusion Matrix")
|
| 43 |
|
| 44 |
if __name__ == "__main__":
|
|
|
|
| 2 |
import gradio as gr
|
| 3 |
import joblib
|
| 4 |
import json
|
|
|
|
| 5 |
from src.preprocessing import clean_text
|
| 6 |
|
| 7 |
+
model = joblib.load("model/saved_model.joblib")
|
| 8 |
+
vectorizer = joblib.load("model/vectorizer.joblib")
|
| 9 |
|
| 10 |
def predict(text):
|
| 11 |
clean = clean_text(text)
|
| 12 |
vec = vectorizer.transform([clean])
|
| 13 |
pred = model.predict(vec)[0]
|
| 14 |
+
return "π« Judi Online" if pred == "judi" else "β
Aman"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
|
| 16 |
def load_metrics():
|
| 17 |
+
try:
|
| 18 |
+
with open("model/metrics_summary.json") as f:
|
|
|
|
| 19 |
return json.load(f)
|
| 20 |
+
except:
|
| 21 |
+
return {"error": "Metrics not available. Run evaluation first."}
|
| 22 |
|
| 23 |
with gr.Blocks() as demo:
|
| 24 |
with gr.Tab("Inference"):
|
| 25 |
+
gr.Interface(
|
| 26 |
+
fn=predict,
|
| 27 |
+
inputs=gr.Textbox(lines=3, placeholder="Masukkan komentar..."),
|
| 28 |
+
outputs="text",
|
| 29 |
+
title="Deteksi Komentar Judi Online"
|
| 30 |
+
)
|
| 31 |
|
| 32 |
with gr.Tab("Monitoring"):
|
| 33 |
+
gr.Markdown("### π Model Performance Metrics")
|
| 34 |
metrics = load_metrics()
|
| 35 |
+
if "error" in metrics:
|
| 36 |
+
gr.Label(metrics)
|
| 37 |
+
else:
|
| 38 |
+
gr.Label({k: round(v, 4) for k, v in metrics.items()})
|
| 39 |
gr.Image("model/confusion_matrix.png", label="Confusion Matrix")
|
| 40 |
|
| 41 |
if __name__ == "__main__":
|
requirements.txt
CHANGED
|
@@ -9,5 +9,4 @@ fastapi
|
|
| 9 |
gradio
|
| 10 |
pytest
|
| 11 |
pytest-cov
|
| 12 |
-
|
| 13 |
-
json
|
|
|
|
| 9 |
gradio
|
| 10 |
pytest
|
| 11 |
pytest-cov
|
| 12 |
+
seaborn
|
|
|
saved_model.joblib
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:e56003c33afe3ca76111c4e09e0f61709b38e4be69d156f2ce7aa620f3d5f787
|
| 3 |
+
size 1355
|
vectorizer.joblib
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0c2f0281667ac90830c8763c894f12da4fab4c2b5bdce2e3e0971c777130b6f8
|
| 3 |
+
size 2966
|