Multilenguaje / app.py
oscarvillafuerte's picture
Create app.py
2f419e1 verified
import streamlit as st
import time
from transformers import pipeline
st.title("Enhanced Multilingual Translator Chatbot")
# Choose the translation models from Hugging Face
translation_models = {
"English to German": "Helsinki-NLP/opus-mt-en-de",
"German to English": "Helsinki-NLP/opus-mt-de-en",
"English to French": "Helsinki-NLP/opus-mt-en-fr",
"French to English": "Helsinki-NLP/opus-mt-fr-en",
"English to Urdu": "Helsinki-NLP/opus-mt-en-ur",
"Urdu to English": "Helsinki-NLP/opus-mt-ur-en",
"English to Spanish": "Helsinki-NLP/opus-mt-en-es",
"Spanish to English": "Helsinki-NLP/opus-mt-es-en",
"English to Chinese": "Helsinki-NLP/opus-mt-en-zh",
"Chinese to English": "Helsinki-NLP/opus-mt-zh-en",
# Add more language pairs as needed
}
selected_translation = st.selectbox("Select translation model", list(translation_models.keys()))
# Load the translation pipeline
translator = pipeline(task="translation", model=translation_models[selected_translation])
# User input for translation
user_input = st.text_area("Enter text for translation:", "")
# Display loading indicator
if st.button("Translate"):
with st.spinner("Translating..."):
# Simulate translation delay for demonstration
time.sleep(2)
if user_input:
# Perform translation
translated_text = translator(user_input, max_length=500)[0]['translation_text']
st.success(f"Translated Text: {translated_text}")
else:
st.warning("Please enter text for translation.")
# Clear button to reset input and result
if st.button("Clear"):
user_input = ""
st.success("Input cleared.")
st.empty() # Clear previous results if any
st.markdown("---")
st.subheader("About")
st.write(
"This is an enhanced Multilingual Translator chatbot that uses the Hugging Face Transformers library."
)
st.write(
"Select a translation model from the dropdown, enter text, and click 'Translate' to see the translation."
)