shukdevdatta123 commited on
Commit
d1eba9a
·
verified ·
1 Parent(s): 164e5b2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -4
app.py CHANGED
@@ -20,12 +20,15 @@ if 'openai_api_key' not in st.session_state:
20
  st.session_state.openai_api_key = st.sidebar.text_input("Enter your OpenAI API Key:", type="password",
21
  value=st.session_state.openai_api_key)
22
 
23
- # Initialize session state for messages
24
  if "messages" not in st.session_state:
25
  st.session_state.messages = [
26
  {"role": "assistant", "content": "Ask me a question about the documents you uploaded!"}
27
  ]
28
 
 
 
 
29
  # Function to read PDF files
30
  def read_pdf(file):
31
  with pdfplumber.open(file) as pdf:
@@ -64,7 +67,11 @@ def load_data(uploaded_files):
64
  # Function to save the conversation
65
  def save_conversation():
66
  with open("conversations.json", "a") as f:
67
- json.dump(st.session_state.messages, f)
 
 
 
 
68
  f.write("\n")
69
 
70
  # Function to load previous conversations
@@ -88,6 +95,8 @@ def delete_selected_conversations(selected_indices):
88
  uploaded_files = st.file_uploader("Upload PDF or DOCX files", type=["pdf", "docx"], accept_multiple_files=True)
89
 
90
  if uploaded_files and st.session_state.openai_api_key:
 
 
91
  index = load_data(uploaded_files)
92
  chat_engine = index.as_chat_engine(chat_mode="condense_question", verbose=True)
93
 
@@ -146,8 +155,9 @@ if st.session_state.show_conversations:
146
  selected_indices = []
147
  for i, conv in enumerate(conversations):
148
  st.sidebar.write(f"Conversation {i + 1}:")
149
- for message in conv:
150
  st.sidebar.write(f"{message['role']}: {message['content']}")
 
151
  # Checkbox for selecting conversation to delete
152
  if st.sidebar.checkbox(f"Select Conversation {i + 1} for Deletion", key=f"delete_checkbox_{i}"):
153
  selected_indices.append(i)
@@ -155,7 +165,7 @@ if st.session_state.show_conversations:
155
  if st.sidebar.button("Delete Selected Conversations"):
156
  if selected_indices:
157
  delete_selected_conversations(selected_indices)
158
- st.success("Selected conversations deleted. Please Refresh to See the Effect!")
159
  st.session_state.messages = [] # Optional: reset messages for a fresh start
160
 
161
  else:
 
20
  st.session_state.openai_api_key = st.sidebar.text_input("Enter your OpenAI API Key:", type="password",
21
  value=st.session_state.openai_api_key)
22
 
23
+ # Initialize session state for messages and uploaded files
24
  if "messages" not in st.session_state:
25
  st.session_state.messages = [
26
  {"role": "assistant", "content": "Ask me a question about the documents you uploaded!"}
27
  ]
28
 
29
+ if 'uploaded_file_names' not in st.session_state:
30
+ st.session_state.uploaded_file_names = []
31
+
32
  # Function to read PDF files
33
  def read_pdf(file):
34
  with pdfplumber.open(file) as pdf:
 
67
  # Function to save the conversation
68
  def save_conversation():
69
  with open("conversations.json", "a") as f:
70
+ conversation_data = {
71
+ "messages": st.session_state.messages,
72
+ "file_names": st.session_state.uploaded_file_names
73
+ }
74
+ json.dump(conversation_data, f)
75
  f.write("\n")
76
 
77
  # Function to load previous conversations
 
95
  uploaded_files = st.file_uploader("Upload PDF or DOCX files", type=["pdf", "docx"], accept_multiple_files=True)
96
 
97
  if uploaded_files and st.session_state.openai_api_key:
98
+ # Store the names of the uploaded files
99
+ st.session_state.uploaded_file_names = [uploaded_file.name for uploaded_file in uploaded_files]
100
  index = load_data(uploaded_files)
101
  chat_engine = index.as_chat_engine(chat_mode="condense_question", verbose=True)
102
 
 
155
  selected_indices = []
156
  for i, conv in enumerate(conversations):
157
  st.sidebar.write(f"Conversation {i + 1}:")
158
+ for message in conv['messages']:
159
  st.sidebar.write(f"{message['role']}: {message['content']}")
160
+ st.sidebar.write(f"Files: {', '.join(conv['file_names'])}")
161
  # Checkbox for selecting conversation to delete
162
  if st.sidebar.checkbox(f"Select Conversation {i + 1} for Deletion", key=f"delete_checkbox_{i}"):
163
  selected_indices.append(i)
 
165
  if st.sidebar.button("Delete Selected Conversations"):
166
  if selected_indices:
167
  delete_selected_conversations(selected_indices)
168
+ st.success("Selected conversations deleted. Please refresh to see the effect!")
169
  st.session_state.messages = [] # Optional: reset messages for a fresh start
170
 
171
  else: