talha515 commited on
Commit
23e0a5b
·
verified ·
1 Parent(s): d529b06

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -28
app.py CHANGED
@@ -1,49 +1,49 @@
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_lang, tgt_lang):
21
- model_name = f"Helsinki-NLP.opus-mt-{src_lang}-{tgt-lang}"
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 🌍",list(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")
@@ -54,16 +54,15 @@ if st.button("Translate"):
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
-
 
1
  import streamlit as st
2
  from transformers import MarianMTModel, MarianTokenizer
3
 
4
+ # Specified 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
+ "Japanese": "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_lang, tgt_lang): # Corrected parameter names
21
+ model_name = f"Helsinki-NLP/opus-mt-{src_lang}-{tgt_lang}" # Corrected typo in model_name
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 languages 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 🌍", list(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")
 
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("Translated Text 🔄:")
65
+ st.write(translated_text)
66
 
67
  except Exception as e:
68
+ st.error(f"Error: {str(e)}")