Middleware do SDK
Intercepte e modifique requisições e respostas nos SDKs da Anthropic.
Os SDKs da Anthropic fornecem um hook de "middleware" (intermediário), ou interceptor, que permite executar código antes de uma requisição ser enviada e depois de a resposta ser recebida. Use middleware para preocupações transversais, como logging, retentativas personalizadas, anotação de requisições e tratamento de fallback de recusas.
Cada middleware pode inspecionar ou substituir a requisição antes de chamar next(), e a resposta depois que next() retorna.
Registrando middleware
Cada middleware é uma função que recebe a requisição de saída e um callable next. Chame next para encaminhar a requisição ao restante da cadeia (ou diretamente ao núcleo do SDK, se este for o último middleware) e retorne sua resposta. Tudo o que vem antes da chamada a next é executado na ida; tudo o que vem depois é executado na volta.
def logging_middleware(request: APIRequest, call_next: CallNext) -> APIResponse[Any]:
# Antes da requisição
print(f"-> {request.method} {request.url}")
# Encaminha a requisição para o restante da cadeia
response = call_next(request)
# Depois da requisição
print(f"<- {response.status_code}")
return response
client = Anthropic(middleware=[logging_middleware])Ordem dos middlewares
Quando você registra vários middlewares, eles são aplicados na ordem fornecida: o código "antes" do primeiro middleware é executado primeiro, e seu código "depois" é executado por último. Middlewares registrados no cliente são executados antes dos middlewares passados como opção por requisição.
No SDK Go, chamadas repetidas a option.WithMiddleware são concatenadas (primeiro as do cliente, depois as do método). Nos outros SDKs, passe um array; as entradas posteriores envolvem as internas.
Substituindo o cliente HTTP
Cada SDK também aceita um cliente HTTP personalizado (para configuração de proxy, TLS personalizado ou pool de conexões). Apenas um cliente HTTP é usado por cliente do SDK; defini-lo substitui o padrão. O cliente HTTP personalizado recebe as requisições depois que todos os middlewares foram executados.
Middleware integrado
Os SDKs incluem um middleware de fallback de recusa que automaticamente tenta novamente, em um modelo de fallback, as requisições que o Claude Fable 5 recusa. Consulte Detectar e tentar novamente em um modelo de fallback para configuração e exemplos por linguagem.
Was this page helpful?