Promotingai commited on
Commit
0fb765a
·
verified ·
1 Parent(s): 92282e9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -40
app.py CHANGED
@@ -8,47 +8,48 @@ client = anthropic.Anthropic(api_key=api_key)
8
 
9
  st.title("💬 Chatbot avec Claude 3")
10
 
11
- # Initialisation de l'état de la session pour stocker les messages s'il n'existe pas déjà
12
- if "messages" not in st.session_state:
13
- st.session_state["messages"] = []
14
-
15
  # Affichage de tous les messages précédents
16
- for msg in st.session_state.messages:
17
- if msg["role"] == "user":
18
- st.write(f"User: {msg['content']}")
19
- else:
20
- st.write(f"Assistant: {msg['content']}")
 
21
 
22
  # Entrée pour les nouvelles questions
23
- prompt = st.text_input("Posez votre question :", key="chat")
24
-
25
- if prompt:
26
- if not api_key:
27
- st.error("Clé API de Anthropic non trouvée. Veuillez définir la variable d'environnement ANTHROPIC_API_KEY.")
28
- st.stop()
29
-
30
- # Ajouter le nouveau message utilisateur à l'état de la session
31
- st.session_state.messages.append({"role": "user", "content": prompt})
32
-
33
- # Utiliser un indicateur pour montrer que le modèle génère une réponse
34
- with st.spinner('Thinking...'):
35
- response = client.messages.create(
36
- model="claude-3-opus-20240229",
37
- max_tokens=1024,
38
- messages=[{"role": msg["role"], "content": msg["content"]} for msg in st.session_state.messages]
39
- )
40
-
41
- # Récupérer le contenu de la réponse
42
- if isinstance(response.content, list):
43
- # Supposons que tous les éléments de la liste sont des objets TextBlock
44
- msg = " ".join(block.text for block in response.content)
45
- elif isinstance(response.content, dict) and 'text' in response.content:
46
- # Supposons que la réponse soit un dictionnaire avec une clé 'text'
47
- msg = response.content['text']
48
- else:
49
- # Si ce n'est ni une liste ni un dictionnaire avec 'text'
50
- msg = str(response.content)
 
 
 
 
51
 
52
- # Ajouter et afficher la réponse de l'assistant
53
- st.session_state.messages.append({"role": "assistant", "content": msg})
54
- st.write(f"Assistant: {msg}")
 
8
 
9
  st.title("💬 Chatbot avec Claude 3")
10
 
 
 
 
 
11
  # Affichage de tous les messages précédents
12
+ def display_messages():
13
+ for msg in st.session_state.messages:
14
+ if msg["role"] == "user":
15
+ st.write(f"User: {msg['content']}")
16
+ else:
17
+ st.write(f"Assistant: {msg['content']}")
18
 
19
  # Entrée pour les nouvelles questions
20
+ def input_and_response():
21
+ prompt = st.text_input("Posez votre question :", key="chat")
22
+ if prompt:
23
+ if not api_key:
24
+ st.error("Clé API de Anthropic non trouvée. Veuillez définir la variable d'environnement ANTHROPIC_API_KEY.")
25
+ return
26
+
27
+ # Ajouter le nouveau message utilisateur à l'état de la session
28
+ st.session_state.messages.append({"role": "user", "content": prompt})
29
+
30
+ # Utiliser un indicateur pour montrer que le modèle génère une réponse
31
+ with st.spinner('Thinking...'):
32
+ response = client.messages.create(
33
+ model="claude-3-opus-20240229",
34
+ max_tokens=1024,
35
+ messages=[{"role": msg["role"], "content": msg["content"]} for msg in st.session_state.messages]
36
+ )
37
+
38
+ # Récupérer et traiter le contenu de la réponse
39
+ if isinstance(response.content, list):
40
+ msg = " ".join(block.text for block in response.content)
41
+ elif isinstance(response.content, dict) and 'text' in response.content:
42
+ msg = response.content['text']
43
+ else:
44
+ msg = str(response.content)
45
+
46
+ # Ajouter et afficher la réponse de l'assistant
47
+ st.session_state.messages.append({"role": "assistant", "content": msg})
48
+
49
+ # Initialisation de l'état de la session pour stocker les messages s'il n'existe pas déjà
50
+ if "messages" not in st.session_state:
51
+ st.session_state["messages"] = []
52
 
53
+ # Placer les fonctions d'affichage des messages et de saisie des questions
54
+ display_messages()
55
+ input_and_response()