diff options
author | t.me/xtekky <98614666+xtekky@users.noreply.github.com> | 2023-05-01 22:19:07 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-01 22:19:07 +0200 |
commit | a25f5d44ecfc817be95e99a78e319cb2ab513847 (patch) | |
tree | 0871b63d198b8e13e804af4be2000cf5c6aacf42 /gui/streamlit_chat_app.py | |
parent | Update FUNDING.yml (diff) | |
parent | added option to remove conversations (diff) | |
download | gpt4free-a25f5d44ecfc817be95e99a78e319cb2ab513847.tar gpt4free-a25f5d44ecfc817be95e99a78e319cb2ab513847.tar.gz gpt4free-a25f5d44ecfc817be95e99a78e319cb2ab513847.tar.bz2 gpt4free-a25f5d44ecfc817be95e99a78e319cb2ab513847.tar.lz gpt4free-a25f5d44ecfc817be95e99a78e319cb2ab513847.tar.xz gpt4free-a25f5d44ecfc817be95e99a78e319cb2ab513847.tar.zst gpt4free-a25f5d44ecfc817be95e99a78e319cb2ab513847.zip |
Diffstat (limited to 'gui/streamlit_chat_app.py')
-rw-r--r-- | gui/streamlit_chat_app.py | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/gui/streamlit_chat_app.py b/gui/streamlit_chat_app.py index 99e8428c..af3969e6 100644 --- a/gui/streamlit_chat_app.py +++ b/gui/streamlit_chat_app.py @@ -38,6 +38,17 @@ def save_conversations(conversations, current_conversation): os.replace(temp_conversations_file, conversations_file) +def delete_conversation(conversations, current_conversation): + for idx, conversation in enumerate(conversations): + conversations[idx] = current_conversation + break + conversations.remove(current_conversation) + + temp_conversations_file = "temp_" + conversations_file + with open(temp_conversations_file, "wb") as f: + pickle.dump(conversations, f) + + os.replace(temp_conversations_file, conversations_file) def exit_handler(): print("Exiting, saving data...") @@ -118,17 +129,22 @@ if search_query: sidebar_header = f"Search Results ({len(conversations)})" else: - conversations = enumerate(st.session_state.conversations) + conversations = st.session_state.conversations sidebar_header = "Conversation History" # Sidebar st.sidebar.header(sidebar_header) - -for idx, conversation in conversations: - if st.sidebar.button(f"Conversation {idx + 1}: {conversation['user_inputs'][0]}", key=f"sidebar_btn_{idx}"): +sidebar_col1, sidebar_col2 = st.sidebar.columns([5,1]) +for idx, conversation in enumerate(conversations): + if sidebar_col1.button(f"Conversation {idx + 1}: {conversation['user_inputs'][0]}", key=f"sidebar_btn_{idx}"): st.session_state['selected_conversation'] = idx st.session_state['current_conversation'] = conversation - + if sidebar_col2.button('🗑️', key=f"sidebar_btn_delete_{idx}"): + if st.session_state['selected_conversation'] == idx: + st.session_state['selected_conversation'] = None + st.session_state['current_conversation'] = {'user_inputs': [], 'generated_responses': []} + delete_conversation(conversations, conversation) + st.experimental_rerun() if st.session_state['selected_conversation'] is not None: conversation_to_display = conversations[st.session_state['selected_conversation']] else: |