gpt4omini / app.py
martianband1t's picture
Update app.py
363dc4e verified
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.")