Spaces:
Sleeping
Sleeping
import streamlit as st | |
import torch | |
from transformers import pipeline | |
from transformers import AutoModelForQuestionAnswering | |
from transformers import AutoTokenizer | |
# Replace with your Hugging Face model repository path | |
model_repo_path = 'waqasali1707/Extractive-QA-Model' | |
# Load the model and tokenizer | |
model = AutoModelForQuestionAnswering.from_pretrained(model_repo_path) | |
tokenizer = AutoTokenizer.from_pretrained(model_repo_path) | |
# Initialize the question-answering pipeline | |
question_answerer = pipeline("question-answering", model=model, tokenizer=tokenizer) | |
# Streamlit app layout | |
st.title("Question Answering App") | |
# Define session state keys | |
if 'context' not in st.session_state: | |
st.session_state.context = "" | |
if 'question' not in st.session_state: | |
st.session_state.question = "" | |
# User input | |
text_input = st.text_area("Enter the Context first", value=st.session_state.context, height=180) | |
# Update session state with the new context | |
if st.button("Next"): | |
if text_input: | |
st.session_state.context = text_input | |
st.session_state.question = "" # Clear the previous question | |
else: | |
st.warning("Please enter some context to move to next part.") | |
# Show question input if context is available | |
if st.session_state.context: | |
question_input = st.text_area("Enter the Question", value=st.session_state.question, height=100) | |
if st.button("Answer"): | |
if question_input: | |
st.session_state.question = question_input | |
with st.spinner("Generating Answer..."): | |
try: | |
answer = question_answerer(question=question_input, context=st.session_state.context) | |
# Display the answer | |
st.subheader("Answer") | |
st.write(answer.get('answer', 'No answer found')) | |
except Exception as e: | |
st.error(f"Error during Question Answering: {e}") | |
else: | |
st.warning("Please enter some Question to get Answer.") | |