Update app.py
Browse files
app.py
CHANGED
|
@@ -1,9 +1,7 @@
|
|
| 1 |
import base64
|
| 2 |
-
|
| 3 |
import streamlit as st
|
| 4 |
from streamlit_chat import message
|
| 5 |
from streamlit_extras.colored_header import colored_header
|
| 6 |
-
|
| 7 |
from backend import QnASystem
|
| 8 |
from schema import TransformType, EmbeddingTypes, IndexerType, BotType
|
| 9 |
|
|
@@ -14,7 +12,6 @@ st.set_page_config(page_title="PDFChat - An LLM-powered experimentation app")
|
|
| 14 |
if "qna_system" not in st.session_state:
|
| 15 |
st.session_state.qna_system = QnASystem()
|
| 16 |
|
| 17 |
-
|
| 18 |
def show_pdf(f):
|
| 19 |
f.seek(0)
|
| 20 |
base64_pdf = base64.b64encode(f.read()).decode('utf-8')
|
|
@@ -22,12 +19,10 @@ def show_pdf(f):
|
|
| 22 |
f'type="application/pdf"></iframe>'
|
| 23 |
st.markdown(pdf_display, unsafe_allow_html=True)
|
| 24 |
|
| 25 |
-
|
| 26 |
def model_settings():
|
| 27 |
kwargs["temperature"] = st.slider("Temperature", max_value=1.0, min_value=0.0)
|
| 28 |
kwargs["max_tokens"] = st.number_input("Max Token", min_value=0, value=512)
|
| 29 |
|
| 30 |
-
|
| 31 |
st.title("PDF Question and Answering")
|
| 32 |
|
| 33 |
tab1, tab2, tab3 = st.tabs(["Upload and Ingest PDF", "Ask", "Show PDF"])
|
|
@@ -53,7 +48,7 @@ with st.sidebar:
|
|
| 53 |
api_key = st.text_input("Hugging Face API Key", placeholder="hg-...", type="password")
|
| 54 |
if not api_key.startswith('hg-'):
|
| 55 |
st.warning('Please enter your HuggingFace API key!', icon='⚠')
|
| 56 |
-
|
| 57 |
model_settings()
|
| 58 |
case EmbeddingTypes.COHERE:
|
| 59 |
api_key = st.text_input("Cohere API Key", placeholder="...", type="password")
|
|
@@ -92,14 +87,12 @@ with tab1:
|
|
| 92 |
st.session_state.qna_system.build_chain(transform_type=text_transform, embedding_type=selected_model,
|
| 93 |
indexer_type=vector_indexer, **kwargs)
|
| 94 |
|
| 95 |
-
|
| 96 |
def generate_response(prompt):
|
| 97 |
if prompt and uploaded_file:
|
| 98 |
response = st.session_state.qna_system.ask_question(prompt)
|
| 99 |
return response.get("answer", response.get("result", "")), response.get("source_documents")
|
| 100 |
return "", []
|
| 101 |
|
| 102 |
-
|
| 103 |
with tab2:
|
| 104 |
if not uploaded_file:
|
| 105 |
st.warning("Please upload PDF", icon='⚠')
|
|
@@ -128,12 +121,10 @@ with tab2:
|
|
| 128 |
response_container = st.container()
|
| 129 |
response = ""
|
| 130 |
|
| 131 |
-
|
| 132 |
def get_text():
|
| 133 |
input_text = st.text_input("You: ", "", key="input")
|
| 134 |
return input_text
|
| 135 |
|
| 136 |
-
|
| 137 |
with input_container:
|
| 138 |
user_input = get_text()
|
| 139 |
if st.button("Clear"):
|
|
@@ -168,4 +159,4 @@ with tab3:
|
|
| 168 |
elif uploaded_file:
|
| 169 |
st.warning("Feature not enabled.", icon='⚠')
|
| 170 |
else:
|
| 171 |
-
st.warning("Please upload PDF", icon='⚠')
|
|
|
|
| 1 |
import base64
|
|
|
|
| 2 |
import streamlit as st
|
| 3 |
from streamlit_chat import message
|
| 4 |
from streamlit_extras.colored_header import colored_header
|
|
|
|
| 5 |
from backend import QnASystem
|
| 6 |
from schema import TransformType, EmbeddingTypes, IndexerType, BotType
|
| 7 |
|
|
|
|
| 12 |
if "qna_system" not in st.session_state:
|
| 13 |
st.session_state.qna_system = QnASystem()
|
| 14 |
|
|
|
|
| 15 |
def show_pdf(f):
|
| 16 |
f.seek(0)
|
| 17 |
base64_pdf = base64.b64encode(f.read()).decode('utf-8')
|
|
|
|
| 19 |
f'type="application/pdf"></iframe>'
|
| 20 |
st.markdown(pdf_display, unsafe_allow_html=True)
|
| 21 |
|
|
|
|
| 22 |
def model_settings():
|
| 23 |
kwargs["temperature"] = st.slider("Temperature", max_value=1.0, min_value=0.0)
|
| 24 |
kwargs["max_tokens"] = st.number_input("Max Token", min_value=0, value=512)
|
| 25 |
|
|
|
|
| 26 |
st.title("PDF Question and Answering")
|
| 27 |
|
| 28 |
tab1, tab2, tab3 = st.tabs(["Upload and Ingest PDF", "Ask", "Show PDF"])
|
|
|
|
| 48 |
api_key = st.text_input("Hugging Face API Key", placeholder="hg-...", type="password")
|
| 49 |
if not api_key.startswith('hg-'):
|
| 50 |
st.warning('Please enter your HuggingFace API key!', icon='⚠')
|
| 51 |
+
kwargs["model_name"] = st.selectbox("Choose Model", options=["google/flan-t5-xl"])
|
| 52 |
model_settings()
|
| 53 |
case EmbeddingTypes.COHERE:
|
| 54 |
api_key = st.text_input("Cohere API Key", placeholder="...", type="password")
|
|
|
|
| 87 |
st.session_state.qna_system.build_chain(transform_type=text_transform, embedding_type=selected_model,
|
| 88 |
indexer_type=vector_indexer, **kwargs)
|
| 89 |
|
|
|
|
| 90 |
def generate_response(prompt):
|
| 91 |
if prompt and uploaded_file:
|
| 92 |
response = st.session_state.qna_system.ask_question(prompt)
|
| 93 |
return response.get("answer", response.get("result", "")), response.get("source_documents")
|
| 94 |
return "", []
|
| 95 |
|
|
|
|
| 96 |
with tab2:
|
| 97 |
if not uploaded_file:
|
| 98 |
st.warning("Please upload PDF", icon='⚠')
|
|
|
|
| 121 |
response_container = st.container()
|
| 122 |
response = ""
|
| 123 |
|
|
|
|
| 124 |
def get_text():
|
| 125 |
input_text = st.text_input("You: ", "", key="input")
|
| 126 |
return input_text
|
| 127 |
|
|
|
|
| 128 |
with input_container:
|
| 129 |
user_input = get_text()
|
| 130 |
if st.button("Clear"):
|
|
|
|
| 159 |
elif uploaded_file:
|
| 160 |
st.warning("Feature not enabled.", icon='⚠')
|
| 161 |
else:
|
| 162 |
+
st.warning("Please upload PDF", icon='⚠')
|