Wazzever commited on
Commit
c013b9f
·
verified ·
1 Parent(s): 1eea5dc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -43
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
- # Text input for user message
309
- user_input = st.text_input("You:", key="input")
310
-
 
311
 
312
- # Loop for continuous interaction
313
- if user_input:
314
  try:
315
- # Take user input
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": time_now}):
329
  new_remind += new_reminder.content
330
  print(f"New reminder: {new_remind}")
331
  if new_remind == "repeated_reminder":
332
- st.session_state.messages.append("Reminder already existed!")
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
- st.session_state.messages.append(f"An error occurred while updating the reminder: {e}")
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
- st.session_state.messages.append("No reminder found to change!")
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
- st.session_state.messages.append(f"An error occurred while updating the reminder: {e}")
376
  elif sentimenttocheck == "check reminder":
377
  reminders = get_reminders()
378
  database = format_reminders_for_context(reminders)
379
  response_max = ""
380
- for max in rag_chain.stream({"question": user_input, "context": database, "date_tt": get_date()}):
381
  response_max += max.content
382
  st.session_state.messages.append(f"Database remind: {response_max}")
383
  elif sentimenttocheck == "remove reminder":
384
- st.session_state.messages.append("Remove Reminder")
385
  else:
386
- ai_response = get_ai_response(user_input)
387
- st.session_state.messages.append(f"{ai_response}")
 
 
 
 
 
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.")