Spaces:
Running
Running
SwitchAlpha
commited on
Commit
·
38c716a
1
Parent(s):
e0e8859
multilang-fix
Browse files
app.py
CHANGED
|
@@ -149,6 +149,68 @@ class CryNetMultiBranch(nn.Module):
|
|
| 149 |
return self.fusion_mlp(combined)
|
| 150 |
|
| 151 |
# --- 5. Global Kaynak Başlatma ---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 152 |
app_globals = {}
|
| 153 |
|
| 154 |
# --- 6. Kaynakları lifespan olay yöneticisi ile yükleme ---
|
|
@@ -318,14 +380,16 @@ async def predict_cry_audio(file: UploadFile = File(...), language: Optional[str
|
|
| 318 |
# Orijinal JSON yanıt mantığınız (şimdi dile göre bakım noktaları kullanıyor)
|
| 319 |
response_data = {}
|
| 320 |
CARE_POINTS_DB = app_globals["CARE_POINTS_DB_MULTILANG"].get(language, app_globals["CARE_POINTS_DB_MULTILANG"]["tr"])
|
|
|
|
| 321 |
|
| 322 |
if top1_score > cfg.THRESHOLD_HIGH_CONFIDENCE:
|
| 323 |
care_points = CARE_POINTS_DB.get(top1_label, [])
|
| 324 |
selected_points = random.sample(care_points, min(len(care_points), cfg.NUM_CARE_POINTS))
|
|
|
|
| 325 |
response_data = {
|
| 326 |
"status": "success_single",
|
| 327 |
-
"title":
|
| 328 |
-
"subtitle": "
|
| 329 |
"care_points": selected_points,
|
| 330 |
"promo_text": "Daha detaylı rehberlik için üyelik satın alabilirsiniz",
|
| 331 |
"all_scores": sorted_confidences
|
|
@@ -338,10 +402,12 @@ async def predict_cry_audio(file: UploadFile = File(...), language: Optional[str
|
|
| 338 |
care_points_2 = CARE_POINTS_DB.get(top2_label, [])
|
| 339 |
if care_points_2: combined_points.append(random.choice(care_points_2))
|
| 340 |
|
|
|
|
|
|
|
| 341 |
response_data = {
|
| 342 |
"status": "success_multiple",
|
| 343 |
-
"title":
|
| 344 |
-
"subtitle": "
|
| 345 |
"care_points": combined_points,
|
| 346 |
"promo_text": "Daha detaylı rehberlik için üyelik satın alabilirsiniz",
|
| 347 |
"all_scores": sorted_confidences
|
|
|
|
| 149 |
return self.fusion_mlp(combined)
|
| 150 |
|
| 151 |
# --- 5. Global Kaynak Başlatma ---
|
| 152 |
+
}
|
| 153 |
+
}
|
| 154 |
+
|
| 155 |
+
# --- 4. Çok Dilli UI Metinleri ---
|
| 156 |
+
UI_TEXTS = {
|
| 157 |
+
"tr": {
|
| 158 |
+
"title_single": "Bebek muhtemelen şundan ağlıyor: {label}",
|
| 159 |
+
"title_double": "Bebek muhtemelen şundan ağlıyor: {label1} veya {label2}",
|
| 160 |
+
"subtitle": "Ana nedenler ve bakım noktaları:",
|
| 161 |
+
"category_names": {
|
| 162 |
+
"belly_pain": "Karın Ağrısı",
|
| 163 |
+
"burping": "Geğirme",
|
| 164 |
+
"discomfort": "Rahatsızlık",
|
| 165 |
+
"hungry": "Açlık"
|
| 166 |
+
}
|
| 167 |
+
},
|
| 168 |
+
"en": {
|
| 169 |
+
"title_single": "Baby is probably crying from: {label}",
|
| 170 |
+
"title_double": "Baby is probably crying from: {label1} or {label2}",
|
| 171 |
+
"subtitle": "Main causes and care points:",
|
| 172 |
+
"category_names": {
|
| 173 |
+
"belly_pain": "Belly Pain",
|
| 174 |
+
"burping": "Burping",
|
| 175 |
+
"discomfort": "Discomfort",
|
| 176 |
+
"hungry": "Hungry"
|
| 177 |
+
}
|
| 178 |
+
},
|
| 179 |
+
"de": {
|
| 180 |
+
"title_single": "Baby weint wahrscheinlich wegen: {label}",
|
| 181 |
+
"title_double": "Baby weint wahrscheinlich wegen: {label1} oder {label2}",
|
| 182 |
+
"subtitle": "Hauptursachen und Pflegepunkte:",
|
| 183 |
+
"category_names": {
|
| 184 |
+
"belly_pain": "Bauchschmerzen",
|
| 185 |
+
"burping": "Aufstoßen",
|
| 186 |
+
"discomfort": "Unbehagen",
|
| 187 |
+
"hungry": "Hungrig"
|
| 188 |
+
}
|
| 189 |
+
},
|
| 190 |
+
"ru": {
|
| 191 |
+
"title_single": "Ребенок, вероятно, плачет от: {label}",
|
| 192 |
+
"title_double": "Ребенок, вероятно, плачет от: {label1} или {label2}",
|
| 193 |
+
"subtitle": "Основные причины и рекомендации по уходу:",
|
| 194 |
+
"category_names": {
|
| 195 |
+
"belly_pain": "Боль в животе",
|
| 196 |
+
"burping": "Отрыжка",
|
| 197 |
+
"discomfort": "Дискомфорт",
|
| 198 |
+
"hungry": "Голод"
|
| 199 |
+
}
|
| 200 |
+
},
|
| 201 |
+
"ko": {
|
| 202 |
+
"title_single": "아기가 다음 이유로 울고 있을 가능성이 높습니다: {label}",
|
| 203 |
+
"title_double": "아기가 다음 이유로 울고 있을 가능성이 높습니다: {label1} 또는 {label2}",
|
| 204 |
+
"subtitle": "주요 원인 및 돌봄 요령:",
|
| 205 |
+
"category_names": {
|
| 206 |
+
"belly_pain": "복통",
|
| 207 |
+
"burping": "트림",
|
| 208 |
+
"discomfort": "불편함",
|
| 209 |
+
"hungry": "배고픔"
|
| 210 |
+
}
|
| 211 |
+
}
|
| 212 |
+
}
|
| 213 |
+
|
| 214 |
app_globals = {}
|
| 215 |
|
| 216 |
# --- 6. Kaynakları lifespan olay yöneticisi ile yükleme ---
|
|
|
|
| 380 |
# Orijinal JSON yanıt mantığınız (şimdi dile göre bakım noktaları kullanıyor)
|
| 381 |
response_data = {}
|
| 382 |
CARE_POINTS_DB = app_globals["CARE_POINTS_DB_MULTILANG"].get(language, app_globals["CARE_POINTS_DB_MULTILANG"]["tr"])
|
| 383 |
+
ui_texts = UI_TEXTS.get(language, UI_TEXTS["tr"])
|
| 384 |
|
| 385 |
if top1_score > cfg.THRESHOLD_HIGH_CONFIDENCE:
|
| 386 |
care_points = CARE_POINTS_DB.get(top1_label, [])
|
| 387 |
selected_points = random.sample(care_points, min(len(care_points), cfg.NUM_CARE_POINTS))
|
| 388 |
+
top1_label_translated = ui_texts["category_names"].get(top1_label, top1_label)
|
| 389 |
response_data = {
|
| 390 |
"status": "success_single",
|
| 391 |
+
"title": ui_texts["title_single"].format(label=top1_label_translated),
|
| 392 |
+
"subtitle": ui_texts["subtitle"],
|
| 393 |
"care_points": selected_points,
|
| 394 |
"promo_text": "Daha detaylı rehberlik için üyelik satın alabilirsiniz",
|
| 395 |
"all_scores": sorted_confidences
|
|
|
|
| 402 |
care_points_2 = CARE_POINTS_DB.get(top2_label, [])
|
| 403 |
if care_points_2: combined_points.append(random.choice(care_points_2))
|
| 404 |
|
| 405 |
+
top1_label_translated = ui_texts["category_names"].get(top1_label, top1_label)
|
| 406 |
+
top2_label_translated = ui_texts["category_names"].get(top2_label, top2_label)
|
| 407 |
response_data = {
|
| 408 |
"status": "success_multiple",
|
| 409 |
+
"title": ui_texts["title_double"].format(label1=top1_label_translated, label2=top2_label_translated),
|
| 410 |
+
"subtitle": ui_texts["subtitle"],
|
| 411 |
"care_points": combined_points,
|
| 412 |
"promo_text": "Daha detaylı rehberlik için üyelik satın alabilirsiniz",
|
| 413 |
"all_scores": sorted_confidences
|