コンテンツにスキップ
17.3k

レスポンスの検査と大きなレスポンス

OpenCodex は、クライアントに配信するバイト数をログの上限で制限せずに、レスポンスの診断情報の保持量を制限します。プロバイダー、リクエスト、転送に関するその他の制限は、それぞれ適用されます。

JSON の検査では、元のデータを最大 32 MiB 保持します。本文がこの上限を超えた場合、ログ用のコピーは破棄されますが、元のレスポンスの転送は続きます。切り詰めた先頭部分を、使用量やモデルのメタデータの確定値として解析することはありません。別の信頼できる経路で得た使用量は保持され、不明な使用量を架空のゼロに置き換えることもありません。JSON 以外の通常のエラー診断では先頭 8 KiB のみを保持し、既存の秘匿処理を適用します。

クライアントは本文全体の診断検査を待たず、読み取りに応じてチャンクを受け取ります。読み取り失敗はリクエスト履歴に 502、キャンセルは 499 として記録されます。これらの診断上の結果によって、送信済みの HTTP ヘッダーは書き換わりません。ログの確定処理は一度だけ行われます。

ネイティブ SSE の検査がクライアントの消費より大幅に先行すると、一時停止します。許容量は 32 MiB に元のチャンクとネイティブ先読みのオーバーヘッドを加えたもので、レスポンス全体のサイズ制限でも、プロセス全体のメモリ上限でもありません。より長いレスポンスも、最後の使用量と継続状態を含む実際の完了イベントまで検査されます。

クライアントが切断した後も、既存の制限付き排出処理により、最大 15 秒または追加の検査データ 32 MiB まで遅れて届く完了を確認できます。強制終了は異なり、未完了の候補を完了済みレスポンスとして記録せず破棄します。既存の転送方式の選択と WebSocket のメモリ制限は変わりません。新しい設定項目も不要です。