Gli SDK di Anthropic forniscono un hook "middleware" (o intercettore) che ti consente di eseguire codice prima che una richiesta venga inviata e dopo che la risposta è stata ricevuta. Usa il middleware per esigenze trasversali come il logging, retry personalizzati, l'annotazione delle richieste e la gestione del fallback in caso di rifiuto.
Ogni middleware può ispezionare o sostituire la richiesta prima di chiamare next(), e la risposta dopo che next() ha restituito un valore.
Ogni middleware è una funzione che riceve la richiesta in uscita e un callable next. Chiama next per inoltrare la richiesta al resto della catena (o direttamente al core dell'SDK se questo è l'ultimo middleware), e restituisci la sua risposta. Tutto ciò che precede la chiamata a next viene eseguito in uscita; tutto ciò che segue viene eseguito al ritorno.
Quando registri più middleware, vengono applicati nell'ordine indicato: il codice "before" del primo middleware viene eseguito per primo, e il suo codice "after" viene eseguito per ultimo. Il middleware registrato sul client viene eseguito prima del middleware passato come opzione per singola richiesta.
Nell'SDK Go, chiamate ripetute a option.WithMiddleware vengono concatenate (prima il client, poi il metodo). Negli altri SDK, passa un array; le voci successive avvolgono quelle interne.
Ogni SDK accetta anche un client HTTP personalizzato (per la configurazione del proxy, TLS personalizzato o connection pooling). Viene utilizzato un solo client HTTP per ogni client SDK; impostarlo sostituisce quello predefinito. Il client HTTP personalizzato riceve le richieste dopo che tutto il middleware è stato eseguito.
Gli SDK includono un middleware di fallback per i rifiuti che riprova automaticamente su un modello di fallback le richieste che Claude Fable 5 rifiuta. Consulta Rilevare e riprovare su un modello di fallback per la configurazione e gli esempi per ciascun linguaggio.
Was this page helpful?