API リファレンス上級者向け更新日
POST/v1/chat/completions
Chat Completions
OpenAI Chat 形式で会話を送信します。リクエスト前に、モデルと選択したエンドポイントの両方が Chat に対応していることを確認してください。
事前準備
クイックスタートに沿って API Key を取得し、HTTP で直接呼び出せるエンドポイントを選びます。例では ICODEEASY_API_KEY を Bearer トークンとして送信します。YOUR_MODEL_ID をエンドポイントで利用できるモデル ID に置き換えます。
リクエスト例
モデルを model、会話を messages に指定します。stream: false で JSON レスポンスを要求します。
bash
curl -sS https://api.icodeeasy.cc/v1/chat/completions \
-H "Authorization: Bearer $ICODEEASY_API_KEY" \
-H 'Content-Type: application/json' \
--data '{
"model": "YOUR_MODEL_ID",
"messages": [
{
"role": "user",
"content": "Say hello."
}
],
"stream": false
}'
レスポンスの読み取り
choices[].message.content からテキストを読み取ります。usage には prompt_tokens、completion_tokens、total_tokens が含まれることがあります。usage.prompt_tokens_details.cached_tokens はキャッシュにヒットした入力トークン数です。
json
{
"choices": [
{
"message": {
"role": "assistant",
"content": "Hello!"
},
"finish_reason": "stop"
}
]
}
ストリーミングレスポンス例
リクエスト本文に stream: true を指定すると SSE で受信できます。SSE では choices[].index ごとに delta.content を連結します。finish_reason が返ったら終了理由を記録し、最後の使用量フレームや [DONE] まで読み進めます。エラーが返るか、終了が確認できる前に接続が切れた場合は、失敗または未完了として扱います。
text
data: {"choices":[{"index":0,"delta":{"content":"Hello!"},"finish_reason":null}]}
data: {"choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: {"choices":[],"usage":{"prompt_tokens":10,"completion_tokens":4,"total_tokens":14}}
data: [DONE]
対応エンドポイントでストリーミング中の使用量を取得するには stream_options.include_usage: true を指定します。使用量だけのフレームでは choices が空になることがあります。