Middleware du SDK
Interceptez et modifiez les requêtes et les réponses dans les SDK Anthropic.
Les SDK Anthropic fournissent un hook de « middleware » (intergiciel), ou intercepteur, qui vous permet d'exécuter du code avant l'envoi d'une requête et après la réception de la réponse. Utilisez le middleware pour les préoccupations transversales telles que la journalisation, les nouvelles tentatives personnalisées, l'annotation des requêtes et la gestion du repli en cas de refus.
Chaque middleware peut inspecter ou remplacer la requête avant d'appeler next(), et la réponse après le retour de next().
Enregistrement d'un middleware
Chaque middleware est une fonction qui reçoit la requête sortante et un appelable next. Appelez next pour transmettre la requête au reste de la chaîne (ou directement au cœur du SDK s'il s'agit du dernier middleware), et renvoyez sa réponse. Tout ce qui précède l'appel à next s'exécute à l'aller ; tout ce qui le suit s'exécute au retour.
def logging_middleware(request: APIRequest, call_next: CallNext) -> APIResponse[Any]:
# Avant la requête
print(f"-> {request.method} {request.url}")
# Transmettre la requête au reste de la chaîne
response = call_next(request)
# Après la requête
print(f"<- {response.status_code}")
return response
client = Anthropic(middleware=[logging_middleware])Ordre des middlewares
Lorsque vous enregistrez plusieurs middlewares, ils s'appliquent dans l'ordre indiqué : le code « avant » du premier middleware s'exécute en premier, et son code « après » s'exécute en dernier. Les middlewares enregistrés sur le client s'exécutent avant les middlewares transmis en tant qu'option par requête.
Dans le SDK Go, les appels répétés à option.WithMiddleware se concatènent (d'abord ceux du client, puis ceux de la méthode). Dans les autres SDK, transmettez un tableau ; les entrées ultérieures enveloppent les entrées intérieures.
Remplacement du client HTTP
Chaque SDK accepte également un client HTTP personnalisé (pour la configuration d'un proxy, un TLS personnalisé ou la mise en pool des connexions). Un seul client HTTP est utilisé par client SDK ; le définir remplace celui par défaut. Le client HTTP personnalisé reçoit les requêtes après l'exécution de tous les middlewares.
Middleware intégré
Les SDK sont livrés avec un middleware de repli en cas de refus qui relance automatiquement, sur un modèle de repli, les requêtes que Claude Fable 5 décline. Consultez Détecter et relancer sur un modèle de repli pour la configuration et des exemples par langage.
Was this page helpful?