AjiNiktech commited on
Commit
aa5df8c
·
verified ·
1 Parent(s): b3b3691

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -6
app.py CHANGED
@@ -17,16 +17,14 @@ st.set_page_config(page_title="Enterprise document search + chat", layout="wide"
17
  # Streamlit app header
18
  st.title("Enterprise document helpdesk")
19
 
20
- # Sidebar for API Key input
21
  with st.sidebar:
22
  st.header("Configuration")
23
  api_key = st.text_input("Enter your OpenAI API Key:", type="password")
24
  if api_key:
25
  os.environ["OPENAI_API_KEY"] = api_key
26
 
27
- # Main app logic
28
- if "OPENAI_API_KEY" in os.environ:
29
- st.header('Multiple File Upload')
30
  uploaded_files = st.file_uploader('Upload your files', accept_multiple_files=True, type=['txt', 'pdf', 'csv', 'ppt', 'doc', 'xls', 'pptx', 'xlsx'])
31
 
32
  def load_file(file):
@@ -55,6 +53,20 @@ if "OPENAI_API_KEY" in os.environ:
55
  os.unlink(temp_file_path)
56
  return documents
57
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
  # Process uploaded files
59
  if uploaded_files:
60
  if st.button("Process Documents"):
@@ -69,7 +81,21 @@ if "OPENAI_API_KEY" in os.environ:
69
  # Store processed documents in session state
70
  st.session_state.processed_documents = all_splits
71
  st.success("Documents processed successfully!")
 
 
 
 
 
 
 
 
 
 
 
 
72
 
 
 
73
  # Initialize components
74
  @st.cache_resource
75
  def initialize_components():
@@ -79,8 +105,7 @@ if "OPENAI_API_KEY" in os.environ:
79
  return chat, embeddings
80
 
81
  # Load components
82
- with st.spinner("Initializing Assistant..."):
83
- chat, embeddings = initialize_components()
84
 
85
  # Create vectorstore and retriever only if documents are processed
86
  if 'processed_documents' in st.session_state:
 
17
  # Streamlit app header
18
  st.title("Enterprise document helpdesk")
19
 
20
+ # Sidebar
21
  with st.sidebar:
22
  st.header("Configuration")
23
  api_key = st.text_input("Enter your OpenAI API Key:", type="password")
24
  if api_key:
25
  os.environ["OPENAI_API_KEY"] = api_key
26
 
27
+ st.header('Document Upload and Processing')
 
 
28
  uploaded_files = st.file_uploader('Upload your files', accept_multiple_files=True, type=['txt', 'pdf', 'csv', 'ppt', 'doc', 'xls', 'pptx', 'xlsx'])
29
 
30
  def load_file(file):
 
53
  os.unlink(temp_file_path)
54
  return documents
55
 
56
+ def summarize_documents(documents):
57
+ chat = ChatOpenAI(model="gpt-3.5-turbo-1106", temperature=0.2)
58
+
59
+ combined_text = " ".join([doc.page_content for doc in documents])
60
+
61
+ prompt = f"""Summarize the following document in a concise manner, highlighting the key points:
62
+
63
+ {combined_text}
64
+
65
+ Summary:"""
66
+
67
+ response = chat.invoke(prompt)
68
+ return response.content
69
+
70
  # Process uploaded files
71
  if uploaded_files:
72
  if st.button("Process Documents"):
 
81
  # Store processed documents in session state
82
  st.session_state.processed_documents = all_splits
83
  st.success("Documents processed successfully!")
84
+
85
+ # Add a button for summarization
86
+ if st.button("Generate Summary"):
87
+ with st.spinner("Generating summary..."):
88
+ summary = summarize_documents(st.session_state.processed_documents)
89
+ st.session_state.document_summary = summary
90
+ st.success("Summary generated successfully!")
91
+
92
+ # Display the summary if it exists
93
+ if 'document_summary' in st.session_state:
94
+ st.subheader("Document Summary")
95
+ st.write(st.session_state.document_summary)
96
 
97
+ # Main app logic
98
+ if "OPENAI_API_KEY" in os.environ:
99
  # Initialize components
100
  @st.cache_resource
101
  def initialize_components():
 
105
  return chat, embeddings
106
 
107
  # Load components
108
+ chat, embeddings = initialize_components()
 
109
 
110
  # Create vectorstore and retriever only if documents are processed
111
  if 'processed_documents' in st.session_state: