Spaces:
Paused
Paused
File size: 1,672 Bytes
0fdee06 8b57d58 43040b7 8b57d58 0fdee06 82cdd19 0fdee06 dcf6f0c 0fdee06 82cdd19 0fdee06 82cdd19 e5ef708 c39d485 e5ef708 c39d485 0fdee06 82cdd19 dcf6f0c 4115668 82cdd19 0f77545 82cdd19 dcf6f0c e5ef708 dcf6f0c 0fdee06 82cdd19 0fdee06 |
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 |
import json
import logging
from logging import Logger
from logging.handlers import SysLogHandler
import streamlit as st
import tokenizers
import torch
from transformers import Pipeline, pipeline
from utils import get_answer, get_context
@st.cache(
hash_funcs={
torch.nn.parameter.Parameter: lambda _: None,
tokenizers.Tokenizer: lambda _: None,
tokenizers.AddedToken: lambda _: None,
},
allow_output_mutation=True,
show_spinner=False,
)
def load_engine() -> Pipeline:
nlp_qa = pipeline(
"question-answering",
model="mrm8488/bert-italian-finedtuned-squadv1-it-alfa",
tokenizer="mrm8488/bert-italian-finedtuned-squadv1-it-alfa",
)
return nlp_qa
if ("syslog" not in st.session_state) and ("logger" not in st.session_state):
syslog = SysLogHandler(
address=(st.secrets["logging_address"], int(st.secrets["logging_port"]))
)
logger = logging.getLogger()
logger.setLevel(logging.INFO)
logger.addHandler(syslog)
st.session_state["syslog"] = syslog
st.session_state["logger"] = logger
with st.spinner(
text="Sto preparando il necessario per rispondere alle tue domande personali..."
):
engine = load_engine()
st.title("Le risposte alle tue domande personali")
input = st.text_input("Scrivi una domanda in italiano e comparirà la risposta!")
if input:
try:
context = get_context()
st.session_state["logger"].info(input)
answer = get_answer(input, context, engine)
st.subheader(answer)
except:
st.error(
"Qualcosa é andato storto. Prova di nuovo con un'altra domanda magari!"
)
|