API リファレンス上級者向け更新日
POST/v1/chat/completions

API コンソール

POST/v1/chat/completions
キーを確認

入力したキーで実際にリクエストを送信し、API の通常料金が適用されます。

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 が空になることがあります。