talha515 commited on
Commit
1287527
·
verified ·
1 Parent(s): 3aa6466

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +69 -0
app.py ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from transformers import MarianMTModel, MarianTokenizer
3
+
4
+ # Sepecified different languages
5
+ LANGUAGES = {
6
+ "English" : "en",
7
+ "French" : 'fr',
8
+ "German" : "de",
9
+ "Spanish" : "es",
10
+ "Italian" : "it",
11
+ "Portuguese" : "pt",
12
+ "Russian" : "ru",
13
+ "Chinese" : "zh",
14
+ "Japense" : "ja",
15
+ "Arabic" : "ar",
16
+ }
17
+
18
+ # Helper function to load the model and tokenizer
19
+ @st.cache_resource
20
+ def load_translation_model(src_lanf, tgt_lang):
21
+ model_name = f"Helsinki-NLP.opus-mt-{src_lang}-{tgt-lnag}"
22
+ tokenizer = MarianTokenizer.from_pretrained(model_name)
23
+ model = MarianMTModel.from_pretrained(model_name)
24
+ return tokenizer,model
25
+
26
+ # Translation function
27
+ def translate_text(tokenizer, model, text):
28
+ inputs = tokenizer(text, return_tensors='pt', padding=True)
29
+ translated = model.generate(**inputs)
30
+ return tokenizer.decode(translated[0],skip_special_tokens = True)
31
+
32
+ #Streamlit App
33
+ st.title("Language Translation APP 🌍")
34
+ st.write("Translate text between multiple language using open-source models.")
35
+
36
+ #Language selection
37
+ col1, col2 = st.columns(2)
38
+ with col1:
39
+ source_language = st.selectbox("Select Source Language 🌐", list(LANGUAGES.keys()))
40
+ with col2:
41
+ target_language = st.selectbox("Select Target Language 🌍",lsit(LANGUAGES.keys()))
42
+
43
+ #Input Text
44
+ text_to_translate = st.text_area("Enter text to translate", height=150)
45
+
46
+ #Translate button
47
+ if st.button("Translate"):
48
+ if source_language == target_language:
49
+ st.warning("Source and target language must be different")
50
+ elif not text_to_translate.strip():
51
+ st.warning("Please enter some text to translate")
52
+ else:
53
+ src_lang = LANGUAGES[source_language]
54
+ tgt_lang = LANGUAGES[target_language]
55
+
56
+ try:
57
+ #Load model and tokenizer
58
+ tokenizer, model = load_translation_model(src_lang, tgt_lang)
59
+
60
+ #Perform translation
61
+ translated_text = translate_text(tokenizer, model, text_to_translate)
62
+
63
+ # Display result
64
+ st.subheader("Translate Text 🔄: ")
65
+ st.write(translate_text)
66
+
67
+ except Exception as e:
68
+ st.error(f"Error :" {str(e)})
69
+