Vue d'ensemble

Streamlit 1.22, publié le 20 avril 2023, stabilise l'API st.chat pour les interfaces de conversation.

Fonctionnalités principales

st.chat stable

Les composants st.chat_message et st.chat_input sortent de la phase expérimentale avec une API stable et des performances améliorées.

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)

Améliorations de performance

Le rendu des composants de chat est optimisé pour gérer des historiques de conversation longs sans ralentissement de l'interface.

python
import streamlit as st

# Streaming de la réponse
def generer_reponse(prompt):
    for mot in f'Réponse à : {prompt}'.split():
        yield mot + ' '

if prompt := st.chat_input('Question'):
    with st.chat_message('assistant'):
        st.write_stream(generer_reponse(prompt))

Sources