|
import streamlit as st |
|
from transformers import pipeline, AutoTokenizer, AutoModelForSeq2SeqLM |
|
|
|
def initialize_translator(model_name): |
|
return pipeline("translation", model=model_name) |
|
|
|
model_name = "Helsinki-NLP/opus-mt-en-ru" |
|
translator = initialize_translator(model_name) |
|
|
|
def translate_text(text): |
|
if text: |
|
result = translator(text) |
|
return result[0]['translation_text'] |
|
return "" |
|
|
|
st.title("Text Translation App") |
|
|
|
st.sidebar.header("Settings") |
|
language_pair = st.sidebar.selectbox( |
|
"Choose language pair:", |
|
[ |
|
"English to Russian (Helsinki-NLP/opus-mt-en-ru)", |
|
"Russian to English (Helsinki-NLP/opus-mt-ru-en)" |
|
] |
|
) |
|
|
|
if "Russian to English" in language_pair: |
|
model_name = "Helsinki-NLP/opus-mt-ru-en" |
|
else: |
|
model_name = "Helsinki-NLP/opus-mt-en-ru" |
|
|
|
translator = initialize_translator(model_name) |
|
|
|
st.subheader("Enter text to translate:") |
|
|
|
user_input = st.text_area("Your text here (e.g., 'The weather is nice today.'):", height=200) |
|
|
|
if st.button("Translate"): |
|
translation = translate_text(user_input) |
|
st.subheader("Translated Text:") |
|
st.write(translation) |
|
else: |
|
st.info("Enter text and click 'Translate' to see the result.") |
|
|
|
|
|
if __name__ == '__main__': |
|
import streamlit.web.cli as stcli |
|
stcli.main() |
|
|