gmustafa413 commited on
Commit
42e2403
·
verified ·
1 Parent(s): cd5a0cf

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +53 -0
app.py ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import M2M100ForConditionalGeneration, M2M100Tokenizer
3
+
4
+ # Initialize model and tokenizer at startup
5
+ model = M2M100ForConditionalGeneration.from_pretrained("facebook/m2m100_418M")
6
+ tokenizer = M2M100Tokenizer.from_pretrained("facebook/m2m100_418M")
7
+
8
+ LANGUAGES = {
9
+ "English": "en",
10
+ "Spanish": "es",
11
+ "French": "fr",
12
+ "German": "de",
13
+ "Chinese": "zh",
14
+ "Hindi": "hi",
15
+ "Punjabi": "pa",
16
+ "Arabic": "ar",
17
+ "Japanese": "ja",
18
+ "Urdu": "ur",
19
+ }
20
+
21
+ def translate(text, target_lang):
22
+ if not text.strip():
23
+ return "Please enter text to translate"
24
+
25
+ try:
26
+ tokenizer.tgt_lang = LANGUAGES[target_lang]
27
+ encoded = tokenizer(text, return_tensors="pt")
28
+ generated_tokens = model.generate(
29
+ **encoded,
30
+ forced_bos_token_id=tokenizer.get_lang_id(LANGUAGES[target_lang]),
31
+ max_length=400 # Added for safety
32
+ )
33
+ return tokenizer.decode(generated_tokens[0], skip_special_tokens=True)
34
+ except KeyError:
35
+ return "Selected language not supported"
36
+ except Exception as e:
37
+ return f"Error: {str(e)}"
38
+
39
+ # Create interface with Hugging Face optimized settings
40
+ demo = gr.Interface(
41
+ fn=translate,
42
+ inputs=[
43
+ gr.Textbox(label="Input Text", placeholder="Enter text to translate...", lines=3),
44
+ gr.Dropdown(list(LANGUAGES.keys()),
45
+ ],
46
+ outputs=gr.Textbox(label="Translation", lines=8),
47
+ title="🌍 Universal Translator",
48
+ description="Human Language Translator Created By _____________",
49
+ allow_flagging="never"
50
+ )
51
+
52
+ if __name__ == "__main__":
53
+ demo.launch(server_name="0.0.0.0", server_port=7860)