Spaces:
Sleeping
Sleeping
MinAA commited on
Commit ·
3832d6e
1
Parent(s): 498810e
init
Browse files
app.py
CHANGED
|
@@ -187,11 +187,19 @@ def summarizer(text, max_length, min_length, model_name):
|
|
| 187 |
return f"Ошибка: {str(e)}"
|
| 188 |
|
| 189 |
@measure_time_and_save("Переводчик")
|
| 190 |
-
def translator(text, model_name):
|
| 191 |
"""Перевод текста"""
|
| 192 |
try:
|
| 193 |
translator_pipe = get_pipeline("translation", model_name)
|
| 194 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 195 |
if isinstance(result, list):
|
| 196 |
result = result[0]
|
| 197 |
return result['translation_text']
|
|
@@ -685,12 +693,44 @@ with gr.Blocks(title="Трансформеры Hugging Face", theme=gr.themes.So
|
|
| 685 |
value="Helsinki-NLP/opus-mt-en-ru",
|
| 686 |
label="Выберите модель"
|
| 687 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 688 |
translator_btn = gr.Button("Перевести", variant="primary")
|
| 689 |
with gr.Column():
|
| 690 |
translator_output = gr.Textbox(label="Перевод", lines=3)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 691 |
translator_btn.click(
|
| 692 |
translator,
|
| 693 |
-
inputs=[translator_input, translator_model],
|
| 694 |
outputs=translator_output
|
| 695 |
)
|
| 696 |
|
|
|
|
| 187 |
return f"Ошибка: {str(e)}"
|
| 188 |
|
| 189 |
@measure_time_and_save("Переводчик")
|
| 190 |
+
def translator(text, model_name, src_lang=None, tgt_lang=None):
|
| 191 |
"""Перевод текста"""
|
| 192 |
try:
|
| 193 |
translator_pipe = get_pipeline("translation", model_name)
|
| 194 |
+
|
| 195 |
+
# Для mBART моделей требуются src_lang и tgt_lang
|
| 196 |
+
if "mbart" in model_name.lower():
|
| 197 |
+
if not src_lang or not tgt_lang:
|
| 198 |
+
return "Ошибка: Для модели mBART необходимо указать исходный и целевой языки"
|
| 199 |
+
result = translator_pipe(text, src_lang=src_lang, tgt_lang=tgt_lang)
|
| 200 |
+
else:
|
| 201 |
+
result = translator_pipe(text)
|
| 202 |
+
|
| 203 |
if isinstance(result, list):
|
| 204 |
result = result[0]
|
| 205 |
return result['translation_text']
|
|
|
|
| 693 |
value="Helsinki-NLP/opus-mt-en-ru",
|
| 694 |
label="Выберите модель"
|
| 695 |
)
|
| 696 |
+
translator_src_lang = gr.Dropdown(
|
| 697 |
+
choices=[
|
| 698 |
+
"en_XX", "ru_RU", "de_DE", "fr_XX", "es_XX",
|
| 699 |
+
"it_IT", "pt_XX", "ja_XX", "ko_KR", "zh_CN",
|
| 700 |
+
"ar_AR", "hi_IN", "tr_TR", "vi_VN", "th_TH"
|
| 701 |
+
],
|
| 702 |
+
value="en_XX",
|
| 703 |
+
label="Исходный язык (для mBART)",
|
| 704 |
+
visible=False
|
| 705 |
+
)
|
| 706 |
+
translator_tgt_lang = gr.Dropdown(
|
| 707 |
+
choices=[
|
| 708 |
+
"en_XX", "ru_RU", "de_DE", "fr_XX", "es_XX",
|
| 709 |
+
"it_IT", "pt_XX", "ja_XX", "ko_KR", "zh_CN",
|
| 710 |
+
"ar_AR", "hi_IN", "tr_TR", "vi_VN", "th_TH"
|
| 711 |
+
],
|
| 712 |
+
value="ru_RU",
|
| 713 |
+
label="Целевой язык (для mBART)",
|
| 714 |
+
visible=False
|
| 715 |
+
)
|
| 716 |
translator_btn = gr.Button("Перевести", variant="primary")
|
| 717 |
with gr.Column():
|
| 718 |
translator_output = gr.Textbox(label="Перевод", lines=3)
|
| 719 |
+
|
| 720 |
+
def update_lang_visibility(model_name):
|
| 721 |
+
"""Показывает/скрывает поля языков в зависимости от модели"""
|
| 722 |
+
is_mbart = "mbart" in model_name.lower()
|
| 723 |
+
return gr.update(visible=is_mbart), gr.update(visible=is_mbart)
|
| 724 |
+
|
| 725 |
+
translator_model.change(
|
| 726 |
+
fn=update_lang_visibility,
|
| 727 |
+
inputs=translator_model,
|
| 728 |
+
outputs=[translator_src_lang, translator_tgt_lang]
|
| 729 |
+
)
|
| 730 |
+
|
| 731 |
translator_btn.click(
|
| 732 |
translator,
|
| 733 |
+
inputs=[translator_input, translator_model, translator_src_lang, translator_tgt_lang],
|
| 734 |
outputs=translator_output
|
| 735 |
)
|
| 736 |
|