translator_demo / app.py
sanjanamatecharla's picture
Create app.py
ca10efe
import streamlit as st
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer
def translate_text(article, source_language, target_language):
# Importing the pre-trained model
tokenizer = AutoTokenizer.from_pretrained("facebook/nllb-200-distilled-600M")
model = AutoModelForSeq2SeqLM.from_pretrained("facebook/nllb-200-distilled-600M")
# Mapping language to language code
lang_code = {
"hindi": "hin_Deva",
"telugu": "tel_Telu",
"english":"eng_Latn"
# Add more language codes as needed
}
# Appending source language to the input text
article_with_lang = f"{article} [lang:{lang_code[source_language]}]"
# Translating the sentence
inputs = tokenizer(article_with_lang, return_tensors="pt")
translated_tokens = model.generate(
**inputs, forced_bos_token_id=tokenizer.lang_code_to_id[lang_code[target_language]], max_length=30
)
# Decoding and returning the translated text
return tokenizer.batch_decode(translated_tokens, skip_special_tokens=True)[0]
# Streamlit UI
st.title("Language Translator")
# Input section
st.sidebar.header("Input Options")
input_text = st.text_area("Enter Text to Translate:")
source_language = st.sidebar.selectbox("Select Source Language:", ["english", "hindi", "telugu"])
# Output section
st.sidebar.header("Output Options")
target_language = st.sidebar.selectbox("Select Target Language:", ["english","hindi", "telugu"])
# Translate button
if st.button("Translate"):
if input_text:
translated_text = translate_text(input_text, source_language, target_language)
st.success(f"Translated ({target_language}): {translated_text}")
else:
st.warning("Please enter text to translate.")