CLI、SDK 與函式庫用戶端 SDK
SDK 中介軟體
在 Anthropic SDK 中攔截並修改請求與回應。
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 中,請傳入一個陣列;較後面的項目會包裹在內層。
替換 HTTP 用戶端
每個 SDK 也接受自訂的 HTTP 用戶端(用於代理設定、自訂 TLS 或連線池)。每個 SDK 用戶端僅使用一個 HTTP 用戶端;設定它會取代預設值。自訂 HTTP 用戶端會在所有中介軟體執行完畢後接收請求。
內建中介軟體
SDK 隨附一個拒絕回退(refusal-fallback)中介軟體,會自動在回退模型上重試 Claude Fable 5 所拒絕的請求。請參閱偵測並在回退模型上重試,以了解設定方式與各語言範例。
Was this page helpful?