Maison >développement back-end >Tutoriel Python >Partie Streamlit Créer une interface de discussion
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é.
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.
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!")
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.
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"])
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)
À 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 :
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!