YasirAbdali's picture
Update app.py
e1e3112 verified
import streamlit as st
from transformers import AutoModelForQuestionAnswering, AutoTokenizer
import torch
@st.cache_resource
def load_model():
model_path = "YasirAbdali/roberta_qoura" # Replace with your actual model path
model = AutoModelForQuestionAnswering.from_pretrained(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path)
return model, tokenizer
def answer_question(question, model, tokenizer):
inputs = tokenizer(question, return_tensors="pt", max_length=512, truncation=True, padding="max_length")
with torch.no_grad():
outputs = model(**inputs)
start_logits = outputs.start_logits
end_logits = outputs.end_logits
start_index = torch.argmax(start_logits)
end_index = torch.argmax(end_logits)
answer = tokenizer.convert_tokens_to_string(tokenizer.convert_ids_to_tokens(inputs["input_ids"][0][start_index:end_index+1]))
return answer
st.title("Quora Question Answering")
model, tokenizer = load_model()
st.write("Enter a question, and the model will provide an answer based on its knowledge.")
question = st.text_area("Question")
if st.button("Get Answer"):
if question:
answer = answer_question(question, model, tokenizer)
st.write("Answer:", answer)
else:
st.write("Please provide a question.")
# Optional: Add some example questions
st.sidebar.header("Example Questions")
example_questions = [
"What is the capital of France?",
"Who wrote 'Romeo and Juliet'?",
"What is the boiling point of water?",
"What year did World War II end?",
]
for example in example_questions:
if st.sidebar.button(example):
st.text_input("Question", value=example)