Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from transformers import MarianMTModel, MarianTokenizer | |
| import torch | |
| # Загрузка модели и токенизатора | |
| MODEL_NAME = "Helsinki-NLP/opus-mt-en-ru" | |
| tokenizer = MarianTokenizer.from_pretrained(MODEL_NAME) | |
| model = MarianMTModel.from_pretrained(MODEL_NAME) | |
| def translate(text): | |
| if not text.strip(): | |
| return "Пожалуйста, введите текст для перевода." | |
| if len(text) > 500: | |
| return "Слишком длинный текст. Пожалуйста, введите до 500 символов." | |
| try: | |
| batch = tokenizer([text], return_tensors="pt", padding=True) | |
| with torch.no_grad(): | |
| gen = model.generate(**batch) | |
| translated = tokenizer.batch_decode(gen, skip_special_tokens=True)[0] | |
| return translated | |
| except Exception as e: | |
| return f"Ошибка при переводе: {str(e)}" | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# Переводчик с английского на русский") | |
| with gr.Row(): | |
| input_text = gr.Textbox(label="Текст на английском", placeholder="Введите текст на английском языке") | |
| with gr.Row(): | |
| translate_btn = gr.Button("Перевести") | |
| with gr.Row(): | |
| output_text = gr.Textbox(label="Перевод на русский", interactive=False) | |
| translate_btn.click(translate, inputs=input_text, outputs=output_text) | |
| if __name__ == "__main__": | |
| demo.launch() | |