Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import json | |
| st.title("Streamlit Chatbot") | |
| def load_user_data(): | |
| try: | |
| with open('user_data.json', 'r') as f: | |
| data = json.load(f) | |
| st.session_state.name = data['user_data'].get('name', '') | |
| st.session_state.age = data['user_data'].get('age', '') | |
| st.session_state.chat_history = data['user_data'].get('chat_history', []) | |
| except FileNotFoundError: | |
| print("user_data.json not found.") | |
| except json.JSONDecodeError: | |
| print("Error decoding user_data.json. The file might be corrupt.") | |
| def save_user_data(): | |
| data = { | |
| 'user_data': { | |
| 'name': st.session_state.name, | |
| 'age': st.session_state.age, | |
| 'chat_history': st.session_state.chat_history | |
| } | |
| } | |
| with open('user_data.json', 'w') as f: | |
| json.dump(data, f) # Correct usage of json.dump | |
| if 'chat_state' not in st.session_state: | |
| st.session_state.chat_state = 'get_name' | |
| load_user_data() | |
| if st.session_state.chat_state == 'get_name': | |
| st.write("Welcome! Please enter your name:") | |
| name = st.text_input('Your Name') | |
| if st.button('Start Chat'): | |
| st.session_state.name = name | |
| st.session_state.chat_state = 'get_age' | |
| elif st.session_state.chat_state == 'get_age': | |
| st.write(f"Hello, {st.session_state.name}! Enter your age:") | |
| age = st.text_input('Your Age') | |
| if st.button('Submit'): | |
| st.session_state.age = age # Store the age | |
| save_user_data() | |
| st.session_state.chat_state = 'chat' | |
| elif st.session_state.chat_state == 'chat': | |
| st.write("Chat History:") | |
| for msg in st.session_state.chat_history: | |
| st.write(f"**{msg['role']}**: {msg['message']}") | |
| st.write("Ask me anything:") | |
| message = st.text_input('Your Message') | |
| if st.button('Send'): | |
| if message.lower() in ['hi', 'hello', 'hey']: | |
| chatbot_response = f"Hello, {st.session_state.name}!" | |
| elif 'how are you' in message.lower(): | |
| chatbot_response = "I'm doing well, thanks for asking!" | |
| else: | |
| chatbot_response = "I'm still learning. Can you try asking something else?" | |
| # st.session_state.chat_history.append({"role": "user", "message": message}) | |
| # st.session_state.chat_history.append({"role": "bot", "message": chatbot_response}) | |
| save_user_data() # Save all data |