Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import streamlit.components.v1 as components | |
| st.title("Echo Bot") | |
| # Initialize chat history | |
| if "messages" not in st.session_state: | |
| st.session_state.messages = [] | |
| # Display chat messages from history on app rerun | |
| for message in st.session_state.messages: | |
| with st.chat_message(message["role"]): | |
| st.markdown(message["content"]) | |
| # React to user input | |
| if prompt := st.chat_input("What is up?"): | |
| # Display user message in chat message container | |
| with st.chat_message("user"): | |
| st.markdown(prompt) | |
| st.session_state.messages.append({"role": "user", "content": prompt}) | |
| default_chat_input_value = "Default Value" | |
| js = f""" | |
| <script> | |
| function insertText(dummy_var_to_force_repeat_execution) {{ | |
| var chatInput = parent.document.querySelector('textarea[data-testid="stChatInput"]'); | |
| var nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype, "value").set; | |
| nativeInputValueSetter.call(chatInput, "{default_chat_input_value}"); | |
| var event = new Event('input', {{ bubbles: true}}); | |
| chatInput.dispatchEvent(event); | |
| }} | |
| insertText({len(st.session_state.messages)}); | |
| </script> | |
| """ | |
| components(js) |