Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Anthropic SDK 提供了「middleware」(中介軟體,或稱攔截器)掛鉤,讓您可以在請求送出之前以及收到回應之後執行程式碼。中介軟體可用於橫切關注點,例如日誌記錄、自訂重試、請求註記,以及拒絕回退處理。
每個中介軟體都可以在呼叫 next() 之前檢查或替換請求,並在 next() 返回之後檢查或替換回應。
每個中介軟體都是一個函式,接收傳出的請求和一個 next 可呼叫物件。呼叫 next 將請求轉發到鏈中的其餘部分(如果這是最後一個中介軟體,則直接轉發到 SDK 核心),並返回其回應。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])當您註冊多個中介軟體時,它們會按照給定的順序套用:第一個中介軟體的「before」程式碼最先執行,而其「after」程式碼最後執行。在用戶端上註冊的中介軟體會先於作為每個請求選項傳入的中介軟體執行。
在 Go SDK 中,重複的 option.WithMiddleware 呼叫會串接(先用戶端,然後是方法)。在其他 SDK 中,傳入一個陣列;後面的項目會包裹在內層。
每個 SDK 也接受自訂的 HTTP 用戶端(用於代理設定、自訂 TLS 或連線池)。每個 SDK 用戶端只會使用一個 HTTP 用戶端;設定它會替換預設值。自訂的 HTTP 用戶端會在所有中介軟體執行完畢後接收請求。
SDK 內建了一個拒絕回退中介軟體,會自動在回退模型上重試被 Claude Fable 5 拒絕的請求。請參閱偵測並在回退模型上重試以了解設定方式和各語言的範例。
Was this page helpful?