Nous allons appeler Claude avec le SDK Python officiel, afficher le texte et relever la consommation. Le catalogue de modèles évolue : récupérez un identifiant actif dans la documentation Anthropic au moment de l’implémentation.
Installer le SDK
~~~bash python -m venv .venv source .venv/bin/activate pip install -U anthropic python-dotenv ~~~
Placez la clé dans un fichier .env ignoré par Git :
~~~text ANTHROPIC_API_KEY=votre_cle ANTHROPIC_MODEL=identifiant_du_modele_actif ~~~
Envoyer le message
~~~python import os from anthropic import Anthropic from dotenv import load_dotenv
load_dotenv() client = Anthropic(api_key=os.environ['ANTHROPIC_API_KEY'])
message = client.messages.create( model=os.environ['ANTHROPIC_MODEL'], max_tokens=300, temperature=0.2, system='Tu es un assistant technique. Réponds en français.', messages=[ {'role': 'user', 'content': 'Explique une transaction SQL avec un exemple.'} ], )
text = ''.join( block.text for block in message.content if block.type == 'text' ) print(text) print('entrée:', message.usage.input_tokens) print('sortie:', message.usage.output_tokens) ~~~
Le contenu est une liste de blocs, pas une simple chaîne. Ce format permet au même message de contenir texte et appels d’outils.
Ajouter un historique
Renvoyez les tours précédents dans messages, en alternant user et assistant. Ne stockez pas indéfiniment toute la conversation : résumez ou sélectionnez les tours utiles, et calculez le budget de tokens avant l’appel.
Gérer les erreurs
~~~python import anthropic
try: response = client.messages.create(...) except anthropic.RateLimitError: # file d'attente ou nouvelle tentative avec délai raise except anthropic.APIStatusError as error: print(error.status_code, error.request_id) raise ~~~
Relancez uniquement les erreurs temporaires et utilisez une clé d’idempotence pour toute action associée. Ne journalisez jamais la clé ni un prompt contenant des données sensibles.
Production
Centralisez modèle, température et limite de sortie dans une configuration versionnée. Ajoutez timeout, métriques de latence, tokens, coût estimé et identifiant de requête. Testez sur un jeu de cas métier avant de changer de modèle.
FAQ
Pourquoi max_tokens est-il obligatoire ?
Il borne la sortie et donc la latence et la dépense. Choisissez-le selon le format attendu, pas selon la fenêtre maximale du modèle.
Le system prompt est-il une barrière de sécurité ?
Non. Les autorisations et validations doivent rester dans le code et les outils.