github-actions commited on
Commit
62a93be
Β·
1 Parent(s): 41582a3

Update model artifacts

Browse files
Files changed (4) hide show
  1. app.py +18 -21
  2. requirements.txt +1 -2
  3. saved_model.joblib +2 -2
  4. 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
- proba = None
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
- path = "model/metrics_summary.json"
25
- if os.path.exists(path):
26
- with open(path) as f:
27
  return json.load(f)
28
- return {}
 
29
 
30
  with gr.Blocks() as demo:
31
  with gr.Tab("Inference"):
32
- inp = gr.Textbox(lines=3, placeholder="Masukkan komentar...")
33
- out = gr.JSON()
34
- gr.Button("Prediksi").click(fn=predict, inputs=inp, outputs=out)
 
 
 
35
 
36
  with gr.Tab("Monitoring"):
 
37
  metrics = load_metrics()
38
- if metrics:
39
- gr.Markdown("### πŸ“Š Model Performance")
40
- gr.JSON(metrics)
41
- if os.path.exists("model/confusion_matrix.png"):
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
- os
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:0d2b3207c279e85fedb3b2040e9e5d087fc0d3efc92c5cdb700901de28c1d13a
3
- size 1339
 
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:a31b94f8ea321f5820b83e63ed43f178c474bf7f1f704e65a269dead777238b5
3
- size 3719
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0c2f0281667ac90830c8763c894f12da4fab4c2b5bdce2e3e0971c777130b6f8
3
+ size 2966