CoderHassan commited on
Commit
d81bbb8
·
verified ·
1 Parent(s): ff6b765

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -21
app.py CHANGED
@@ -1,32 +1,45 @@
1
  import streamlit as st
2
- from transformers import T5Tokenizer, T5ForConditionalGeneration
3
 
4
- # Load the T5 model and tokenizer
5
  @st.cache_resource
6
- def load_model():
7
- model_name = "t5-small"
8
- tokenizer = T5Tokenizer.from_pretrained(model_name)
9
- model = T5ForConditionalGeneration.from_pretrained(model_name)
10
  return model, tokenizer
11
 
12
- model, tokenizer = load_model()
13
-
14
  def translate_text(text, model, tokenizer):
15
- input_text = f"translate English to Urdu: {text}"
16
- inputs = tokenizer.encode(input_text, return_tensors="pt", truncation=True)
17
  outputs = model.generate(inputs, max_length=512, num_beams=5, early_stopping=True)
18
  translated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
19
  return translated_text
20
 
21
  # Streamlit UI
22
- st.title("English to Urdu Translation with T5")
23
-
24
- # Input text from the user
25
- text_to_translate = st.text_area("Enter English text to translate:")
26
-
27
- if text_to_translate.strip():
28
- with st.spinner("Translating..."):
29
- translated_text = translate_text(text_to_translate, model, tokenizer)
30
- st.markdown(f"### Translated Text:\n{translated_text}")
31
-
32
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import streamlit as st
2
+ from transformers import MarianMTModel, MarianTokenizer
3
 
4
+ # Function to load a translation model
5
  @st.cache_resource
6
+ def load_model(src_lang, tgt_lang):
7
+ model_name = f"Helsinki-NLP/opus-mt-{src_lang}-{tgt_lang}"
8
+ tokenizer = MarianTokenizer.from_pretrained(model_name)
9
+ model = MarianMTModel.from_pretrained(model_name)
10
  return model, tokenizer
11
 
 
 
12
  def translate_text(text, model, tokenizer):
13
+ inputs = tokenizer.encode(text, return_tensors="pt", truncation=True)
 
14
  outputs = model.generate(inputs, max_length=512, num_beams=5, early_stopping=True)
15
  translated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
16
  return translated_text
17
 
18
  # Streamlit UI
19
+ st.title("Multi-Language Translator")
20
+
21
+ st.sidebar.header("Translation Settings")
22
+
23
+ # Input source and target languages
24
+ src_lang = st.sidebar.text_input("Enter source language code (e.g., 'en' for English):", "en")
25
+ tgt_lang = st.sidebar.text_input("Enter target language code (e.g., 'ur' for Urdu):", "ur")
26
+
27
+ # Validate language codes
28
+ if not src_lang.strip() or not tgt_lang.strip():
29
+ st.sidebar.error("Please enter valid source and target language codes.")
30
+ else:
31
+ # Load the selected model
32
+ try:
33
+ st.sidebar.write(f"Model: `{src_lang}-{tgt_lang}`")
34
+ model, tokenizer = load_model(src_lang.strip(), tgt_lang.strip())
35
+
36
+ # Input text
37
+ text_to_translate = st.text_area("Enter text to translate:")
38
+
39
+ # Translate and display output
40
+ if text_to_translate.strip():
41
+ with st.spinner("Translating..."):
42
+ translated_text = translate_text(text_to_translate, model, tokenizer)
43
+ st.markdown(f"### Translated Text:\n{translated_text}")
44
+ except Exception as e:
45
+ st.error(f"Error loading model for `{src_lang}-{tgt_lang}`: {str(e)}")