/v1/chat/completions を使用します。
ストリーミング
stream: true を設定すると Server-Sent Events で結果を受け取れます。各イベントは OpenAI の
chat.completion.chunk であり、ストリームは data: [DONE] で終了します。
パラメータ
OpenAI 標準のパラメータに対応しています:temperature、top_p、max_tokens、stop、n、
frequency_penalty、presence_penalty、seed、response_format、tools、
tool_choice、logprobs、top_logprobs、logit_bias、user、stream。
推論強度
推論強度を設定できるモデルでは、トップレベルのreasoning_effort を使用します。Responses 形式の reasoning.effort も受け付けます。両方を指定する場合は同じ値にしてください。不一致は 400 になります。
GET /v1/models の capability_metadata.reasoning に公開されているため、クライアントは表をハードコードせずにモデルを設定できます。
max_completion_tokens、max_output_tokens およびネイティブの対応フィールドは、推論と最終回答の合計トークン数を制限します。effort 自体は出力トークン上限ではありません。予算を使い切ると(Chat Completions の finish_reason: "length")、最終回答が不完全または空になる場合があります。
Kimi K3 互換ルール
kimi-k3 は同じ OpenAI 互換エンドポイントを使用しますが、ネイティブの仕様にモデル固有のルールがあります:
- K3 は常に思考し、無効化できません。
low、high、maxを受け付け、既定値はmaxです。強度を下げるほど、推論の深さと引き換えにレイテンシーが短くなります。K2.x のthinkingオブジェクトは、思考を有効にする互換エイリアスとしてのみ受け付けられます。 max_completion_tokensの使用を推奨します。APIAny は非推奨のmax_tokensも受け付けますが、Kimi K3 ではmax_completion_tokensを使用します。上限を指定しない場合はモデルの既定値が使用されます。明示できる上限は最大 1,048,576 トークンです。- K3 のサンプリング設定は固定です。APIAny は K3 に限り
temperature、top_p、frequency_penalty、presence_penaltyを取り除きます。nは1である必要があります。 reasoning_contentは思考過程、contentは最終回答です。ストリーミングでは両者が別々の delta として返されます。思考過程を最終回答に統合しないでください。- マルチターンおよびツール呼び出しのリクエストでは、
reasoning_contentとtool_callsを含む assistant メッセージ全体を再送してください。 - 最後の assistant メッセージでは
partial: trueを使用できます。contentを持たない system メッセージにtoolsを含めると、K3 のツールを動的に読み込めます。 - K3 の画像/動画コンテンツブロックには、Base64 の
data:URL またはms://ファイル ID を使用する必要があります。公開 HTTP メディア URL はモデルリクエストの送信前に拒否されます。
finish_reason が length の場合、出力予算を使い切っています。レスポンスは引き続き OpenAI 互換ですが、最終回答が欠落または不完全になる場合があります。再試行する前に max_completion_tokens を増やすか、入力を減らしてください。
補足
modelは APIAny.AI の公開モデル ID です。- token usage データが利用できる場合、プラットフォームは OpenAI スタイルの
usageオブジェクトに正規化します。
GPT-6 の出力とストリームの終了
gpt-6-astra では、認識可能な先頭の思考ブロックを最終回答から分離します。回答は content / output_text、思考内容は独立した reasoning フィールドまたは summary イベントから読み取ってください。明示的なタグの例や曖昧な記述は保持されます。推論強度や出力 Token 上限は変更しません。
ストリームの HTTP 200 だけでは生成成功を意味しません。エラーイベントを処理し、途中までの回答は未完了と表示してください。Chat では [DONE] 前の最後の usage を読み取り、Responses では response.completed、response.incomplete、response.failed / error を区別してください。
GPT-6 Chat の [DONE] はストリームの終了を示しますが、先行するエラーを取り消したり、回答の完全性を保証したりするものではありません。finish_reason も確認してください。length は出力上限への到達、content_filter はコンテンツのフィルタリングを意味し、どちらも stop に書き換えられません。完了前に接続が閉じた場合やエラーイベントを受信した場合は、部分的なテキストを完全な回答として扱わないでください。