Update app.py
Browse files
app.py
CHANGED
|
@@ -300,96 +300,84 @@ vectorstore = Chroma.from_documents(documents=splits, embedding=HuggingFaceEmbed
|
|
| 300 |
# Set up the retriever to fetch relevant phrases based on the user's query
|
| 301 |
retriever = vectorstore.as_retriever()
|
| 302 |
|
| 303 |
-
|
| 304 |
-
# Initialize a list to store chat messages
|
| 305 |
if "messages" not in st.session_state:
|
| 306 |
st.session_state.messages = []
|
| 307 |
|
| 308 |
-
#
|
| 309 |
-
|
| 310 |
-
|
|
|
|
| 311 |
|
| 312 |
-
#
|
| 313 |
-
if user_input:
|
| 314 |
try:
|
| 315 |
-
|
| 316 |
-
st.session_state.messages.append(f"You: {user_input}")
|
| 317 |
time_now = get_current_time()
|
| 318 |
current_date = get_date()
|
|
|
|
|
|
|
|
|
|
|
|
|
| 319 |
|
| 320 |
sentimenttocheck = ""
|
| 321 |
-
res = tagging_chain.invoke({"input": user_input, "traning_data": retriever})
|
| 322 |
sentimenttocheck += res.sentiment
|
| 323 |
|
| 324 |
if sentimenttocheck == "set reminder":
|
| 325 |
reminders_thr = get_reminders()
|
| 326 |
database_thr = format_reminders_for_context(reminders_thr)
|
| 327 |
new_remind = ""
|
| 328 |
-
for new_reminder in rag_chain_tt.stream({"question": user_input, "context": database_thr, "date_tt": get_date(), "current_time":
|
| 329 |
new_remind += new_reminder.content
|
| 330 |
print(f"New reminder: {new_remind}")
|
| 331 |
if new_remind == "repeated_reminder":
|
| 332 |
-
|
| 333 |
else:
|
| 334 |
try:
|
| 335 |
with sqlite3.connect('reminders.db') as conn:
|
| 336 |
cursor = conn.cursor()
|
| 337 |
-
|
| 338 |
-
# Execute the update query
|
| 339 |
cursor.execute(new_remind)
|
| 340 |
conn.commit()
|
| 341 |
-
|
| 342 |
-
# Check if the update was successful
|
| 343 |
-
if cursor.rowcount > 0:
|
| 344 |
-
st.session_state.messages.append("New reminder created.")
|
| 345 |
-
else:
|
| 346 |
-
st.session_state.messages.append("No reminder created, Errors occur")
|
| 347 |
-
|
| 348 |
except sqlite3.Error as e:
|
| 349 |
-
|
| 350 |
elif sentimenttocheck == "update reminder":
|
| 351 |
reminders_sec = get_reminders()
|
| 352 |
database_sec = format_reminders_for_context(reminders_sec)
|
| 353 |
updated_remind = ""
|
| 354 |
-
for updated_cont in rag_chaining.stream({"question": user_input, "context": database_sec, "date_tt": get_date()}):
|
| 355 |
updated_remind += updated_cont.content
|
| 356 |
print(f"Database: {updated_remind}")
|
| 357 |
if updated_remind == "reminder_x":
|
| 358 |
-
|
| 359 |
else:
|
| 360 |
try:
|
| 361 |
with sqlite3.connect('reminders.db') as conn:
|
| 362 |
cursor = conn.cursor()
|
| 363 |
-
|
| 364 |
-
# Execute the update query
|
| 365 |
cursor.execute(updated_remind)
|
| 366 |
conn.commit()
|
| 367 |
-
|
| 368 |
-
# Check if the update was successful
|
| 369 |
-
if cursor.rowcount > 0:
|
| 370 |
-
st.session_state.messages.append("Reminder updated successfully.")
|
| 371 |
-
else:
|
| 372 |
-
st.session_state.messages.append("No reminder found to update with the given details.")
|
| 373 |
-
|
| 374 |
except sqlite3.Error as e:
|
| 375 |
-
|
| 376 |
elif sentimenttocheck == "check reminder":
|
| 377 |
reminders = get_reminders()
|
| 378 |
database = format_reminders_for_context(reminders)
|
| 379 |
response_max = ""
|
| 380 |
-
for max in
|
| 381 |
response_max += max.content
|
| 382 |
st.session_state.messages.append(f"Database remind: {response_max}")
|
| 383 |
elif sentimenttocheck == "remove reminder":
|
| 384 |
-
|
| 385 |
else:
|
| 386 |
-
|
| 387 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 388 |
|
| 389 |
except Exception as e:
|
| 390 |
# Print the error and continue
|
| 391 |
-
st.session_state.messages.append(f"\nAn error occurred: {e}. Please try again.")
|
| 392 |
-
|
| 393 |
-
# Display the chat history
|
| 394 |
-
for message in st.session_state.messages:
|
| 395 |
-
st.write(message)
|
|
|
|
| 300 |
# Set up the retriever to fetch relevant phrases based on the user's query
|
| 301 |
retriever = vectorstore.as_retriever()
|
| 302 |
|
| 303 |
+
# Initialize chat history
|
|
|
|
| 304 |
if "messages" not in st.session_state:
|
| 305 |
st.session_state.messages = []
|
| 306 |
|
| 307 |
+
# Display chat messages from history on app rerun
|
| 308 |
+
for message in st.session_state.messages:
|
| 309 |
+
with st.chat_message(message["role"]):
|
| 310 |
+
st.markdown(message["content"])
|
| 311 |
|
| 312 |
+
# React to user input
|
| 313 |
+
if user_input := st.chat_input("What is up?"):
|
| 314 |
try:
|
| 315 |
+
|
|
|
|
| 316 |
time_now = get_current_time()
|
| 317 |
current_date = get_date()
|
| 318 |
+
# Display user message in chat message container
|
| 319 |
+
st.chat_message("user").markdown(user_input)
|
| 320 |
+
# Add user message to chat history
|
| 321 |
+
st.session_state.messages.append({"role": "user", "content": user_input})
|
| 322 |
|
| 323 |
sentimenttocheck = ""
|
| 324 |
+
res = tagging_chain().invoke({"input": user_input, "traning_data": retriever})
|
| 325 |
sentimenttocheck += res.sentiment
|
| 326 |
|
| 327 |
if sentimenttocheck == "set reminder":
|
| 328 |
reminders_thr = get_reminders()
|
| 329 |
database_thr = format_reminders_for_context(reminders_thr)
|
| 330 |
new_remind = ""
|
| 331 |
+
for new_reminder in rag_chain_tt().stream({"question": user_input, "context": database_thr, "date_tt": get_date(), "current_time": get_current_time()}):
|
| 332 |
new_remind += new_reminder.content
|
| 333 |
print(f"New reminder: {new_remind}")
|
| 334 |
if new_remind == "repeated_reminder":
|
| 335 |
+
response_st = "Reminder already existed!"
|
| 336 |
else:
|
| 337 |
try:
|
| 338 |
with sqlite3.connect('reminders.db') as conn:
|
| 339 |
cursor = conn.cursor()
|
|
|
|
|
|
|
| 340 |
cursor.execute(new_remind)
|
| 341 |
conn.commit()
|
| 342 |
+
response_st = "New reminder created." if cursor.rowcount > 0 else "No reminder created, Errors occur"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 343 |
except sqlite3.Error as e:
|
| 344 |
+
response_st = f"An error occurred while updating the reminder: {e}"
|
| 345 |
elif sentimenttocheck == "update reminder":
|
| 346 |
reminders_sec = get_reminders()
|
| 347 |
database_sec = format_reminders_for_context(reminders_sec)
|
| 348 |
updated_remind = ""
|
| 349 |
+
for updated_cont in rag_chaining().stream({"question": user_input, "context": database_sec, "date_tt": get_date()}):
|
| 350 |
updated_remind += updated_cont.content
|
| 351 |
print(f"Database: {updated_remind}")
|
| 352 |
if updated_remind == "reminder_x":
|
| 353 |
+
response_st = "No reminder found to change!"
|
| 354 |
else:
|
| 355 |
try:
|
| 356 |
with sqlite3.connect('reminders.db') as conn:
|
| 357 |
cursor = conn.cursor()
|
|
|
|
|
|
|
| 358 |
cursor.execute(updated_remind)
|
| 359 |
conn.commit()
|
| 360 |
+
response_st = "Reminder updated successfully." if cursor.rowcount > 0 else "No reminder found to update with the given details."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 361 |
except sqlite3.Error as e:
|
| 362 |
+
response_st = f"An error occurred while updating the reminder: {e}"
|
| 363 |
elif sentimenttocheck == "check reminder":
|
| 364 |
reminders = get_reminders()
|
| 365 |
database = format_reminders_for_context(reminders)
|
| 366 |
response_max = ""
|
| 367 |
+
for max in rag_chain_tt().stream({"question": user_input, "context": database, "date_tt": get_date()}):
|
| 368 |
response_max += max.content
|
| 369 |
st.session_state.messages.append(f"Database remind: {response_max}")
|
| 370 |
elif sentimenttocheck == "remove reminder":
|
| 371 |
+
st.session_state.messages.append("Remove Reminder")
|
| 372 |
else:
|
| 373 |
+
response_st = get_ai_response(user_input)
|
| 374 |
+
|
| 375 |
+
# Display assistant response in chat message container
|
| 376 |
+
with st.chat_message("assistant"):
|
| 377 |
+
st.markdown(response_st)
|
| 378 |
+
# Add assistant response to chat history
|
| 379 |
+
st.session_state.messages.append({"role": "assistant", "content": response_st})
|
| 380 |
|
| 381 |
except Exception as e:
|
| 382 |
# Print the error and continue
|
| 383 |
+
st.session_state.messages.append(f"\nAn error occurred: {e}. Please try again.")
|
|
|
|
|
|
|
|
|
|
|
|