File size: 1,308 Bytes
abf3abd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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)