GoshawkVortexAI commited on
Commit
34ea0f2
·
verified ·
1 Parent(s): 527d0b9

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +87 -0
app.py ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import torch
3
+ from transformers import AutoTokenizer, AutoModelForSequenceClassification
4
+
5
+ # Hugging Face model repo
6
+ MODEL_NAME = "GoshawkVortexAI/Goshawk_insurance"
7
+
8
+ # CPU kullan
9
+ device = torch.device("cpu")
10
+
11
+ print("Model yükleniyor...")
12
+
13
+ tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
14
+ model = AutoModelForSequenceClassification.from_pretrained(MODEL_NAME)
15
+
16
+ model.to(device)
17
+ model.eval()
18
+
19
+ # Label mapping
20
+ id2label = model.config.id2label
21
+
22
+
23
+ def predict(text):
24
+ if not text or not text.strip():
25
+ return "Lütfen bir sigorta metni girin."
26
+
27
+ inputs = tokenizer(
28
+ text,
29
+ return_tensors="pt",
30
+ truncation=True,
31
+ padding=True,
32
+ max_length=256
33
+ )
34
+
35
+ inputs = {k: v.to(device) for k, v in inputs.items()}
36
+
37
+ with torch.no_grad():
38
+ outputs = model(**inputs)
39
+
40
+ probabilities = torch.softmax(outputs.logits, dim=-1)[0]
41
+
42
+ results = {}
43
+
44
+ for i, probability in enumerate(probabilities):
45
+ label = id2label.get(i, f"LABEL_{i}")
46
+ results[label] = float(probability)
47
+
48
+ # En yüksek olasılık
49
+ best_label = max(results, key=results.get)
50
+ confidence = results[best_label]
51
+
52
+ return {
53
+ "Tahmin": best_label,
54
+ "Güven": f"{confidence * 100:.2f}%",
55
+ "Tüm sonuçlar": {
56
+ k: f"{v * 100:.2f}%"
57
+ for k, v in sorted(
58
+ results.items(),
59
+ key=lambda x: x[1],
60
+ reverse=True
61
+ )
62
+ }
63
+ }
64
+
65
+
66
+ demo = gr.Interface(
67
+ fn=predict,
68
+ inputs=gr.Textbox(
69
+ label="Sigorta Metni",
70
+ placeholder="Örneğin: Araç kaza nedeniyle hasar gördü...",
71
+ lines=6
72
+ ),
73
+ outputs=gr.JSON(label="Model Sonucu"),
74
+ title="Goshawk Insurance AI",
75
+ description=(
76
+ "Sigorta sektörüne özel DistilBERT modeli. "
77
+ "Metni analiz ederek ilgili sınıfı tahmin eder."
78
+ ),
79
+ examples=[
80
+ ["Araç kazası sonucunda ön tampon ve far hasar gördü."],
81
+ ["Kasko poliçesi kapsamında hasar başvurusu yapılmıştır."],
82
+ ["Sigortalının sağlık giderleri poliçe kapsamında değerlendirilmiştir."]
83
+ ]
84
+ )
85
+
86
+ if __name__ == "__main__":
87
+ demo.launch()