Overview
Streamlit 1.22, released on April 20, 2023, stabilizes the st.chat API for conversational interfaces.
Main Features
Stable st.chat
The st.chat_message and st.chat_input components leave experimental phase with a stable API and improved performance.
python
import streamlit as st
if 'messages' not in st.session_state:
st.session_state.messages = []
for msg in st.session_state.messages:
with st.chat_message(msg['role']):
st.write(msg['content'])
if prompt := st.chat_input('Message'):
st.session_state.messages.append(
{'role': 'user', 'content': prompt}
)
with st.chat_message('user'):
st.write(prompt)
Performance improvements
Chat component rendering is optimized to handle long conversation histories without interface slowdown.
python
import streamlit as st
# Streaming the response
def generate_response(prompt):
for word in f'Response to: {prompt}'.split():
yield word + ' '
if prompt := st.chat_input('Question'):
with st.chat_message('assistant'):
st.write_stream(generate_response(prompt))
