Maison >développement back-end >Tutoriel Python >Partie Streamlit Créer une interface de discussion

Partie Streamlit Créer une interface de discussion

Barbara Streisand
Barbara Streisandoriginal
2024-11-19 01:46:02688parcourir

Streamlit Part Build a Chat Interface

Créons une interface de discussion dans Streamlit : en toute simplicité

Vous avez toujours voulu créer votre propre interface de chat, mais vous avez pensé que ce serait trop compliqué ? Eh bien, j'ai une bonne nouvelle : avec Streamlit, c'est étonnamment simple. Passons en revue la création d'une application de chat de base que vous pourrez ensuite développer en quelque chose de plus sophistiqué.

Ce que nous construisons

Nous créons une interface de chat où les utilisateurs peuvent saisir des messages et obtenir des réponses. Considérez-le comme la base de votre futur chatbot ou assistant IA. La meilleure partie ? Vous n’aurez besoin que de quelques lignes de code Python pour y parvenir.

Commencer

Tout d'abord, configurons notre application Streamlit. Nous aurons besoin d'une mise en page large et agréable pour donner suffisamment d'espace à nos messages de discussion :

import streamlit as st  
import time  

st.set_page_config(  
    page_title="Chat App",  
    layout="wide",  
    initial_sidebar_state="collapsed",  
)  

st.title("Let's Chat!")  

Garder une trace des messages

Les applications de chat ont besoin de mémoire : elles doivent se souvenir de ce qui a été dit plus tôt dans la conversation. Streamlit dispose d'une fonctionnalité intéressante appelée état de session qui est parfaite pour cela :

if "messages" not in st.session_state:  
    st.session_state.messages = []  

Cela crée une liste pour stocker notre historique de discussion. Considérez-le comme un cahier dans lequel nous notons tout ce qui est dit.

Afficher la conversation

Affichons maintenant nos messages de chat. Nous parcourrons l'historique de nos messages et afficherons chaque message dans une bulle de discussion :

for msg in st.session_state.messages:  
    with st.chat_message(msg["role"]):  
        st.write(msg["content"])  

Obtenir la contribution de l'utilisateur

C'est ici que la magie opère. Nous ajouterons une zone de texte dans laquelle les utilisateurs pourront saisir leurs messages :

prompt = st.chat_input("Say something...")  

if prompt:  
    # Add user message to chat  
    st.session_state.messages.append({"role": "user", "content": prompt})  
    with st.chat_message("user"):  
        st.write(prompt)  

    # Add a simple bot response  
    time.sleep(1)  # A brief pause to make it feel more natural  
    bot_response = f"You said: {prompt}"  
    st.session_state.messages.append({"role": "bot", "content": bot_response})  
    with st.chat_message("bot"):  
        st.write(bot_response)  

Se l'approprier

À l'heure actuelle, notre bot ne fait que faire écho à ce que vous dites. Mais c’est ici que vous pouvez faire preuve de créativité ! Vous pourriez :

  • Connectez-le à un modèle d'IA pour des réponses plus intelligentes
  • Ajouter des boutons pour des réponses rapides
  • Inclure des images ou des emojis dans les réponses
  • Enregistrer les conversations dans une base de données

Le code complet

Voici tout réuni dans un seul emballage soigné :

import streamlit as st  
import time  

st.set_page_config(page_title="Chat App", layout="wide", initial_sidebar_state="collapsed")  
st.title("Let's Chat!")  

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

prompt = st.chat_input("Say something...")  

if prompt:  
    st.session_state.messages.append({"role": "user", "content": prompt})  
    with st.chat_message("user"):  
        st.write(prompt)  

    time.sleep(1)  
    bot_response = f"You said: {prompt}"  
    st.session_state.messages.append({"role": "bot", "content": bot_response})  
    with st.chat_message("bot"):  
        st.write(bot_response)  

Et voilà ! Une interface de discussion fonctionnelle en moins de 30 lignes de code. Plutôt cool, non ?

La prochaine fois, nous envisagerons d'ajouter quelques intelligences artificielles pour que notre bot puisse réellement comprendre et répondre aux messages. Restez à l'écoute!

Vous voulez essayer ça ? Copiez simplement le code, installez Streamlit (pip install streamlit) et exécutez-le avec streamlit run your_file.py. Bon codage !


? Obtenez le code : GitHub - jamesbmour/blog_tutorials
? Tutoriels Streamlit associés : JustCodeIt
? Soutenez mon travail : Achetez-moi un café

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn