Intégrer l’API Claude dans votre propre application
Intégrer l'API Claude dans votre propre application
Cet article explique comment intégrer l'API Claude d'Anthropic dans votre propre application, y compris l'authentification, la gestion des requêtes et la gestion des erreurs. Destiné aux développeurs qui travaillent avec Python 3.9+ ou Node.js 18+.
Prérequis
- Un compte Anthropic avec accès à l'API. Allez sur [console.anthropic.com](https://console.anthropic.com) pour créer votre clé API. - Python 3.9 ou supérieur, ou Node.js 18 ou supérieur. - Le SDK `anthropic`. Installez-le avec pip ou npm. - Connaissances de base des API REST et du JSON.
Étapes
1. Installez le SDK Anthropic
Pour Python :
pip install anthropic==0.40.0
Pour Node.js :
npm install @anthropic-ai/sdk@0.32.1
La version du SDK est importante. Consultez le [changelog Anthropic](https://github.com/anthropics/anthropic-sdk-python/releases) pour la dernière version.
2. Définissez votre clé API comme variable d'environnement
Ne stockez pas votre clé API dans le code. Utilisez une variable d'environnement.
export ANTHROPIC_API_KEY="sk-ant-..."
Sur Windows (PowerShell) :
$env:ANTHROPIC_API_KEY="sk-ant-..."
3. Initialisez le client
Python :
from anthropic import Anthropic</p><p>client = Anthropic()
Le client lit automatiquement la variable d'environnement `ANTHROPIC_API_KEY`. Vous pouvez également fournir la clé explicitement :
client = Anthropic(api_key="sk-ant-...")
Node.js :
const Anthropic = require('@anthropic-ai/sdk');
const client = new Anthropic();4. Effectuez votre premier appel API
Python :
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
messages=[
{"role": "user", "content": "Expliquez en une phrase ce qu'est une API."}
]
)</p><p>print(response.content[0].text)Node.js :
async function main() {
const response = await client.messages.create({
model: "claude-3-5-sonnet-20241022",
max_tokens: 1024,
messages: [
{ role: "user", content: "Expliquez en une phrase ce qu'est une API." }
]
});
console.log(response.content[0].text);
}</p><p>main();5. Ajoutez des system prompts et des paramètres
Vous pouvez orienter le comportement du modèle avec un prompt `system` et des paramètres comme `temperature`.
Python :
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
temperature=0.7,
system="Vous êtes un assistant serviable qui répond toujours en français.",
messages=[
{"role": "user", "content": "Quelle est la capitale de la France ?"}
]
)6. Gérez les réponses en streaming
Pour les réponses longues, utilisez le streaming. Cela offre une meilleure expérience utilisateur.
Python :
with client.messages.stream(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
messages=[
{"role": "user", "content": "Écrivez un court poème sur la mer."}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)7. Implémentez la gestion des erreurs
Le SDK lève des exceptions en cas d'erreur. Interceptez-les et journalisez-les.
Python :
from anthropic import APIError, APIStatusError, APIConnectionError</p><p>try:
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
messages=[{"role": "user", "content": "Bonjour"}]
)
except APIConnectionError as e:
print("Le serveur est inaccessible")
print(e.__cause__)
except APIStatusError as e:
print("Code de statut :", e.status_code)
print("Réponse :", e.response)
except APIError as e:
print("Erreur API :", e)8. Gérez les limites de débit
Anthropic applique des limites de débit par compte. Le SDK réessaie automatiquement en cas d'erreur de limite de débit, mais vous pouvez configurer le nombre de tentatives.
Python :
from anthropic import Anthropic</p><p>client = Anthropic(
max_retries=3, la valeur par défaut est 2
timeout=60.0, délai d'expiration en secondes
)Vérification
Vérifiez que votre intégration fonctionne avec un test minimal. La réponse doit contenir un tableau `content` avec un champ `text`.
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=10,
messages=[{"role": "user", "content": "Dites 'ok'"}]
)</p><p>assert response.content[0].text == "ok"
print("L'intégration API fonctionne correctement")Vous pouvez également inspecter la réponse :
print(response.model) claude-3-5-sonnet-20241022
print(response.stop_reason) end_turn
print(response.usage) input_tokens et output_tokensProblèmes fréquents
1. AuthenticationError : invalid x-api-key
Votre clé API est incorrecte ou n'est pas définie. Vérifiez que la variable d'environnement est correcte :
echo $ANTHROPIC_API_KEY
Si la clé est vide, définissez-la à nouveau. Vérifiez également que votre clé est toujours active dans la console Anthropic.
2. Modèle introuvable
Vous utilisez un nom de modèle qui n'existe pas ou qui n'est pas disponible pour votre compte. Vérifiez les modèles disponibles dans la [documentation Anthropic](https://docs.anthropic.com/en/docs/about-claude/models). Le nom du modèle doit correspondre exactement, y compris le suffixe de date.
3. Erreurs de limite de débit (429)
Vous dépassez le nombre de requêtes par minute. Augmentez le nombre de tentatives dans la configuration du client :
client = Anthropic(max_retries=5)
Envisagez également de regrouper les requêtes ou d'implémenter une file d'attente pour les environnements de production.
L'intégration est maintenant complète. Vous disposez d'une connexion fonctionnelle avec l'API Claude, y compris la diffusion en continu, la gestion des erreurs et la gestion des limites de débit. L'étape suivante consiste à construire une couche applicative robuste qui traite ces appels API — mais ces choix dépendent de votre cas d'utilisation et de votre architecture spécifiques.