| import streamlit as st | |
| import requests | |
| st.set_page_config(page_title="ChatPDF", page_icon="π") | |
| st.title("π ChatPDF") | |
| uploaded_file = st.file_uploader("Upload a PDF file", type="pdf") | |
| if 'pdf_processed' not in st.session_state: | |
| st.session_state['pdf_processed'] = False | |
| if uploaded_file is not None and not st.session_state['pdf_processed']: | |
| upload_file = {'file': uploaded_file} | |
| response = requests.post(url='http://127.0.0.1:8000/upload_pdf', files=upload_file) | |
| if response.status_code == 200: | |
| st.session_state['pdf_processed'] = True | |
| st.write("PDF processed and vectors upserted!") | |
| else: | |
| st.write("Failed to process PDF") | |
| if st.session_state['pdf_processed']: | |
| st.title("π€ Ask a Question about the PDF Content") | |
| add_selectbox = st.sidebar.selectbox("Select Model", ("Default", "deepset/roberta-base-squad2", "llama")) | |
| question = st.text_input("Ask a question about the PDF content:") | |
| if question: | |
| url = f"http://127.0.0.1:8000/ask_question/?question={question}&model={add_selectbox}" | |
| response = requests.post(url) | |
| if response.status_code == 200: | |
| st.write(response.json()['answer']) | |
| else: | |
| st.write("Failed to get an answer") | |