gemma_text / app.py
Nikhil0987's picture
Update app.py
c669f72 verified
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