Fawad97 commited on
Commit
e0c267d
·
verified ·
1 Parent(s): 15184a8

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -0
app.py ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from transformers import MarianMTModel, MarianTokenizer
3
+
4
+ # Define supported language pairs (source-target)
5
+ LANGUAGES = {
6
+ "en": "English",
7
+ "fr": "French",
8
+ "de": "German",
9
+ "es": "Spanish",
10
+ "it": "Italian",
11
+ "pt": "Portuguese",
12
+ "ru": "Russian",
13
+ "zh": "Chinese",
14
+ }
15
+
16
+ def get_model_and_tokenizer(src_lang: str, tgt_lang: str):
17
+ model_name = f"Helsinki-NLP/opus-mt-{src_lang}-{tgt_lang}"
18
+ model = MarianMTModel.from_pretrained(model_name)
19
+ tokenizer = MarianTokenizer.from_pretrained(model_name)
20
+ return model, tokenizer
21
+
22
+ def translate_text(text: str, source_lang: str, target_lang: str):
23
+ model, tokenizer = get_model_and_tokenizer(source_lang, target_lang)
24
+ translated = model.generate(**tokenizer(text, return_tensors="pt", padding=True))
25
+ translated_text = tokenizer.decode(translated[0], skip_special_tokens=True)
26
+ return translated_text
27
+
28
+ # Streamlit app
29
+ st.title("Text Translation App")
30
+
31
+ st.write("Translate text from one language to another using a Hugging Face model.")
32
+
33
+ source_lang = st.selectbox("Select the source language", list(LANGUAGES.keys()), format_func=lambda x: LANGUAGES[x])
34
+ target_lang = st.selectbox("Select the target language", list(LANGUAGES.keys()), format_func=lambda x: LANGUAGES[x])
35
+
36
+ text = st.text_area("Enter the text you want to translate")
37
+
38
+ if st.button("Translate"):
39
+ if source_lang == target_lang:
40
+ st.warning("Source and target languages are the same. Please select different languages.")
41
+ else:
42
+ translated_text = translate_text(text, source_lang, target_lang)
43
+ st.write("**Translated Text:**")
44
+ st.write(translated_text)