import streamlit as st import replicate import streamlit_chat st.title("Ayoye, c'est bien hot ça!!") # Initialisation d'une liste pour stocker les messages if 'messages' not in st.session_state: st.session_state['messages'] = [] # Conteneur unique pour le chat complet with st.container(): # Formulaire pour entrer une question with st.form("chat_input"): user_input = st.text_input("Entrez votre question ici:", "") submitted = st.form_submit_button("Envoyer") if submitted and user_input: # Ajout de la question de l'utilisateur st.session_state['messages'].append({"type": "user", "message": user_input}) # Génération de la réponse via le modèle Replicate output = replicate.run( "meta/meta-llama-3-8b-instruct", input={ "top_p": 0.9, "prompt": user_input, "max_tokens": 2334, "min_tokens": 40, "temperature": 0.3, "prompt_template": "system\n\nYou are a helpful assistantuser\n\n{prompt}assistant\n\n", "presence_penalty": 0, "frequency_penalty": 0 } ) # Ajout de la réponse du modèle st.session_state['messages'].append({"type": "bot", "message": output}) # Affichage des messages précédents dans des "chat messages" for msg in st.session_state['messages']: if msg["type"] == "user": with st.chat_message("user"): st.write(msg["message"]) else: with st.chat_message("bot"): st.write(msg["message"]) # Formatage de la sortie pour assurer que c'est un texte simple response_text = output["choices"][0]["message"] if "choices" in output else "Désolé, je ne peux pas traiter votre demande." # Ajout de la réponse du modèle st.session_state['messages'].append(f"Bot: {response_text}") # Affichage des messages précédents dans le même conteneur for msg in st.session_state['messages']: st.text(msg)