Spaces:
Running
Running
martianband1t
commited on
Commit
•
363dc4e
1
Parent(s):
12ce489
Update app.py
Browse files
app.py
CHANGED
@@ -1,21 +1,38 @@
|
|
1 |
import streamlit as st
|
2 |
import openai
|
|
|
3 |
|
4 |
# Configuration de l'API OpenAI
|
5 |
openai.api_key = 'VOTRE_CLE_API_OPENAI'
|
6 |
|
7 |
-
# Fonction pour générer une réponse à partir du modèle OpenAI
|
8 |
-
def generate_openai_response(prompt):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
response = openai.ChatCompletion.create(
|
10 |
-
model="gpt-3.5-turbo"
|
11 |
-
messages=
|
12 |
-
|
13 |
-
|
14 |
-
],
|
15 |
-
max_tokens=150,
|
16 |
-
temperature=0.7
|
17 |
)
|
18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
# Interface utilisateur avec Streamlit
|
21 |
st.title("Chatbot avec OpenAI")
|
@@ -23,11 +40,13 @@ st.write("Ce chatbot utilise le modèle OpenAI pour répondre à vos questions."
|
|
23 |
|
24 |
# Entrée utilisateur
|
25 |
user_input = st.text_area("Vous:", "")
|
|
|
26 |
|
27 |
if st.button("Envoyer"):
|
28 |
if user_input:
|
29 |
with st.spinner("Génération de la réponse..."):
|
30 |
-
response = generate_openai_response(user_input)
|
|
|
31 |
st.write("Chatbot:", response)
|
32 |
else:
|
33 |
st.warning("Veuillez entrer une question ou un message.")
|
|
|
1 |
import streamlit as st
|
2 |
import openai
|
3 |
+
import time
|
4 |
|
5 |
# Configuration de l'API OpenAI
|
6 |
openai.api_key = 'VOTRE_CLE_API_OPENAI'
|
7 |
|
8 |
+
# Fonction pour générer une réponse à partir du modèle OpenAI avec streaming
|
9 |
+
def generate_openai_response(prompt, history):
|
10 |
+
# Formatage de l'historique des messages pour OpenAI
|
11 |
+
history_openai_format = [{"role": "system", "content": "You are a helpful assistant."}]
|
12 |
+
for human, assistant in history:
|
13 |
+
history_openai_format.append({"role": "user", "content": human })
|
14 |
+
history_openai_format.append({"role": "assistant", "content":assistant})
|
15 |
+
history_openai_format.append({"role": "user", "content": prompt})
|
16 |
+
|
17 |
+
# Requête à l'API avec streaming
|
18 |
response = openai.ChatCompletion.create(
|
19 |
+
model="gpt-4", # ou "gpt-3.5-turbo"
|
20 |
+
messages=history_openai_format,
|
21 |
+
temperature=0.7,
|
22 |
+
stream=True
|
|
|
|
|
|
|
23 |
)
|
24 |
+
|
25 |
+
# Collecte et affichage des morceaux de réponse
|
26 |
+
collected_messages = []
|
27 |
+
for chunk in response:
|
28 |
+
if chunk['choices'][0]['delta'].get('content'):
|
29 |
+
collected_messages.append(chunk['choices'][0]['delta']['content'])
|
30 |
+
full_response = ''.join(collected_messages)
|
31 |
+
# Affichage de la réponse en temps réel
|
32 |
+
st.write(full_response)
|
33 |
+
time.sleep(0.1) # Ajouter un léger délai pour la simulation de la "pensée"
|
34 |
+
|
35 |
+
return ''.join(collected_messages)
|
36 |
|
37 |
# Interface utilisateur avec Streamlit
|
38 |
st.title("Chatbot avec OpenAI")
|
|
|
40 |
|
41 |
# Entrée utilisateur
|
42 |
user_input = st.text_area("Vous:", "")
|
43 |
+
history = []
|
44 |
|
45 |
if st.button("Envoyer"):
|
46 |
if user_input:
|
47 |
with st.spinner("Génération de la réponse..."):
|
48 |
+
response = generate_openai_response(user_input, history)
|
49 |
+
history.append((user_input, response))
|
50 |
st.write("Chatbot:", response)
|
51 |
else:
|
52 |
st.warning("Veuillez entrer une question ou un message.")
|