Middleware в SDK
Перехватывайте и изменяйте запросы и ответы в SDK Anthropic.
SDK Anthropic предоставляют хук «middleware» (промежуточное ПО), или перехватчик, который позволяет выполнять код до отправки запроса и после получения ответа. Используйте middleware для сквозных задач, таких как логирование, пользовательские повторные попытки, аннотирование запросов и обработка резервного варианта при отказах.
Каждое middleware может проверять или заменять запрос перед вызовом next(), а также ответ после возврата из next().
Регистрация middleware
Каждое middleware — это функция, которая получает исходящий запрос и вызываемый объект next. Вызовите next, чтобы передать запрос дальше по цепочке (или напрямую в ядро SDK, если это последнее middleware), и верните его ответ. Всё, что находится до вызова next, выполняется на пути туда; всё, что после, — на пути обратно.
def logging_middleware(request: APIRequest, call_next: CallNext) -> APIResponse[Any]:
# Перед запросом
print(f"-> {request.method} {request.url}")
# Передать запрос дальше по цепочке
response = call_next(request)
# После запроса
print(f"<- {response.status_code}")
return response
client = Anthropic(middleware=[logging_middleware])Порядок выполнения middleware
Когда вы регистрируете несколько middleware, они применяются в указанном порядке: код «до» первого middleware выполняется первым, а его код «после» — последним. Middleware, зарегистрированное на клиенте, выполняется раньше middleware, переданного в качестве параметра отдельного запроса.
В Go SDK повторные вызовы option.WithMiddleware объединяются (сначала клиентские, затем уровня метода). В остальных SDK передавайте массив; более поздние элементы оборачивают внутренние.
Замена HTTP-клиента
Каждый SDK также принимает пользовательский HTTP-клиент (для настройки прокси, пользовательского TLS или пула соединений). На один клиент SDK используется только один HTTP-клиент; его установка заменяет клиент по умолчанию. Пользовательский HTTP-клиент получает запросы после выполнения всех middleware.
Встроенное middleware
SDK поставляются с middleware резервного варианта при отказах, которое автоматически повторяет на резервной модели запросы, отклонённые Claude Fable 5. См. раздел Обнаружение и повторная попытка на резервной модели для настройки и примеров на каждом языке.
Was this page helpful?