Spaces:
Runtime error
Runtime error
| """ | |
| Paso 2: Traducción con NLLB-200. | |
| """ | |
| import time | |
| from typing import Dict | |
| import torch | |
| from config import LANG_CODES, TRANSLATION_MODEL_ID | |
| from core.models import ModelManager | |
| def translate_text( | |
| spanish_text: str, | |
| manager: ModelManager, | |
| target_lang: str = "English", | |
| ) -> Dict: | |
| """ | |
| Traduce texto del español al idioma destino. | |
| Returns: | |
| dict con 'translated_text', 'processing_time', 'model', 'success' | |
| """ | |
| start_time = time.time() | |
| try: | |
| src_lang = LANG_CODES["Spanish"] | |
| tgt_lang = LANG_CODES[target_lang] | |
| manager.translation_tokenizer.src_lang = src_lang | |
| inputs = manager.translation_tokenizer( | |
| spanish_text, | |
| return_tensors="pt", | |
| padding=True, | |
| truncation=True, | |
| max_length=512, | |
| ).to(manager.device) | |
| print(f"🌐 Traduciendo a {target_lang}...") | |
| with torch.no_grad(): | |
| generated_tokens = manager.translation_model.generate( | |
| **inputs, | |
| forced_bos_token_id=manager.translation_tokenizer.lang_code_to_id[tgt_lang], | |
| max_length=512, | |
| num_beams=5, | |
| early_stopping=True, | |
| ) | |
| translated_text = manager.translation_tokenizer.batch_decode( | |
| generated_tokens, skip_special_tokens=True | |
| )[0] | |
| return { | |
| "translated_text": translated_text.strip(), | |
| "processing_time": time.time() - start_time, | |
| "model": TRANSLATION_MODEL_ID, | |
| "source_lang": "Spanish", | |
| "target_lang": target_lang, | |
| "success": True, | |
| } | |
| except Exception as e: | |
| return { | |
| "translated_text": "", | |
| "processing_time": time.time() - start_time, | |
| "model": TRANSLATION_MODEL_ID, | |
| "success": False, | |
| "error": str(e), | |
| } | |