import streamlit as st import os import anthropic # Initialisation de l'API de Anthropic avec la clé API api_key = os.getenv("ANTHROPIC_API_KEY", "my_api_key") client = anthropic.Anthropic(api_key=api_key) st.title("💬 Chatbot avec Claude 3") # Initialisation de l'état de la session pour stocker les messages s'il n'existe pas déjà if "messages" not in st.session_state: st.session_state["messages"] = [] # Affichage de tous les messages précédents for msg in st.session_state.messages: st.chat_message(role=msg["role"], content=msg["content"]) # Entrée pour les nouvelles questions prompt = st.chat_input("Posez votre question :") if prompt: if not api_key: st.error("Clé API de Anthropic non trouvée. Veuillez définir la variable d'environnement ANTHROPIC_API_KEY.") st.stop() # Ajouter le nouveau message utilisateur à l'état de la session st.session_state.messages.append({"role": "user", "content": prompt}) # Utiliser un indicateur pour montrer que le modèle génère une réponse with st.spinner('Thinking...'): response = client.messages.create( model="claude-3-opus-20240229", max_tokens=1024, messages=[{"role": msg["role"], "content": msg["content"]} for msg in st.session_state.messages] ) # Récupérer le contenu de la réponse msg = response.content # Ajouter et afficher la réponse de l'assistant st.session_state.messages.append({"role": "assistant", "content": msg}) st.chat_message(role="assistant", content=msg)