Spaces:
Sleeping
Sleeping
import streamlit as st | |
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer | |
from transformers import MBartForConditionalGeneration, MBart50TokenizerFast | |
def main(): | |
st.title("Translation App") | |
# Load model and tokenizer | |
model = MBartForConditionalGeneration.from_pretrained("facebook/mbart-large-50-one-to-many-mmt") | |
tokenizer = MBart50TokenizerFast.from_pretrained("facebook/mbart-large-50-one-to-many-mmt", src_lang="en_XX") | |
# Input text area | |
input_text = st.text_area("Enter text to translate", "") | |
# Translation buttons | |
translate_hindi = st.button("Hindi") | |
translate_tamil = st.button("Tamil") | |
translate_telugu = st.button("Telugu") | |
if translate_hindi: | |
translated_text = translate_text(input_text, model, tokenizer, target_lang="hi_IN") | |
st.write("Translated Text (Hindi):") | |
st.write(translated_text) | |
if translate_tamil: | |
translated_text = translate_text(input_text, model, tokenizer, target_lang="ta_IN") | |
st.write("Translated Text (Tamil):") | |
st.write(translated_text) | |
if translate_telugu: | |
translated_text = translate_text(input_text, model, tokenizer, target_lang="te_IN") | |
st.write("Translated Text (Telugu):") | |
st.write(translated_text) | |
def translate_text(input_text, model, tokenizer, target_lang): | |
# Tokenize input text | |
input_ids = tokenizer(input_text, return_tensors="pt").input_ids | |
# Generate translation | |
generated_tokens = model.generate( | |
input_ids=input_ids, | |
forced_bos_token_id=tokenizer.lang_code_to_id[target_lang] | |
) | |
# Decode translated text | |
translated_text = tokenizer.decode(generated_tokens[0], skip_special_tokens=True) | |
return translated_text | |
if __name__ == '__main__': | |
main() |