OmidSakaki commited on
Commit
fb53d34
·
verified ·
1 Parent(s): 5353bf7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -10
app.py CHANGED
@@ -39,12 +39,20 @@ def translate_to_english(text_fa: str) -> str:
39
  return f"خطا در ترجمه: {str(e)}"
40
 
41
  def classify_mental_health(text_fa: str) -> str:
42
- if not text_fa.strip():
43
  return "لطفاً متن فارسی وارد کنید."
44
 
45
  # ترجمه به انگلیسی
46
  text_en = translate_to_english(text_fa)
47
 
 
 
 
 
 
 
 
 
48
  try:
49
  # طبقه‌بندی
50
  result = classifier(text_en, truncation=True, max_length=512)[0]
@@ -60,7 +68,7 @@ def classify_mental_health(text_fa: str) -> str:
60
  }
61
  label_fa = label_map.get(label_en, label_en)
62
 
63
- # توصیه‌های حمایتی کوتاه (فقط برای کلاس‌های حساس)
64
  advice = ""
65
  if label_en == 'Depression':
66
  advice = (
@@ -71,7 +79,6 @@ def classify_mental_health(text_fa: str) -> str:
71
  "حتماً به روانشناس یا روانپزشک مراجعه کنید – درمان‌های مؤثری وجود دارد.\n"
72
  "شما ارزشمند هستید و شرایط می‌تواند بهتر شود."
73
  )
74
-
75
  elif label_en == 'Anxiety':
76
  advice = (
77
  "اضطراب شدید می‌تواند خیلی آزاردهنده باشد، اما راه‌هایی برای کنترل آن وجود دارد.\n"
@@ -81,19 +88,18 @@ def classify_mental_health(text_fa: str) -> str:
81
  "با یک فرد نزدیک یا مشاور صحبت کنید.\n"
82
  "این احساس موقتی است و شما قادر به عبور از آن هستید."
83
  )
84
-
85
  elif label_en == 'Suicidal':
86
  advice = (
87
  "اگر افکار خودکشی دارید، لطفاً همین حالا کمک بگیرید – شما مهم هستید.\n"
88
- "فوراً با خطوط حمایتی تماس بگیرید: در ایران شماره ۱۲۳ (اورژانس اجتماعی) یا ۱۴۸۰ (مشاوره بهزیستی) را بگیرید.\n"
89
  "وسایل خطرناک را از دسترس دور کنید (حتی برای مدتی کوتاه).\n"
90
  "با یک فرد مورد اعتماد صحبت کنید یا به نزدیک‌ترین مرکز درمانی بروید.\n"
91
  "این افکار گذرا هستند و کمک واقعی وجود دارد – لطفاً یک قدم بردارید.\n"
92
  "زندگی شما ارزشمند است و شرایط می‌تواند تغییر کند."
93
  )
94
 
95
- # خروجی نهایی
96
- #output = f"متن ترجمه‌شده به انگلیسی:\n{text_en}\n\n"
97
  output += f"وضعیت تشخیص داده شده: **{label_fa}**\n"
98
  output += f"اطمینان مدل: {score:.1f}%\n\n"
99
 
@@ -102,10 +108,14 @@ def classify_mental_health(text_fa: str) -> str:
102
 
103
  output += "⚠️ **توجه مهم:** این فقط یک تحلیل اولیه توسط هوش مصنوعی است و جایگزین نظر متخصص روانشناس یا روانپزشک نمی‌شود. اگر احساس خطر یا بحران دارید، فوراً با خطوط حمایتی (۱۲۳ یا ۱۴۸۰ در ایران) تماس بگیرید یا به مرکز درمانی مراجعه کنید."
104
 
105
- return output
106
-
107
  except Exception as e:
108
- return f"خطا در پردازش: {str(e)}\nلطفاً دوباره امتحان کنید یا با متخصص مشورت کنید."
 
 
 
 
 
 
109
 
110
  # راب�� Gradio
