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

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

このエンドポイントは、指定されたプロンプト(Prompt)に対して、モデルが1つ以上の予測された補完結果を返します。会話履歴に基づいてテキストを生成し、生成プロセスのランダム性、長さ、フォーマットを制御できます。

  • インターフェース名:モデル一覧 / チャット補完 (List Models / Chat Completions)
  • リクエストメソッド:GET (注:提供されたデータ定義に基づく)
  • リクエストURL:https://api.codingplanx.ai/v1/models
  • ステータス:リリース済み (Released)

1. リクエストパラメータ

1.1 ヘッダーパラメータ

パラメータ名必須データ型サンプル値説明
Content-TypeはいStringapplication/jsonリクエストボディのフォーマット
AcceptはいStringapplication/jsonレスポンスのフォーマット
AuthorizationいいえStringBearer {{YOUR_API_KEY}}認証用の API キー

1.2 ボディパラメータ

元の定義は GET ですが、ビジネスロジックに基づき、以下のパラメータは通常 JSON ボディを通じて渡されます。

パラメータ名データ型必須デフォルト値説明
modelstringはい-使用するモデル ID。例:gpt-3.5-turbo。
messagesarrayはい-これまでの会話に含まれるメッセージのリスト。各メッセージには role と content が含まれます。
temperaturenumberいいえ1サンプリング温度。0 から 2 の間の値。値が高いほど出力がランダムになります。
top_pnumberいいえ1ヌクレアスサンプリング。0.1 は上位 10% の確率質量を構成するトークンのみを考慮することを意味します。
nintegerいいえ1各入力に対して生成するチャット補完の選択肢の数。
streambooleanいいえfalseストリーミング出力するかどうか。true に設定すると、メッセージの差分(SSE)が送信されます。
stopstring/arrayいいえnullストップシーケンス。モデルがこれらの文字に遭遇すると生成を停止します。
max_tokensintegerいいえinf生成する最大トークン(Tokens)数。
presence_penaltynumberいいえ0-2.0 から 2.0 の間の数値。正の値を指定すると、モデルが新しいトピックについて話す可能性が高くなります。
frequency_penaltynumberいいえ0-2.0 から 2.0 の間の数値。正の値を指定すると、モデルが同じセリフを繰り返す可能性が低くなります。
logit_biasobjectいいえnull指定したトークンが補完結果に現れる確率を変更します。
userstringいいえ-エンドユーザーを表す一意の識別子。不正利用の監視に役立ちます。
response_formatobjectいいえ-モデルの出力フォーマットを指定します。例:{ "type": "json_object" } で JSON モードを有効化。
toolsarrayいいえ-モデルが呼び出せるツール(関数など)のリスト。
tool_choiceobjectいいえautoモデルがどの関数を呼び出すかを制御します。

2. レスポンスパラメータ

パラメータ名データ型説明
idstringこのリクエストの一意の識別子。
objectstringオブジェクトタイプ。通常は chat.completion。
createdintegerリクエストが作成されたタイムスタンプ(秒)。
choicesarray補完結果を含むリスト。
├─ indexintegerリスト内におけるこの選択肢のインデックス。
├─ messageobjectモデルが生成した具体的なメッセージ。
│ ├─ rolestringロール。通常は assistant。
│ └─ contentstringメッセージの本文。
└─ finish_reasonstring停止理由。stop (正常停止) や length (最大長に到達) など。
usageobjectトークン(Token)の使用状況の統計。
├─ prompt_tokensinteger入力で消費されたトークン数。
├─ completion_tokensinteger出力で生成されたトークン数。
└─ total_tokensinteger消費された合計トークン数。

3. リクエスト例

成功したリクエストの例

curl --location --request GET 'https://api.codingplanx.ai/v1/models' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
  "model": "gpt-3.5-turbo",
  "messages": [
    {
      "role": "user",
      "content": "Hello there, how may I assist you today?"
    }
  ],
  "temperature": 1,
  "top_p": 1,
  "n": 1,
  "stream": false,
  "user": "user-1234"
}'

成功したレスポンスの例

{
    "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
    }
}

4. FAQ (よくある質問)

Q: ドキュメントには GET メソッドと記載されていますが、POST リクエストのように見えます。なぜですか? A: 標準的な OpenAI の仕様では、補完の作成には通常 POST メソッドが使用されます。ただし、ご提供いただいたメタデータによると、このエンドポイントは GET として定義されています。呼び出しの際は、サーバー側の実際の構成を必ず確認してください。もし GET が機能しない場合は、POST を試してみてください。

Q: temperature と top_p はどのように設定すべきですか? A: どちらか一方のみを調整することをお勧めします。より正確で決定論的な回答が必要な場合は、temperature を下げてください(例: 0.2)。より多様で創造的な回答が必要な場合は、値を上げることができます。

Q: JSON モードを有効にするにはどうすればよいですか? A: response_format で { "type": "json_object" } を設定し、さらに messages の中(System または User メッセージ)で、モデルに対して JSON フォーマットを出力するよう明示的に指示する必要があります。そうしないと、モデルが解析エラーを起こしたり、無限に空白を生成したりする可能性があります。

Q: presence_penalty と frequency_penalty とは何ですか? A:

  • presence_penalty(存在ペナルティ): すでに出現したトピックに対するペナルティを重視し、モデルが新しい話題について話すことを促します。
  • frequency_penalty(頻度ペナルティ): 繰り返し出現する語彙に対するペナルティを重視し、モデルが短時間で同じ文を繰り返すのを防ぎます。

Q: ストリーミング出力 (stream: true) はどのように機能しますか? A: ストリーミングを有効にすると、API は Server-Sent Events (SSE) を通じてデータを1文字ずつ返します。各データブロックは data: で始まる JSON 文字列であり、最後に data: [DONE] で終了します。これは長文生成時のリアルタイム表示に非常に役立ちます。