Claude Platform Docs
CLI, SDK и библиотекиКлиентские SDK

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?