API レスポンスから返されるエラーコードに加えて、HTTP レスポンスヘッダーも検査する必要がある場合があります。特に興味深いのは、特定のAPIリクエストの一意のIDと、リクエストに適用されるレート制限に関する情報を含むヘッダーです。以下は、APIレスポンスで返されるHTTPヘッダーの不完全なリストです。openai-organization
: リクエストに関連付けられた組織openai-processing-ms
: API リクエストの処理にかかった時間openai-version: このリクエストに使用されたREST APIバージョン(現在
2020-10-01)
x-request-id`: この API リクエストの一意の識別子 (トラブルシューティングで使用)x-ratelimit-limit-requests`
`X-ratelimit-limit-リクエスト
x-ratelimit-limit-tokens`
`X-レートリミット-リミット-トークン
x-ratelimit-remaining-requests
x-ratelimit-remaining-tokens
x-ratelimit-reset-requests`
`X-レートリミット-リセット-リクエスト
x-ratelimit-reset-tokens
OpenAIは、本番環境のデプロイメントでリクエストIDをログに記録することを推奨しており、これにより、必要に応じてサポートチームによるより効率的なトラブルシューティングが可能になります。公式 SDK は、x-request-id
ヘッダーの値を含む最上位の応答オブジェクトにプロパティを提供します。from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
messages=[{
"role": "user",
"content": "Say this is a test",
}],
model="gpt-4o-mini",
)
print(response._request_id)
import OpenAI from 'openai';
const client = new OpenAI();
const response = await client.chat.completions.create({
messages: [{ role: 'user', content: 'Say this is a test' }],
model: 'gpt-4o-mini'
});
console.log(response._request_id);
SDK の生の応答オブジェクトにアクセスする#
下位レベルの HTTP クライアント (C# の fetch や HttpClient
など) を使用している場合は、HTTP インターフェイスの一部として応答ヘッダーに既にアクセスできるはずです。OpenAIの公式SDK(HTTPリクエスト/レスポンスサイクルの大部分を抽象化)のいずれかを使用している場合は、少し異なる方法で生のHTTPレスポンスにアクセスする必要があります。以下は、Python SDK を使用して生のレスポンスオブジェクト (および x-ratelimit-limit-tokens
ヘッダー) にアクセスする例です。from openai import OpenAI
client = OpenAI()
response = client.chat.completions.with_raw_response.create(
messages=[{
"role": "user",
"content": "Say this is a test",
}],
model="gpt-4o-mini",
)
print(response.headers.get('x-ratelimit-limit-tokens'))
# get the object that `chat.completions.create()` would have returned
completion = response.parse()
print(completion)
import OpenAI from 'openai';
const client = new OpenAI();
const response = await client.chat.completions.create({
messages: [{ role: 'user', content: 'Say this is a test' }],
model: 'gpt-4o-mini'
}).asResponse();
// access the underlying Response object
console.log(response.headers.get('x-ratelimit-limit-tokens'));
Modified at 2025-01-02 08:56:15