chat / app.py
M-lai's picture
Update app.py
67943cd verified
import openai
import streamlit as st
# Barre latérale pour l'API Key et les liens utiles
with st.sidebar:
openai_api_key = st.text_input("Clé API OpenAI", key="chatbot_api_key", type="password")
st.markdown("[Obtenez une clé API OpenAI](https://platform.openai.com/account/api-keys)")
st.markdown("[Voir le code source](https://github.com/streamlit/llm-examples/blob/main/Chatbot.py)")
st.markdown("[![Ouvrir dans GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/streamlit/llm-examples?quickstart=1)")
# Titre et description du chatbot
st.title("💬 Chatbot")
st.caption("🚀 Un chatbot Streamlit propulsé par OpenAI")
# Initialisation des messages dans la session
if "messages" not in st.session_state:
st.session_state["messages"] = [{"role": "assistant", "content": "Comment puis-je vous aider ?"}]
# Affichage des messages dans l'historique de conversation
for msg in st.session_state.messages:
st.chat_message(msg["role"]).write(msg["content"])
# Entrée de l'utilisateur et génération de la réponse
if prompt := st.chat_input():
if not openai_api_key:
st.info("Veuillez ajouter votre clé API OpenAI pour continuer.")
st.stop()
# Ajout du message utilisateur dans la session
st.session_state.messages.append({"role": "user", "content": prompt})
st.chat_message("user").write(prompt)
# Configuration de la clé API et appel de l'API OpenAI
openai.api_key = openai_api_key
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=st.session_state.messages
)
# Traitement de la réponse et mise à jour de l'historique
msg = response.choices[0].message["content"]
st.session_state.messages.append({"role": "assistant", "content": msg})
st.chat_message("assistant").write(msg)