SDK Anthropic предоставляют хук «middleware» (промежуточное ПО, или перехватчик), который позволяет выполнять код перед отправкой запроса и после получения ответа. Используйте middleware для сквозных задач, таких как логирование, пользовательские повторные попытки, аннотирование запросов и обработка резервного варианта при отказе.
Каждый middleware может проверять или заменять запрос перед вызовом next(), а также ответ после того, как next() вернёт результат.
Каждый middleware — это функция, которая получает исходящий запрос и вызываемый объект next. Вызовите next, чтобы передать запрос дальше по цепочке (или напрямую в ядро SDK, если это последний middleware), и верните его ответ. Всё, что находится до вызова next, выполняется на пути «наружу»; всё, что после, — на пути «обратно».
Когда вы регистрируете несколько middleware, они применяются в указанном порядке: код «до» первого middleware выполняется первым, а его код «после» — последним. Middleware, зарегистрированный на клиенте, выполняется раньше middleware, переданного в качестве параметра конкретного запроса.
В Go SDK повторные вызовы option.WithMiddleware конкатенируются (сначала клиентские, затем на уровне метода). В остальных SDK передавайте массив; более поздние элементы оборачивают внутренние.
Каждый SDK также принимает пользовательский HTTP-клиент (для настройки прокси, пользовательского TLS или пула соединений). На один клиент SDK используется только один HTTP-клиент; его установка заменяет клиент по умолчанию. Пользовательский HTTP-клиент получает запросы после выполнения всех middleware.
SDK поставляются с middleware резервного варианта при отказе, который автоматически повторяет на резервной модели запросы, отклонённые Claude Fable 5. См. раздел Обнаружение и повторная попытка на резервной модели для настройки и примеров на разных языках.
Was this page helpful?