111
  demo = gr.Interface(
 
39
  return f"خطا در ترجمه: {str(e)}"
40
 
41
  def classify_mental_health(text_fa: str) -> str:
42
+ if not text_fa or not text_fa.strip():
43
  return "لطفاً متن فارسی وارد کنید."
44
 
45
  # ترجمه به انگلیسی
46
  text_en = translate_to_english(text_fa)
47
 
48
+ # مقدار پیش‌فرض برای خروجی (در صورت خطا استفاده می‌شود)
49
+ output = (
50
+ f"متن ترجمه‌شده به انگلیسی:\n{text_en}\n\n"
51
+ "خطا در پردازش مدل رخ داد.\n"
52
+ "لطفاً دوباره امتحان کنید یا متن دیگری وارد کنید.\n"
53
+ "⚠️ اگر احساس بحران دارید، فوراً با ۱۲۳ (اورژانس اجتماعی) یا ۱۴۸۰ (مشاوره بهزیستی) تماس بگیرید."
54
+ )
55
+
56
  try:
57
  # طبقه‌بندی
58
  result = classifier(text_en, truncation=True, max_length=512)[0]
 
68
  }
69
  label_fa = label_map.get(label_en, label_en)
70
 
71
+ # توصیه‌های حمایتی
72
  advice = ""
73
  if label_en == 'Depression':
74
  advice = (
 
79
  "حتماً به روانشناس یا روانپزشک مراجعه کنید – درمان‌های مؤثری وجود دارد.\n"
80
  "شما ارزشمند هستید و شرایط می‌تواند بهتر شود."
81
  )
 
82
  elif label_en == 'Anxiety':
83
  advice = (
84
  "اضطراب شدید می‌تواند خیلی آزاردهنده باشد، اما راه‌هایی برای کنترل آن وجود دارد.\n"
 
88
  "با یک فرد نزدیک یا مشاور صحبت کنید.\n"
89
  "این احساس موقتی است و شما قادر به عبور از آن هستید."
90
  )
 
91
  elif label_en == 'Suicidal':
92
  advice = (
93
  "اگر افکار خودکشی دارید، لطفاً همین حالا کمک بگیرید – شما مهم هستید.\n"
94
+ "فوراً با خطوط حمایتی تماس بگیرید: در ایران شماره ۱۲۳ (اورژانس اجتماعی) یا ۱۴۸۰ (مشاوره بهزیستی).\n"
95
  "وسایل خطرناک را از دسترس دور کنید (حتی برای مدتی کوتاه).\n"
96
  "با یک فرد مورد اعتماد صحبت کنید یا به نزدیک‌ترین مرکز درمانی بروید.\n"
97
  "این افکار گذرا هستند و کمک واقعی وجود دارد – لطفاً یک قدم بردارید.\n"
98
  "زندگی شما ارزشمند است و شرایط می‌تواند تغییر کند."
99
  )
100
 
101
+ # ساخت خروجی نهایی
102
+ output = f"متن ترجمه‌شده به انگلیسی:\n{text_en}\n\n"
103
  output += f"وضعیت تشخیص داده شده: **{label_fa}**\n"
104
  output += f"اطمینان مدل: {score:.1f}%\n\n"
105
 
 
108
 
109
  output += "⚠️ **توجه مهم:** این فقط یک تحلیل اولیه توسط هوش مصنوعی است و جایگزین نظر متخصص روانشناس یا روانپزشک نمی‌شود. اگر احساس خطر یا بحران دارید، فوراً با خطوط حمایتی (۱۲۳ یا ۱۴۸۰ در ایران) تماس بگیرید یا به مرکز درمانی مراجعه کنید."
110
 
 
 
111
  except Exception as e:
112
+ # در صورت خطا، خروجی پیش‌فرض را با جزئیات خطا غنی‌تر می‌کنیم
113
+ #output = f"متن ترجمه‌شده به انگلیسی:\n{text_en}\n\n"
114
+ output += f"خطا در پردازش مدل: {str(e)}\n"
115
+ output += "لطفاً دوباره امتحان کنید یا متن کوتاه‌تری وارد کنید.\n"
116
+ output += "⚠️ اگر احساس بحران دارید، فوراً با ۱۲۳ یا ۱۴۸۰ تماس بگیرید."
117
+
118
+ return output
119
 
120
  # راب�� Gradio
121
  demo = gr.Interface(