Shashank1406's picture
Upload 6 files
925601e verified
raw
history blame
4.54 kB
from dotenv import load_dotenv
import os
import streamlit as st
from streamlit_option_menu import option_menu
from Functions import RFPProcessor
from utills import ( on_click_toggle)
# Initialize session states for rfp data (data processing)
if "vectorstore" not in st.session_state:
st.session_state["vectorstore"] = None
if "pdf_details" not in st.session_state:
st.session_state["pdf_details"] = ""
if "is_data_processed" not in st.session_state:
st.session_state["is_data_processed"] = False
# Initialize session states for summary bot
if "generated_bot_results" not in st.session_state:
st.session_state["generated_bot_results"] = []
if "past_bot_results" not in st.session_state:
st.session_state["past_bot_results"] = []
if "bot_input" not in st.session_state:
st.session_state["bot_input"] = ""
# Initialize session states for case
if "case_summary" not in st.session_state:
st.session_state["case_summary"] = ""
if "selected_model" not in st.session_state:
st.session_state["selected_model"] = "gpt-3.5-turbo-16k"
def main():
st.set_page_config(page_title="Justice League",
page_icon="⚖️", layout="wide")
top_left_container = st.sidebar.container()
model_name = "GPT-4o" if st.session_state["selected_model"] == "gpt-4o" else "GPT-3.5-turbo"
st.markdown(
"""
<style>
.st-ae.st-af.st-ag.st-ah.st-ai.st-aj.st-ak.st-al.st-am {
position: absolute !important;
top: -80px !important;
z-index: 9999;
}
</style>
""",
unsafe_allow_html=True
)
with top_left_container:
st.markdown("<div style='margin-bottom: -10px; font-size: 15px; position: absolute; z-index: 1; top: -91px; left: 3px'>Toggle for Model Selection</div>", unsafe_allow_html=True)
st.markdown("<div style='margin-bottom: -10px; font-size: 15px; position: absolute; z-index: 1; top: -87px; left: 3px'>(Default : GPT-3.5)</div>", unsafe_allow_html=True)
st.toggle(model_name, value=st.session_state["selected_model"] == "gpt-4o", key="model_toggle", on_change=on_click_toggle, args=None, disabled=False, label_visibility="visible")
function = RFPProcessor()
with st.sidebar:
menu_choice = option_menu(
menu_title="Legal Assistant",
options=[
"Home",
"Legal Bot",
],
icons=["house", "list-task"],
)
if menu_choice == "Home":
with st.form("my_form"):
case_name = st.text_input(
"Case Name",
key="Case Name",
type="default",
placeholder="Case Name",
)
files = st.file_uploader(
"Document", type=["pdf", "txt", "docx"], accept_multiple_files=True
)
submitted = st.form_submit_button("Process Data")
if submitted:
if case_name and files:
function.process_case_data(case_name, files)
else:
st.warning(
"project_name and file are required to create create stories",
icon="⚠️",
)
if st.session_state["is_data_processed"] == True:
st.title("Summary")
with st.container():
st.markdown(st.session_state["case_summary"])
if menu_choice == "Legal Bot":
if st.session_state["is_data_processed"] == True:
st.title(" Legal Bot ")
st.subheader(" Powered by Coffeebeans")
st.text_input(
"You: ",
st.session_state["bot_input"],
key="bot_input",
placeholder="Your AI Case assistant here! Ask me Queries related to Case",
on_change=function.genrate_legal_bot_result(),
label_visibility="hidden",
)
with st.container():
for i in range(len(st.session_state["generated_bot_results"]) - 1, -1, -1):
st.success(st.session_state["generated_bot_results"][i], icon="🤖")
st.info(st.session_state["past_bot_results"][i], icon="🧐")
else:
st.warning("Plesase Process Case Details to access this logal case bot", icon="⚠️")
if __name__ == "__main__":
main()