from transformers import AutoTokenizer, AutoModelForSeq2SeqLM import gradio as gr model_name = "Helsinki-NLP/opus-mt-en-ur" print("Downloading tokenizer and model directly...") # Loading the tokenizer and model directly bypasses the buggy pipeline tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForSeq2SeqLM.from_pretrained(model_name) print("Model loaded successfully!") def translate_en_to_ur(text): if not text.strip(): return "" # 1. Tokenize: Convert the text into numbers the model understands inputs = tokenizer(text, return_tensors="pt", padding=True) # 2. Generate: The model predicts the Urdu translation tokens translated_tokens = model.generate(**inputs) # 3. Decode: Convert the predicted tokens back into readable text result = tokenizer.decode(translated_tokens[0], skip_special_tokens=True) return result # Build the Gradio Interface interface = gr.Interface( fn=translate_en_to_ur, inputs=gr.Textbox(lines=5, placeholder="Enter English text here...", label="English Input"), outputs=gr.Textbox(lines=5, label="Urdu Translation"), title="English to Urdu Translator 🇵🇰", description="Enter any English text and the AI will translate it into Urdu.", theme="default" ) # Launch the app interface.launch(share=True)