llama3 / app.py
martianband1t's picture
Update app.py
c27fe20 verified
raw
history blame
No virus
2.22 kB
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)