Update app.py
Browse files
app.py
CHANGED
|
@@ -383,6 +383,108 @@ def wingpt(model_name, sl, tl, input_text):
|
|
| 383 |
result = rawresult.split('\n')[-1].strip() if '\n' in rawresult else rawresult.strip()
|
| 384 |
return result
|
| 385 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 386 |
# App layout
|
| 387 |
st.header("Text Machine Translation")
|
| 388 |
input_text = st.text_input("Enter text to translate:")
|
|
|
|
| 383 |
result = rawresult.split('\n')[-1].strip() if '\n' in rawresult else rawresult.strip()
|
| 384 |
return result
|
| 385 |
|
| 386 |
+
@spaces.GPU
|
| 387 |
+
def translate_text(input_text: str, s_language: str, t_language: str, model_name: str) -> tuple[str, str]:
|
| 388 |
+
"""
|
| 389 |
+
Translates the input text from the source language to the target language using a specified model.
|
| 390 |
+
|
| 391 |
+
Parameters:
|
| 392 |
+
input_text (str): The source text to be translated
|
| 393 |
+
s_language (str): The source language of the input text
|
| 394 |
+
t_language (str): The target language in which the input text is translated
|
| 395 |
+
model_name (str): The selected translation model name
|
| 396 |
+
|
| 397 |
+
Returns:
|
| 398 |
+
tuple:
|
| 399 |
+
translated_text(str): The input text translated to the selected target language
|
| 400 |
+
message_text(str): A descriptive message summarizing the translation process. Example: "Translated from English to German with Helsinki-NLP."
|
| 401 |
+
|
| 402 |
+
Example:
|
| 403 |
+
>>> translate_text("Hello world", "English", "German", "Helsinki-NLP")
|
| 404 |
+
("Hallo Welt", "Translated from English to German with Helsinki-NLP.")
|
| 405 |
+
"""
|
| 406 |
+
|
| 407 |
+
sl = all_langs[s_language][0]
|
| 408 |
+
tl = all_langs[t_language][0]
|
| 409 |
+
message_text = f'Translated from {s_language} to {t_language} with {model_name}'
|
| 410 |
+
translated_text = None
|
| 411 |
+
try:
|
| 412 |
+
if "-mul" in model_name.lower() or "mul-" in model_name.lower() or "-roa" in model_name.lower():
|
| 413 |
+
translated_text, message_text = Translators(model_name, sl, tl, input_text).HelsinkiNLP_mulroa()
|
| 414 |
+
|
| 415 |
+
elif model_name == "Helsinki-NLP":
|
| 416 |
+
translated_text, message_text = Translators(model_name, sl, tl, input_text).HelsinkiNLP()
|
| 417 |
+
|
| 418 |
+
elif model_name == 'Argos':
|
| 419 |
+
translated_text = Translators(model_name, sl, tl, input_text).argos()
|
| 420 |
+
|
| 421 |
+
elif model_name == 'Google':
|
| 422 |
+
translated_text = Translators(model_name, sl, tl, input_text).google()
|
| 423 |
+
|
| 424 |
+
elif "m2m" in model_name.lower():
|
| 425 |
+
translated_text = Translators(model_name, sl, tl, input_text).mtom()
|
| 426 |
+
|
| 427 |
+
elif "lego" in model_name.lower():
|
| 428 |
+
translated_text = Translators(model_name, sl, tl, input_text).LegoMT()
|
| 429 |
+
|
| 430 |
+
elif model_name.startswith('t5'):
|
| 431 |
+
translated_text = Translators(model_name, s_language, t_language, input_text).tfive()
|
| 432 |
+
|
| 433 |
+
elif 'flan' in model_name.lower():
|
| 434 |
+
translated_text = Translators(model_name, s_language, t_language, input_text).flan()
|
| 435 |
+
|
| 436 |
+
elif 'madlad' in model_name.lower():
|
| 437 |
+
translated_text = Translators(model_name, sl, tl, input_text).madlad()
|
| 438 |
+
|
| 439 |
+
elif 'mt0' in model_name.lower():
|
| 440 |
+
translated_text = Translators(model_name, s_language, t_language, input_text).bigscience()
|
| 441 |
+
|
| 442 |
+
elif 'bloomz' in model_name.lower():
|
| 443 |
+
translated_text = Translators(model_name, s_language, t_language, input_text).bloomz()
|
| 444 |
+
|
| 445 |
+
elif 'nllb' in model_name.lower():
|
| 446 |
+
nnlbsl, nnlbtl = languagecodes.nllb_language_codes[s_language], languagecodes.nllb_language_codes[t_language]
|
| 447 |
+
translated_text = Translators(model_name, nnlbsl, nnlbtl, input_text).nllb()
|
| 448 |
+
|
| 449 |
+
elif model_name == "facebook/mbart-large-50-many-to-many-mmt":
|
| 450 |
+
translated_text = Translators(model_name, s_language, t_language, input_text).mbart_many_to_many()
|
| 451 |
+
|
| 452 |
+
elif model_name == "facebook/mbart-large-50-one-to-many-mmt":
|
| 453 |
+
translated_text = Translators(model_name, s_language, t_language, input_text).mbart_one_to_many()
|
| 454 |
+
|
| 455 |
+
elif model_name == "facebook/mbart-large-50-many-to-one-mmt":
|
| 456 |
+
translated_text = Translators(model_name, s_language, t_language, input_text).mbart_many_to_one()
|
| 457 |
+
|
| 458 |
+
elif 'teuken' in model_name.lower():
|
| 459 |
+
translated_text = Translators(model_name, s_language, t_language, input_text).teuken()
|
| 460 |
+
|
| 461 |
+
elif model_name == "utter-project/EuroLLM-1.7B-Instruct":
|
| 462 |
+
translated_text = Translators(model_name, s_language, t_language, input_text).eurollm_instruct()
|
| 463 |
+
|
| 464 |
+
elif model_name == "utter-project/EuroLLM-1.7B":
|
| 465 |
+
translated_text = Translators(model_name, s_language, t_language, input_text).eurollm()
|
| 466 |
+
|
| 467 |
+
elif 'Unbabel' in model_name:
|
| 468 |
+
translated_text = Translators(model_name, s_language, t_language, input_text).unbabel()
|
| 469 |
+
|
| 470 |
+
elif model_name == "HuggingFaceTB/SmolLM3-3B":
|
| 471 |
+
translated_text = Translators(model_name, s_language, t_language, input_text).smollm()
|
| 472 |
+
|
| 473 |
+
elif model_name == "winninghealth/WiNGPT-Babel-2":
|
| 474 |
+
translated_text = Translators(model_name, s_language, t_language, input_text).wingpt()
|
| 475 |
+
|
| 476 |
+
elif "LLaMAX" in model_name:
|
| 477 |
+
translated_text = Translators(model_name, s_language, t_language, input_text).LLaMAX()
|
| 478 |
+
|
| 479 |
+
elif model_name == "Bergamot":
|
| 480 |
+
translated_text, message_text = Translators(model_name, s_language, t_language, input_text).bergamot()
|
| 481 |
+
|
| 482 |
+
except Exception as error:
|
| 483 |
+
translated_text = error
|
| 484 |
+
finally:
|
| 485 |
+
print(input_text, translated_text, message_text)
|
| 486 |
+
return translated_text, message_text
|
| 487 |
+
|
| 488 |
# App layout
|
| 489 |
st.header("Text Machine Translation")
|
| 490 |
input_text = st.text_input("Enter text to translate:")
|