友人を招待して無料トークンを獲得!詳細を見る

チャット補完 API ドキュメント (Chat Completions)

この API は、一連の会話メッセージを受け取り、モデルが1つ以上の予測された補完結果を返すために使用されます。ストリーミング出力、ツール呼び出し(Function Calling)、および様々なサンプリングパラメータの調整をサポートしています。

1. エンドポイント情報

  • API名:公式Nテスト
  • リクエストメソッド:POST
  • エンドポイントURL:https://api.codingplanx.ai/v1/chat/completions
  • Content-Type:application/json
  • 認証方式:Bearer {{YOUR_API_KEY}}

2. リクエストヘッダー (Headers)

パラメータ名必須データ型説明例
Content-Typeはいstringメディアタイプの識別application/json
Acceptはいstringクライアントが受け入れ可能なレスポンス形式application/json
AuthorizationいいえstringAPI アクセストークンBearer sk-xxxxxx

3. リクエストボディ (Request Body)

パラメータ名必須データ型説明
modelはいstring使用するモデル ID(例: gpt-4o, gpt-3.5-turbo)。
messagesはいarray会話メッセージのリスト。各オブジェクトには role (system/user/assistant) と content が含まれます。
toolsはいarrayモデルが呼び出せるツールのリスト。現在は関数(Function)のみをサポートしています。
tool_choiceはいobjectモデルがどの関数を呼び出すかを制御します。none (呼び出さない), auto (自動), または特定の関数を指定します。
temperatureいいえnumberサンプリング温度 (0〜2)。高いほどランダムになり、低いほど決定的になります。top_p のどちらか一方のみを変更することを推奨します。
top_pいいえnumberヌクレアスサンプリング。0.1 は確率質量の上位 10% のトークンのみを考慮することを意味します。
nいいえintegerデフォルトは 1。各入力メッセージに対して生成される返答の数。
streamいいえbooleanデフォルトは false。true の場合、ChatGPT のようにトークンをインクリメンタル(逐次的)に送信します。
stopいいえstring停止シーケンス。モデルがこれらの文字に遭遇した場合、生成を停止します。
max_tokensいいえinteger生成する最大トークン数。デフォルトは inf(無限)。
presence_penaltyいいえnumber-2.0 から 2.0 の間の値。既に出現したトピックをペナルティの対象とし、新しい話題について話す可能性を高めます。
frequency_penaltyいいえnumber-2.0 から 2.0 の間の値。繰り返される単語やフレーズをペナルティの対象とします。
logit_biasいいえobject指定したトークンが出現する確率を変更します。
userいいえstringエンドユーザーの識別子。不正利用の検出に使用されます。
response_formatいいえobject返却フォーマットを指定します。例: { "type": "json_object" } を設定すると JSON モードが有効になります。
seenいいえintegerテスト段階の機能。シード(Seed)を指定して、決定論的な出力を試みます。

4. レスポンスパラメータ (Response Body)

パラメータ名データ型説明
idstring今回のリクエストの一意の識別子。
objectstringオブジェクトタイプ。通常は chat.completion です。
createdintegerリクエストが作成されたタイムスタンプ(Unixタイム/秒)。
choicesarray返答オプションのリスト。
├─ indexintegerリスト内でのこのオプションのインデックス。
├─ messageobjectモデルによって生成された具体的なメッセージ。
│ ├─ rolestringロール。通常は assistant です。
│ └─ contentstringメッセージのテキストコンテンツ。
└─ finish_reasonstring生成が停止した理由(例: stop, length, tool_calls)。
usageobjectトークンの使用状況。
├─ prompt_tokensinteger入力(プロンプト)で消費されたトークン数。
├─ completion_tokensinteger出力(生成)で消費されたトークン数。
└─ total_tokensinteger合計消費トークン数。

5. リクエストとレスポンスの例 (Example)

リクエスト例

{
    "model": "gpt-4o",
    "messages": [
        {
            "role": "user",
            "content": "who are u?"
        }
    ],
    "n": 1,
    "max_tokens": 100,
    "temperature": 0.8,
    "stream": false
}

レスポンス例

{
    "id": "chatcmpl-123",
    "object": "chat.completion",
    "created": 1677652288,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "\r
\r
Hello there, how may I assist you today?"
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 9,
        "completion_tokens": 12,
        "total_tokens": 21
    }
}

6. よくある質問 (FAQ)

Q: response_format: { "type": "json_object" } を設定してもエラーになるのはなぜですか? A: JSONモードを使用する場合、messages 内のシステムメッセージまたはユーザーメッセージを通じて、モデルに対して明示的にJSONを生成するように指示する必要があります(例:「JSONフォーマットで返答してください」)。そうしないと、モデルが有効なJSONを生成できずに処理がスタックしたり、エラーを返したりする可能性があります。

Q: temperature と top_p は同時に調整できますか? A: 技術的には可能ですが、公式にはどちらか一方のみを調整することが推奨されています。一方を調整するだけで出力のランダム性を変える目的は達成できます。両方を同時に調整すると、生成結果の予測が困難になる可能性があります。

Q: stream: true の場合、どのようにデータを受信しますか? A: ストリーミング転送を有効にすると、サーバーは一連の Server-Sent Events (SSE) を送信します。各イベントのデータ部分は JSON オブジェクトであり、最後は data: [DONE] で終了します。Python の response.iter_lines() のようなストリーミング解析ライブラリを使用して、データを1行ずつ処理する必要があります。

Q: トークン(Token)の消費量はどのように計算されますか? A: 英語の場合、1トークンは約4文字または0.75単語に相当します。中国語や日本語の場合、1文字が1〜2トークン(またはそれ以上)に相当する場合があります。最終的な消費量は、レスポンスボディ内の usage フィールドの値に基づきます。

Q: finish_reason: "length" はどういう意味ですか? A: これは、生成されたコンテンツが max_tokens で設定した制限を超えたか、モデルのコンテキスト最大長(Token上限)に達したため、コンテンツが途中で切り捨てられたことを意味します。

Q: この API は関数呼び出し(Function Calling)をサポートしていますか? A: はい、サポートしています。tools パラメータで関数のプロトタイプを定義すると、モデルは必要に応じて通常の content の代わりに choices[0].message 内に tool_calls を返します。