チャット画像生成の作成(非ストリーミング)
このエンドポイントは、モデルにプロンプト(テキストまたは画像を含む)を送信し、モデルから1つ以上の生成された応答を返すために使用されます。このインターフェースは、画像処理、画像の最適化、画像認識による創作など、マルチモーダル入力をサポートするモデル(例:gpt-4o-image-vip)に特に適しています。
エンドポイント情報
- API URL:
https://api.codingplanx.ai/v1/chat/completions - リクエストメソッド:
POST - Content-Type:
application/json - レスポンスタイプ:
application/json
リクエストヘッダー (Headers)
| パラメータ名 | 必須 | タイプ | サンプル値 | 説明 |
|---|---|---|---|---|
| Content-Type | はい | String | application/json | リクエストボディのフォーマット |
| Accept | はい | String | application/json | 期待されるレスポンスフォーマット |
| Authorization | いいえ | String | Bearer {{YOUR_API_KEY}} | 認証用のAPIキー |
リクエストパラメータ (Body)
リクエストボディはJSONオブジェクトであり、以下のフィールドを含みます:
| パラメータ名 | タイプ | 必須 | デフォルト値 | 説明 |
|---|---|---|---|---|
| model | String | はい | - | 使用するモデルID。例:gpt-4o-image-vip。 |
| messages | Array | はい | - | 対話メッセージのリスト。各オブジェクトは role (user/assistant/system) と content を含みます。content は文字列、またはタイプと画像URLを含むオブジェクトの配列を指定できます。 |
| tools | Array | はい | - | モデルが呼び出せるツールのリスト。現在は関数(function)のみをサポートしています。 |
| tool_choice | Object | はい | none | モデルがどの関数を呼び出すかを制御します。none は呼び出しなし、auto は自動選択。 |
| temperature | Number | いいえ | 1 | サンプリング温度(0〜2)。値が高いほどランダムになり、低いほど集中的(決定的)になります。 |
| top_p | Number | いいえ | 1 | ヌクレアスサンプリング(確率的サンプリング)。確率質量のトップPのトークンのみを考慮します。temperature との併用は推奨されず、どちらか一方を調整してください。 |
| n | Integer | いいえ | 1 | 各入力に対して生成するチャット補完の選択肢の数。 |
| stream | Boolean | いいえ | false | ストリーミング転送を行うかどうか。現在のインターフェースは非ストリーミングとして定義されています。 |
| max_tokens | Integer | いいえ | inf | 生成するトークンの最大数。 |
| stop | String/Array | いいえ | null | ストップシーケンス。APIはこれ以上のトークン生成を停止します。 |
| presence_penalty | Number | いいえ | 0 | -2.0〜2.0の間の数値。既に出現したトークンにペナルティを与え、新しいトピックについて話す可能性を高めます。 |
| frequency_penalty | Number | いいえ | 0 | -2.0〜2.0の間の数値。頻度に基づいて繰り返しのトークンにペナルティを与えます。 |
| response_format | Object | いいえ | - | 出力フォーマットを指定します。例:{ "type": "json_object" } でJSONモードを有効化します。 |
| user | String | いいえ | - | エンドユーザーを表す一意の識別子。悪用の監視に使用されます。 |
| seen | Integer | いいえ | - | (ベータ版)決定論的なサンプリングを可能な限り実現するためにシード値 (seed) を指定します。 |
レスポンスパラメータ
| パラメータ名 | タイプ | 説明 |
|---|---|---|
| id | String | このリクエストの一意の識別子。 |
| object | String | オブジェクトタイプ。chat.completion で固定。 |
| created | Integer | Unixタイムスタンプ(秒)。 |
| choices | Array | 生成されたレスポンスの選択肢を含みます。 |
| └ index | Integer | 選択肢のインデックス。 |
| └ message | Object | role と content を含むメッセージオブジェクト。 |
| └ finish_reason | String | 停止理由(例:stop、length)。 |
| usage | Object | トークンの使用状況。 |
| └ prompt_tokens | Integer | プロンプトで消費されたトークン数。 |
| └ completion_tokens | Integer | 補完(生成)で消費されたトークン数。 |
| └ total_tokens | Integer | 総消費トークン数。 |
リクエスト / レスポンス例
リクエスト例(画像最適化 / 創作)
{
"model": "gpt-4o-image-vip",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "この画像を綺麗に加工して、「我愛中国」という4文字を追加してください。サイズは[4:3]でお願いします。"},
{
"type": "image_url",
"image_url": {
"url": "https://lsky.zhongzhuan.chat/i/2024/10/17/6711068a14527.png"
}
}
]
}
],
"tools": [],
"tool_choice": "none"
}
レスポンス例
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "承知いたしました。画像の処理が完了しました。以下の生成結果をご確認ください:[画像リンク/説明]"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
FAQ(よくある質問)
Q: response_format: { "type": "json_object" } を使用するとリクエストがエラーになるのはなぜですか?
A: JSONモードを使用する場合、messages 内でモデルに対してJSONを生成するよう明確に指示する必要があります(例:システムプロンプトに「JSON形式で回答してください」と追加する)。そうしないと、モデルが非JSONコンテンツを出力しようとして無限ループやエラーを引き起こす可能性があります。
Q: 毎回リクエストで一貫した生成結果を保証するにはどうすればよいですか?
A: AIモデルにはランダム性がありますが、seen (seed) パラメータを設定し、temperature を 0 に保つことで改善できます。また、バックエンド環境の変化を監視するために、レスポンス内の system_fingerprint フィールドに注目してください。
Q: max_tokens はどのくらいに設定するのが適切ですか?
A: ユースケースによって異なります。短い画像の説明であれば 100〜300 で十分です。詳細な分析や長文の作成が必要な場合は、1000 以上に設定することをお勧めします。ただし、入力トークン(画像を含む)と出力トークンの合計がモデルのコンテキスト制限を超えないよう注意してください。
Q: 画像入力はどのように処理すればよいですか?
A: messages の content 内で type: "image_url" を使用します。現在は、パブリックネットワークからアクセス可能なHTTPS画像リンクを使用することを推奨しています。
Q: tools と tool_choice は必須ですか?
A: このエンドポイントの定義上、これら2つのフィールドは必須としてマークされています。特定のツールを呼び出す必要がない場合は、tools を空の配列 [] に設定し、tool_choice を "none" に設定してください。