ImPolymath commited on
Commit
871e9dd
·
verified ·
1 Parent(s): 882749f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -22
app.py CHANGED
@@ -6,7 +6,7 @@ from os import getenv
6
  client = OpenAI(api_key=getenv("OPENAI_API_KEY"))
7
 
8
  def main():
9
- st.title("Application de Chat avec GPT-4o")
10
 
11
  # Initialisation de l'historique des messages
12
  if "messages" not in st.session_state:
@@ -27,27 +27,23 @@ def main():
27
  st.markdown(user_input)
28
 
29
  # Traitement du message avec OpenAI
30
- with st.status("L'assistant est en train de répondre...", expanded=True) as status:
31
- # Utilisation de l'API OpenAI
32
- async def generate_response():
33
- stream = client.chat.completions.create(
34
- model="gpt-4o",
35
- messages=[{"role": m["role"], "content": m["content"]} for m in st.session_state.messages],
36
- stream=True
37
- )
38
- for chunk in stream:
39
- if chunk.choices[0].delta.content is not None:
40
- yield chunk.choices[0].delta.content
41
-
42
- # Streaming de la réponse
43
- response = ""
44
- with st.chat_message("assistant"):
45
- status.update(label="L'assistant répond...", expanded=True)
46
- st.write_stream(generate_response())
47
-
48
- # Ajout de la réponse de l'assistant à l'historique
49
- st.session_state.messages.append({"role": "assistant", "content": response})
50
- status.update(label="Réponse terminée", state="complete", expanded=False)
51
 
52
  st.sidebar.markdown("## À propos")
53
  st.sidebar.info("Cette application utilise Streamlit et OpenAI GPT-4 pour créer un chat interactif avec un modèle de langage avancé.")
 
6
  client = OpenAI(api_key=getenv("OPENAI_API_KEY"))
7
 
8
  def main():
9
+ st.title("Application de Chat avec GPT-4")
10
 
11
  # Initialisation de l'historique des messages
12
  if "messages" not in st.session_state:
 
27
  st.markdown(user_input)
28
 
29
  # Traitement du message avec OpenAI
30
+ with st.chat_message("assistant"):
31
+ message_placeholder = st.empty()
32
+ full_response = ""
33
+ for response in client.chat.completions.create(
34
+ model="gpt-4",
35
+ messages=[
36
+ {"role": m["role"], "content": m["content"]}
37
+ for m in st.session_state.messages
38
+ ],
39
+ stream=True,
40
+ ):
41
+ full_response += (response.choices[0].delta.content or "")
42
+ message_placeholder.markdown(full_response + "▌")
43
+ message_placeholder.markdown(full_response)
44
+
45
+ # Ajout de la réponse de l'assistant à l'historique
46
+ st.session_state.messages.append({"role": "assistant", "content": full_response})
 
 
 
 
47
 
48
  st.sidebar.markdown("## À propos")
49
  st.sidebar.info("Cette application utilise Streamlit et OpenAI GPT-4 pour créer un chat interactif avec un modèle de langage avancé.")