HumorHarmony/Darija
0
1# ============================================2# INSTALL GRADIO3# ============================================4!pip install gradio -q5 6import gradio as gr7 8# ============================================9# GRADIO INTERFACE10# ============================================11 12def translate_interface(darija_text, target_language):13 """14 Interface function for Gradio15 """16 if not darija_text.strip():17 return "⚠️ Please enter some Darija text!"18 19 try:20 # Step 1: Darija → English21 inputs_d2e = tokenizer_d2e(darija_text, return_tensors="pt", padding=True)22 if torch.cuda.is_available():23 inputs_d2e = {k: v.to('cuda') for k, v in inputs_d2e.items()}24 25 outputs_d2e = model_d2e.generate(26 **inputs_d2e,27 forced_bos_token_id=tokenizer_d2e.lang_code_to_id["en_XX"],28 max_length=128,29 num_beams=530 )31 english_text = tokenizer_d2e.decode(outputs_d2e[0], skip_special_tokens=True)32 33 # Step 2: English → Arabic (if selected)34 if target_language == "Arabic":35 inputs_e2ar = tokenizer_e2ar(english_text, return_tensors="pt", padding=True)36 if torch.cuda.is_available():37 inputs_e2ar = {k: v.to('cuda') for k, v in inputs_e2ar.items()}38 39 outputs_e2ar = model_e2ar.generate(**inputs_e2ar, max_length=128, num_beams=5)40 arabic_text = tokenizer_e2ar.decode(outputs_e2ar[0], skip_special_tokens=True)41 42 return f"🇬🇧 English: {english_text}\n\n🇸🇦 Arabic: {arabic_text}"43 else:44 return f"🇬🇧 English: {english_text}"45 46 except Exception as e:47 return f"❌ Error: {str(e)}"48 49 50# ============================================51# CREATE GRADIO APP52# ============================================53 54demo = gr.Interface(55 fn=translate_interface,56 inputs=[57 gr.Textbox(58 label="Enter Darija Text", 59 placeholder="واش نتا مزيان؟",60 lines=3,61 rtl=True # Right-to-left for Arabic script62 ),63 gr.Radio(64 choices=["English", "Arabic"], 65 label="Target Language",66 value="English"67 )68 ],69 outputs=gr.Textbox(label="Translation", lines=5),70 title="🇲🇦 Darija Translator",71 description="Translate Moroccan Darija to English or Arabic",72 examples=[73 ["واش نتا مزيان؟", "English"],74 ["أنا جيت من الدار", "Arabic"],75 ["شحال الساعة دابا؟", "English"],76 ["بغيت نمشي للسوق", "Arabic"],77 ["الطقس اليوم بارد بزاف", "English"]78 ],79 theme="soft"80)81 82# Launch the app83demo.launch(share=True) # share=True creates public link