Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
|
|
|
|
|
|
|
|
|
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
|
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:
|