kkAsmaa commited on
Commit
ac5b8f2
·
verified ·
1 Parent(s): 1063491

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -11
app.py CHANGED
@@ -9,7 +9,7 @@ MODEL_REPO = "kkAsmaa/ChildShield"
9
  MODEL_NAME = "aubmindlab/bert-base-arabertv02-twitter"
10
  SUB_FOLDER = "ChildShield"
11
  HF_TOKEN = os.getenv("HF_TOKEN")
12
- print("🔄 Loading ChildShield Explainable AI Core...")
13
 
14
  tokenizer = BertTokenizer.from_pretrained(MODEL_NAME)
15
  model = AutoModelForSequenceClassification.from_pretrained(MODEL_REPO, token=HF_TOKEN, subfolder=SUB_FOLDER)
@@ -33,7 +33,7 @@ def full_preprocess(text):
33
  return final_text
34
 
35
  def predict_safety_api(text):
36
- """بوابة الفحص الأساسية الشاملة مع سجلات الرصد الحية"""
37
  cleaned_text = full_preprocess(text)
38
  full_encodings = tokenizer(cleaned_text, add_special_tokens=False, return_attention_mask=False)
39
  input_ids = full_encodings['input_ids']
@@ -65,7 +65,7 @@ def predict_safety_api(text):
65
  outputs = model(**inputs)
66
 
67
  probs = torch.softmax(outputs.logits, dim=-1).flatten().tolist()
68
- unsafe_p = float(probs[1])
69
 
70
  if unsafe_p > 0.50:
71
  is_blocked = True
@@ -73,19 +73,18 @@ def predict_safety_api(text):
73
  if window_text not in triggered_sentences:
74
  triggered_sentences.append(window_text)
75
 
76
- # 🎯 طباعة التقرير الشامل فوراً داخل شاشة الـ Logs السوداء ليظهر أمام الدكاترة حياً عند اتصال الامتداد
77
  print("\n📊 --- ChildShield Core Inspection Report ---")
78
  print(f"📥 Received Text Preview: {text[:60]}...")
79
  print(f"🔑 Total Tokens Evaluated: {total_tokens}")
80
  print(f"🪟 Total Windows Processed: {total_windows}")
81
- print(f"🚨 Verdict: {'UNSAFE (BLOCK)' if is_blocked else 'SAFE (PASS)'}")
82
- print(f"🛑 Triggered Phrases Captured: {triggered_sentences}")
83
  print("---------------------------------------------\n")
84
 
 
85
  if is_blocked:
86
  return {
87
  "verdict": "UNSAFE",
88
- "block": True,
89
  "confidence": f"{highest_unsafe_prob * 100:.2f}%",
90
  "evaluated_tokens": total_tokens,
91
  "processed_windows": total_windows,
@@ -95,7 +94,7 @@ def predict_safety_api(text):
95
  safe_p = 1.0 - highest_unsafe_prob
96
  return {
97
  "verdict": "SAFE",
98
- "block": False,
99
  "confidence": f"{safe_p * 100:.2f}%",
100
  "evaluated_tokens": total_tokens,
101
  "processed_windows": total_windows,
@@ -111,6 +110,3 @@ interface = gr.Interface(
111
 
112
  if __name__ == "__main__":
113
  interface.launch()
114
-
115
-
116
-
 
9
  MODEL_NAME = "aubmindlab/bert-base-arabertv02-twitter"
10
  SUB_FOLDER = "ChildShield"
11
  HF_TOKEN = os.getenv("HF_TOKEN")
12
+ print("🔄 Loading ChildShield Robust Production Engine...")
13
 
14
  tokenizer = BertTokenizer.from_pretrained(MODEL_NAME)
15
  model = AutoModelForSequenceClassification.from_pretrained(MODEL_REPO, token=HF_TOKEN, subfolder=SUB_FOLDER)
 
33
  return final_text
34
 
35
  def predict_safety_api(text):
36
+ """بوابة الفحص الأساسية الشاملة والمقاومة لأخطاء التضارب اللغوي للمتصفحات"""
37
  cleaned_text = full_preprocess(text)
38
  full_encodings = tokenizer(cleaned_text, add_special_tokens=False, return_attention_mask=False)
39
  input_ids = full_encodings['input_ids']
 
65
  outputs = model(**inputs)
66
 
67
  probs = torch.softmax(outputs.logits, dim=-1).flatten().tolist()
68
+ unsafe_p = float(probs[1]) # قراءة معامل الخطر بدقة من الفئة رقم 1
69
 
70
  if unsafe_p > 0.50:
71
  is_blocked = True
 
73
  if window_text not in triggered_sentences:
74
  triggered_sentences.append(window_text)
75
 
 
76
  print("\n📊 --- ChildShield Core Inspection Report ---")
77
  print(f"📥 Received Text Preview: {text[:60]}...")
78
  print(f"🔑 Total Tokens Evaluated: {total_tokens}")
79
  print(f"🪟 Total Windows Processed: {total_windows}")
80
+ print(f"🚨 Verdict: {'UNSAFE' if is_blocked else 'SAFE'}")
 
81
  print("---------------------------------------------\n")
82
 
83
+ # 🎯 التحديث الحاسم: إرسال حالة الحظر كنص صريح يفك عقدة الجافا سكربت فوراً
84
  if is_blocked:
85
  return {
86
  "verdict": "UNSAFE",
87
+ "block": "true", # نص صريح صغير
88
  "confidence": f"{highest_unsafe_prob * 100:.2f}%",
89
  "evaluated_tokens": total_tokens,
90
  "processed_windows": total_windows,
 
94
  safe_p = 1.0 - highest_unsafe_prob
95
  return {
96
  "verdict": "SAFE",
97
+ "block": "false", # نص صريح صغير
98
  "confidence": f"{safe_p * 100:.2f}%",
99
  "evaluated_tokens": total_tokens,
100
  "processed_windows": total_windows,
 
110
 
111
  if __name__ == "__main__":
112
  interface.launch()