Spaces:
Build error
Build error
import transformers | |
import streamlit as st | |
from annotated_text import annotated_text | |
def get_pipe(): | |
tokenizer = transformers.AutoTokenizer.from_pretrained("deepset/roberta-base-squad2") | |
model = transformers.AutoModelForQuestionAnswering.from_pretrained("deepset/roberta-base-squad2") | |
pipe = transformers.pipeline("question-answering", model=model, tokenizer=tokenizer) | |
return pipe | |
def parse_context(context, prediction): | |
parsed_context = [] | |
parsed_context.append(context[:prediction["start"]]) | |
parsed_context.append((prediction["answer"], "ANSWER", "#afa")) | |
parsed_context.append(context[prediction["end"]:]) | |
return parsed_context | |
st.set_page_config(page_title="Question Answering") | |
st.title("Question Answering") | |
st.write("Enter context and a question and press 'Predict' to extract the answer from the context.") | |
default_context = "My name is Wolfgang and I live in Berlin." | |
default_question = "What is my name?" | |
context = st.text_area("Enter context here:", value=default_context) | |
question = st.text_input("Enter question here:", value=default_question) | |
submit = st.button('Predict') | |
with st.spinner("Loading model..."): | |
pipe = get_pipe() | |
if (submit and len(context.strip()) > 0 and len(question.strip()) > 0) or \ | |
(len(context.strip()) > 0 and len(question.strip()) > 0): | |
prediction = pipe(question, context) | |
parsed_context = parse_context(context, prediction) | |
st.header("Prediction:") | |
annotated_text(*parsed_context) | |
st.header('Raw values:') | |
st.json(prediction) | |