Partie Streamlit Créer une interface de discussion

Barbara Streisand
Libérer: 2024-11-19 01:46:02
original
635 Les gens l'ont consulté

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!")  
Copier après la connexion

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 = []  
Copier après la connexion

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"])  
Copier après la connexion

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)  
Copier après la connexion

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)  
Copier après la connexion

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!

source:dev.to
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal