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)