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))

Sources