vat75 commited on
Commit
db4d10f
·
verified ·
1 Parent(s): 0fc10f6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -14
app.py CHANGED
@@ -79,35 +79,39 @@ async def home():
79
  async def analyze_text(input_data: MessageInput):
80
  try:
81
  text = input_data.text
82
- inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True, max_length=128)
83
 
 
 
84
  with torch.no_grad():
85
  outputs = model(**inputs)
86
  probs = torch.nn.functional.softmax(outputs.logits, dim=-1)
87
 
 
88
  predicted_class = torch.argmax(probs, dim=-1).item()
89
- model_confidence = probs[0][predicted_class].item() * 100
90
 
91
- # نتحقق من المؤشرات اليدوية (الكلمات والدومينات)
92
- found_indicators = contains_scam_indicators(text)
93
-
94
- # إذا النموذج قال احتيال (1) أو الفحص اليدوي وجد أدلة (True)
95
- if predicted_class == 1 or found_indicators:
96
  verdict = "🚨 محاولة احتيال"
97
- # إذا كان الفحص اليدوي هو من كشفه نثبتها على 95 أو نأخذ ثقة النموذج أيهما أعلى
98
- final_confidence = max(model_confidence, 95.0) if found_indicators else model_confidence
99
  else:
100
- verdict = "✅ نص آمن"
101
- final_confidence = model_confidence
 
 
 
 
 
 
102
 
103
  return {
104
  "verdict": verdict,
105
- "confidence": round(final_confidence, 2)
 
106
  }
107
  except Exception as e:
108
  return {"error": str(e)}
109
 
110
-
111
-
112
  if __name__ == "__main__":
113
  uvicorn.run(app, host="0.0.0.0", port=7860)
 
79
  async def analyze_text(input_data: MessageInput):
80
  try:
81
  text = input_data.text
 
82
 
83
+ # 1. تحليل النص/الرابط باستخدام نموذج الذكاء الاصطناعي
84
+ inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True, max_length=128)
85
  with torch.no_grad():
86
  outputs = model(**inputs)
87
  probs = torch.nn.functional.softmax(outputs.logits, dim=-1)
88
 
89
+ # 2. الحصول على الفئة المتوقعة ونسبة الثقة
90
  predicted_class = torch.argmax(probs, dim=-1).item()
91
+ confidence = probs[0][predicted_class].item() * 100
92
 
93
+ # 3. منطق القرار (الاعتماد الكلي على الذكاء)
94
+ if predicted_class == 1:
95
+ # النموذج اكتشف أنه احتيال بناءً على تحليل عميق للرابط والنص
 
 
96
  verdict = "🚨 محاولة احتيال"
97
+ final_confidence = confidence
 
98
  else:
99
+ # النموذج يراه آمناً، هنا فقط نلقي نظرة سريعة على الكلمات الخطيرة جداً للتأكيد
100
+ if contains_scam_indicators(text):
101
+ # إذا النموذج قال آمن ولكن النص فيه "حدث بياناتك البنكية" (كلمات صريحة جداً)
102
+ verdict = "🚨 محاولة احتيال"
103
+ final_confidence = 90.0 # نعطي ثقة عالية لأن الكلمات صريحة
104
+ else:
105
+ verdict = "✅ نص آمن"
106
+ final_confidence = confidence
107
 
108
  return {
109
  "verdict": verdict,
110
+ "confidence": round(final_confidence, 2),
111
+ "method": "AI Analysis" # لإظهار أن التحليل تم عبر الذكاء
112
  }
113
  except Exception as e:
114
  return {"error": str(e)}
115
 
 
 
116
  if __name__ == "__main__":
117
  uvicorn.run(app, host="0.0.0.0", port=7860)