|
import os |
|
import time |
|
|
|
import requests |
|
import streamlit as st |
|
|
|
API_URL = "https://api-inference.huggingface.co/models/andrek/nb2nn" |
|
|
|
|
|
def translate(text, wait=True): |
|
headers = {"Authorization": f"Bearer {os.environ['BEARER']}"} |
|
payload = { |
|
"inputs": text, |
|
} |
|
response = requests.post(API_URL, headers=headers, json=payload) |
|
json_response = response.json() |
|
if (isinstance(json_response, dict) |
|
and "error" in json_response |
|
and "estimated_time" in json_response): |
|
st.write(json_response) |
|
if wait: |
|
with st.spinner(json_response["error"]): |
|
bar = st.progress(0) |
|
for progress in range(int(json_response["estimated_time"]) + 1): |
|
bar.progress(progress / json_response["estimated_time"]) |
|
time.sleep(1) |
|
bar.empty() |
|
return translate(text, wait=False) |
|
else: |
|
return "We could not load the model" |
|
elif (isinstance(json_response, list) |
|
and "translation_text" in json_response[0]): |
|
return json_response[0]["translation_text"] |
|
else: |
|
return f"Oops, something went wrong: {str(json_response)}" |
|
|
|
|
|
st.set_page_config( |
|
page_title='Norwegian Bokmaal to Nynorsk', |
|
page_icon='translator-icon.png', |
|
) |
|
st.title("Language Translator from Norwegian Bokmaal to Nynorsk :balloon:") |
|
text = st.text_area("Enter text:", |
|
height=None, |
|
max_chars=None, |
|
key=None, |
|
help="Enter your text here", |
|
) |
|
|
|
if st.button('Translate'): |
|
if str(text).strip() == "": |
|
st.warning('Please **enter text** for translation') |
|
else: |
|
st.info(str(translate(text))) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|