Phil Mui
initial commit
a3fe11e
##############################################################################
# Main script that builds the UI & connects the logic for an LLM-driven
# query frontend to an ASDRP demo app.
#
# @philmui
# Tue Jun 20 23:35:59 PDT 2023
##############################################################################
from transformers import pipeline
import streamlit as st
from pprint import pprint
##############################################################################
st.set_page_config(page_title="Translator",
page_icon=":robot:",
layout="wide")
st.header("πŸ‡«πŸ‡·πŸ‡ͺπŸ‡Έ Translator πŸ‡ΊπŸ‡ΈπŸ‡¨πŸ‡³")
col1, col2 = st.columns([1,1])
with col1:
option_llm = st.selectbox(
"Model",
(
"Helsinki-NLP/opus-mt-fr-en",
"Helsinki-NLP/opus-mt-en-fr",
"Helsinki-NLP/opus-mt-es-en",
"Helsinki-NLP/opus-mt-en-es",
"Helsinki-NLP/opus-mt-it-en",
"Helsinki-NLP/opus-mt-en-it",
"Helsinki-NLP/opus-mt-en-de",
"Helsinki-NLP/opus-mt-de-en",
)
)
with col2:
pass
def get_query():
input_text = st.text_area(label="Your input text",
placeholder="Say anything",
key="question_text", label_visibility="collapsed")
return input_text
query = get_query()
if query and len(query) > 1:
output=""
try:
st.spinner(text="In progress...")
translator = pipeline("translation",
model=option_llm)
output = translator(query)[0]['translation_text']
except Exception as e:
output=f"Sorry: cannot translate! {e}"
height = min(2*len(output), 240)
st.text_area(label="Response" ,
value=output, height=height)