import streamlit as st import openai import time # Configuration de l'API OpenAI openai.api_key = 'VOTRE_CLE_API_OPENAI' # Fonction pour générer une réponse à partir du modèle OpenAI avec streaming def generate_openai_response(prompt, history): # Formatage de l'historique des messages pour OpenAI history_openai_format = [{"role": "system", "content": "You are a helpful assistant."}] for human, assistant in history: history_openai_format.append({"role": "user", "content": human }) history_openai_format.append({"role": "assistant", "content":assistant}) history_openai_format.append({"role": "user", "content": prompt}) # Requête à l'API avec streaming response = openai.ChatCompletion.create( model="gpt-4", # ou "gpt-3.5-turbo" messages=history_openai_format, temperature=0.7, stream=True ) # Collecte et affichage des morceaux de réponse collected_messages = [] for chunk in response: if chunk['choices'][0]['delta'].get('content'): collected_messages.append(chunk['choices'][0]['delta']['content']) full_response = ''.join(collected_messages) # Affichage de la réponse en temps réel st.write(full_response) time.sleep(0.1) # Ajouter un léger délai pour la simulation de la "pensée" return ''.join(collected_messages) # Interface utilisateur avec Streamlit st.title("Chatbot avec OpenAI") st.write("Ce chatbot utilise le modèle OpenAI pour répondre à vos questions.") # Entrée utilisateur user_input = st.text_area("Vous:", "") history = [] if st.button("Envoyer"): if user_input: with st.spinner("Génération de la réponse..."): response = generate_openai_response(user_input, history) history.append((user_input, response)) st.write("Chatbot:", response) else: st.warning("Veuillez entrer une question ou un message.")