Spaces:
Sleeping
Sleeping
import streamlit as st | |
import requests | |
backend_url = "http://0.0.0.0:7860" | |
st.header('fiXit Assignment', divider='orange') | |
st.header('Document-based QA Chatbot') | |
if 'uploadFlag' not in st.session_state: | |
upload = st.file_uploader("Upload a DOCX file", type="docx") | |
if upload: | |
files = {'file': upload.getvalue()} | |
response = requests.post(f"{backend_url}/uploaddoc", files=files) | |
if response.status_code == 200: | |
st.success("Document uploaded sucessfully") | |
st.session_state.uploadFlag = True | |
if 'uploadFlag' in st.session_state: | |
if 'chat_history' not in st.session_state: | |
st.session_state.chat_history = [] | |
question = st.text_input("Enter your question/query: ") | |
if question: | |
response = requests.post(f"{backend_url}/question", json={"question": question}) | |
if response.status_code == 200: | |
answer = response.json().get("answer") | |
st.session_state.chat_history.append(("user", question)) | |
st.session_state.chat_history.append(("assistant", answer)) | |
else: | |
st.error("Failed to get an answer from the backend.") | |
for role, message in st.session_state.chat_history: | |
with st.chat_message(role): | |
st.markdown(message) |