File size: 2,606 Bytes
f03ee05 73dfaab f03ee05 6fde455 f03ee05 73dfaab f03ee05 277e947 21363bd 277e947 f03ee05 73dfaab 896d88b 73dfaab f03ee05 6fde455 f03ee05 d536a72 e97a1f1 5b98a9c 6fde455 ce13d97 6fde455 d7da2d0 0b739e4 6fde455 fc28430 58dedc3 f03ee05 742d18f f03ee05 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
import os
import time
import requests
import streamlit as st
API_URL = "https://api-inference.huggingface.co/models/NbAiLab/norwegian-gpt2-vgd"
def translate(text, wait=True):
headers = {"Authorization": f"Bearer {os.environ['BEARER']}"}
payload = {
"inputs": text,
"options": {
"wait_for_model": not wait
}
}
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)
time_to_load = int(json_response["estimated_time"]) + 1
for progress in range(time_to_load):
bar.progress(progress / time_to_load)
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='Spurningen',
page_icon='translator-icon.png',
)
st.title("Bokmål ⇔ Nynorsk")
st.sidebar.title("Translation Demo")
st.sidebar.write("""
Spurningen (P.Chr. Asbjørnsen og Jørgen Moe Norske folkeeventyr (1852). I senere utgaver er eventyret kalt "Prinsessen som ingen kunde målbinde". Spurning er et gammelt norrønt ord for gåte. En spurning er en utspørring. Denne GPT2-modellen er trent på aviser, wikipedia og diverse sosiale media. Bl.a. er den trent på spørsmål og svar fra VGDebatt. Den er trent for å ikke la seg målbinde!
Dette er en demo-versjon hovedsakelig ment for forskning på auto-regressive språkmodeller. Det er ingen filter-funksjon her. Modellen kan godt generere tekst som i en annen kontekst kan være ekstremt fornærmende. Husk at dette er en lek med sammensetning av ord. Ikke la deg fornærme.
""")
text = st.text_area(" ",
"Nasjonalbibliotekets AI-lab har faktisk utviklet et språkmodell som ikke kan målbindes. Hvor tror dere dette ender?",
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)))
|