Anthropic SDKは、リクエストが送信される前とレスポンスが受信された後にコードを実行できる「middleware」(ミドルウェア、またはインターセプター)フックを提供します。ミドルウェアは、ロギング、カスタムリトライ、リクエストへのアノテーション付与、拒否時のフォールバック処理など、横断的な関心事に使用します。
各ミドルウェアは、next()を呼び出す前にリクエストを検査または置き換えることができ、next()が返った後にレスポンスを検査または置き換えることができます。
各ミドルウェアは、送信されるリクエストとnext呼び出し可能オブジェクトを受け取る関数です。nextを呼び出すと、リクエストがチェーンの残りの部分(またはこれが最後のミドルウェアの場合はSDKコアに直接)転送され、そのレスポンスが返されます。next呼び出しの前にあるコードは送信時に実行され、後にあるコードは受信時に実行されます。
複数のミドルウェアを登録すると、指定された順序で適用されます。最初のミドルウェアの「前処理」コードが最初に実行され、その「後処理」コードが最後に実行されます。クライアントに登録されたミドルウェアは、リクエストごとのオプションとして渡されたミドルウェアよりも先に実行されます。
Go SDKでは、option.WithMiddlewareを繰り返し呼び出すと連結されます(クライアントが先、次にメソッド)。その他のSDKでは配列を渡します。後のエントリが内側をラップします。
各SDKはカスタムHTTPクライアントも受け入れます(プロキシ設定、カスタムTLS、コネクションプーリングなどのため)。SDKクライアントごとに使用されるHTTPクライアントは1つだけで、設定するとデフォルトが置き換えられます。カスタムHTTPクライアントは、すべてのミドルウェアが実行された後にリクエストを受け取ります。
SDKには、Claude Fable 5が拒否したリクエストをフォールバックモデルで自動的にリトライする拒否フォールバックミドルウェアが同梱されています。セットアップと言語ごとの例については、フォールバックモデルでの検出とリトライを参照してください。
Was this page helpful?