diff --git a/app.py b/app.py index 3e1b49c..3975da3 100644 --- a/app.py +++ b/app.py @@ -1,6 +1,23 @@ import streamlit as st +import random +import time -st.title("Echo Bot") + +# Streamed response emulator +def response_generator(): + response = random.choice( + [ + "Hello there! How can I assist you today?", + "Hi, human! Is there anything I can help you with?", + "Do you need help?", + ] + ) + for word in response.split(): + yield word + " " + time.sleep(0.05) + + +st.title("Simple chat") # Initialize chat history if "messages" not in st.session_state: @@ -11,17 +28,16 @@ for message in st.session_state.messages: with st.chat_message(message["role"]): st.markdown(message["content"]) -# React to user input +# Accept user input if prompt := st.chat_input("What is up?"): + # Add user message to chat history + st.session_state.messages.append({"role": "user", "content": prompt}) # Display user message in chat message container with st.chat_message("user"): st.markdown(prompt) - # Add user message to chat history - st.session_state.messages.append({"role": "user", "content": prompt}) -response = f"Echo: {prompt}" -# Display assistant response in chat message container -with st.chat_message("assistant"): - st.markdown(response) -# Add assistant response to chat history -st.session_state.messages.append({"role": "assistant", "content": response}) \ No newline at end of file + # Display assistant response in chat message container + with st.chat_message("assistant"): + response = st.write_stream(response_generator()) + # Add assistant response to chat history + st.session_state.messages.append({"role": "assistant", "content": response}) \ No newline at end of file