openai/o3 の API リファレンスです。
クイックスタート
Comfy ワークスペース でキーを作成し、COMFY_API_KEY としてエクスポートします。Python と TypeScript のスニペットは Comfy SDK(pip install comfy-sdk と npm install @comfyorg/sdk)を使用しています。cURL のスニペットは、生の HTTP で同じ呼び出しを行うものです。
モデル ID: openai/o3
エンドポイント: POST https://api.comfy.org/v2/models/openai/o3
- 結果を待つ
- キューに送信して後で取得
同じボディを
POST https://api.comfy.org/v2/models/openai/o3/requests に送信します。Router は実行が受け付けられ次第 201 と request_id を返し、結果は準備が整った時点で、このプロセスからでも別のプロセスからでも取得できます。ステータス、キャンセル、結果の取得の詳細は キュー配信 を参照してください。スキーマ
入力
string[]
モデルのレスポンスに含める追加の出力データ。
string | object[]
必須
モデルへのテキスト、画像、ファイル入力。レスポンスの生成に使用される。このコントラクトのうち Router が補えない唯一のフィールドであり、下記の
required の唯一の項目でもある。string
モデルのコンテキストの最初の項目として、システム(または開発者)メッセージを挿入する。
integer
レスポンスのために生成されるトークン数の上限。可視出力トークンと推論トークンを含む。推論 ID ではこの上限は隠れた推論トークンと共有されるため、小さな値だと可視テキストが現れる前に予算全体を消費してしまう。これが、チャットのスモークケースが 16 を送るのに対し、推論のスモークケースが 1024 を送る理由である。範囲:
1 から …string
OpenAI モデル識別子。Comfy Router ではこのフィールドは任意で、Router が
{model} パスセグメントから埋める。明示的な null も同じように置き換えられる。パスと矛盾する値を送ると拒否される。boolean
モデルがツール呼び出しを並列に実行できるようにするかどうか。
string
マルチターン会話で使用する、前のレスポンスの ID。
object
推論ティア専用。推論モデルの設定。例:
{"effort": "medium"}。そのまま転送される。受け付けられるキーについては OpenAI の推論ガイドを参照。チャットティアの ID はこれを無視する。boolean
OpenAI が生成したレスポンスを、後で取得できるように保存するかどうか。
boolean
送信した呼び出し元が拒否されないように宣言されているが、このサーフェスでは無効である。Router はディスパッチ前にこれを
false に確定する。Router は text/event-stream を中継するのではなくプロバイダーのレスポンスを取得するためであり、それはデコードできないので、ストリーミングされた生成は OpenAI に課金され誰にも計量されないことになる。Comfy のどのサーフェスもストリームを配信しない。v1 の POST /proxy/openai/v1/responses イングレスは stream: true を 400 で拒否し、リクエストを上流に転送することはない。したがって、どちらのサーフェスでもこのフィールドを省略するか false を送り、完了したレスポンスを 1 つの JSON ボディとして読むこと。number
サンプリング温度。チャットティア専用。o シリーズの推論 ID(
o1、o1-pro、o3、o4-mini)は OpenAI 側でこのパラメータを拒否する。Router はそれらに対してこれを拒否しない(2 つのティアが 1 つのスキーマを共有する理由については、このコンポーネントの注記を参照)。そのため、これを送る推論呼び出しには OpenAI 自身のエラーが返される。範囲: 0 から 2object
出力フォーマットの設定。例: Structured Outputs 用の
{"format": {"type": "json_schema", ...}}。そのまま転送される。string | object
モデルが使用するツールをどのように選択するか。文字列のモードか、ツールを指定するオブジェクトのいずれか。
object[]
モデルが呼び出せるツール定義。Router はツールの分類を絞り込まない。受け付けられる形については OpenAI の Responses API リファレンスを参照。
number
ニュークリアスサンプリングのカットオフ。チャットティア専用で、
temperature と同じ条件。範囲: 0 から 1string
コンテキストがモデルのウィンドウを超えたときの切り捨て戦略。上記の 3 つの語彙とは異なり、ここの enum は実際に適用される。この 2 つの値が OpenAI の文書化している完全な集合であり、それが増えていないためである。明示的な
null も、上記のフィールドと同じ条件で受け付けられる。取り得る値: auto、disabledobject
トークン使用量のエンベロープ。v1 オペレーションがリクエストボディでこれを宣言しているため、このコントラクトに存在する。OpenAI はこれをレスポンスで埋めるので、呼び出し元が送る理由はない。
GET /v2/models/openai/o3/openapi.json で提供するスキーマから生成されたもの。これは、リクエストがプロバイダーに到達する前に Router が呼び出しを検証する際に使うのと同じドキュメントである。
出力
string
システム (または developer) メッセージをモデルのコンテキストの最初の項目として挿入します。
previous_response_id と併用する場合、前のレスポンスの instructions は次のレスポンスに引き継がれません。これにより、新しいレスポンスでシステム (または developer) メッセージを簡単に差し替えられます。integer
レスポンスで生成できるトークン数の上限。可視出力トークンと reasoning tokens が含まれます。
string
レスポンスの生成に使用されたモデル
number
デフォルト:"1"
レスポンスのランダム性を制御します範囲:
0 から 2number
デフォルト:"1"
nucleus サンプリングによるレスポンスの多様性を制御します範囲:
0 から 1string
デフォルト:"\"disabled\""
モデルレスポンスで使用する切り詰め戦略。
-
auto: このレスポンスと以前のレスポンスのコンテキストが モデルのコンテキストウィンドウサイズを超える場合、モデルは会話の 途中の入力項目を削除してコンテキストウィンドウに収まるように レスポンスを切り詰めます。 -
disabled(デフォルト): モデルレスポンスがモデルのコンテキストウィンドウ サイズを超える場合、リクエストは 400 エラーで失敗します。 指定可能な値:auto,disabled
string
モデルへの前のレスポンスの一意の ID。これを使用して
マルチターンの会話を作成します。詳細は
conversation state を参照してください。
object
o シリーズモデルのみreasoning models の設定オプション。
string
後続のターンでどの reasoning 項目をモデルに返すかを制御します。例:
auto、current_turn、all_turns。string
デフォルト:"\"medium\""
o シリーズモデルのみreasoning models の
推論にかける労力を制約します。
現在サポートされている値は
low、medium、high です。reasoning effort を下げると、
レスポンスが速くなり、レスポンス内で reasoning に使用される
トークン数が減る場合があります。指定可能な値: low, medium, highstring
非推奨: 代わりに
summary を使用してください。モデルが実行した reasoning の要約。これは
デバッグやモデルの reasoning プロセスの理解に
役立ちます。auto、concise、detailed のいずれかです。指定可能な値: auto, concise, detailedstring
レスポンスに使用される reasoning モード。
string
モデルが実行した reasoning の要約。これは
デバッグやモデルの reasoning プロセスの理解に
役立ちます。
auto、concise、detailed のいずれかです。指定可能な値: auto, concise, detailedobject
object
モデルが出力しなければならないフォーマットを指定するオブジェクト。
{ "type": "json_schema" } を設定すると Structured Outputs が有効になり、
モデルが指定した JSON schema に一致することが保証されます。詳細は
Structured Outputs guide を参照してください。デフォルトのフォーマットは { "type": "text" } で、追加オプションはありません。gpt-4o 以降のモデルには推奨されません:{ "type": "json_object" } に設定すると古い JSON mode が有効になり、
モデルが生成するメッセージが有効な JSON であることが保証されます。サポートしている
モデルでは json_schema の使用が推奨されます。string
モデルレスポンスの冗長性を制約します。
low、medium、high のいずれかです。`none`, `auto`, `required` | object
レスポンスを生成するときにモデルがどのツール (または複数のツール) を
使用するかを選択する方法。モデルが呼び出せるツールを指定する方法は
tools パラメータを参照してください。object[]
boolean
モデルレスポンスをバックグラウンドで実行するかどうか。
object
レスポンスの課金情報。
string
レスポンスの支払いを担当する当事者。
number
この Response が完了したときの Unix タイムスタンプ (秒)。ステータスが
completed の場合にのみ存在します。number
この Response が作成されたときの Unix タイムスタンプ (秒)。
object
モデルが Response の生成に失敗したときに返されるエラーオブジェクト。
string
必須
レスポンスのエラーコード。可能な値:
server_error、rate_limit_exceeded、invalid_prompt、vector_store_timeout、invalid_image、invalid_image_format、invalid_base64_image、invalid_image_url、image_too_large、image_too_small、image_parse_error、image_content_policy_violation、invalid_image_mode、image_file_too_large、unsupported_image_media_type、empty_image_file、failed_to_download_image、image_file_not_foundstring
必須
エラーを人間が読める形式で説明したもの。
number
これまでのテキスト内での出現頻度に基づいて、新しいトークンにペナルティを与えます。
string
この Response の一意の識別子。
object
レスポンスが不完全である理由に関する詳細。
string
レスポンスが不完全である理由。指定可能な値:
max_output_tokens, content_filterinteger
1 つのレスポンスで処理できる、組み込みツールへの呼び出し総数の上限。
object
レスポンスに付加できるキーと値のペアの集合。
object
モデレーション済みの完了が要求された場合の、レスポンスの入力と出力に対するモデレーション結果。
string
このリソースのオブジェクト型。常に
response に設定されます。指定可能な値: responseobject[]
モデルによって生成されたコンテンツ項目の配列。
output配列内の項目の長さと順序は、モデルのレスポンスによって異なります。output配列の最初の項目にアクセスし、それがモデルによって生成されたコンテンツを含むassistantメッセージであると仮定するのではなく、SDK でサポートされている場合はoutput_textプロパティの使用を検討してください。
string
SDK 専用の便利なプロパティで、
output 配列内のすべての output_text 項目からの集約されたテキスト出力を、存在する場合に含みます。
Python SDK と JavaScript SDK でサポートされています。boolean
デフォルト:"true"
モデルがツール呼び出しを並列で実行することを許可するかどうか。
number
これまでにテキスト内に出現しているかどうかに基づいて、新しいトークンにペナルティを与えます。
string
類似したリクエストのレスポンスをキャッシュしてキャッシュヒット率を最適化するために OpenAI が使用します。
user フィールドを置き換えます。string
プロンプトキャッシュの保持ポリシー(例:
in_memory または 24h)。string
OpenAI の利用ポリシーに違反している可能性のあるアプリケーションのユーザーを検出するために使用される安定した識別子。
string
リクエストの処理に使用される処理ティア(例:
auto、default、flex、scale、priority)。string
レスポンス生成のステータス。
completed、failed、in_progress、cancelled、queued、incomplete のいずれか。指定可能な値: completed, failed, in_progress, cancelled, queued, incompleteboolean
レスポンスが後で API 経由で取得できるように保存されるかどうか。
object
組み込みツール別に分類されたトークンとリクエストの使用量。
object
画像生成ツールのトークン使用量。
integer
object
integer
integer
integer
object
integer
integer
integer
object
Google/検索ツールの使用量。
integer
integer
各トークン位置で返す、最も可能性の高いトークンの最大数。それぞれに対数確率が関連付けられます。
object
入力トークン、出力トークン、出力トークンの内訳、使用された合計トークンを含むトークン使用量の詳細を表します。
integer
必須
入力トークンの数。
object
必須
入力トークンの詳細な内訳。
integer
キャッシュに書き込まれた入力トークンの数。
integer
必須
キャッシュから取得されたトークン数です。
プロンプトキャッシュの詳細。
integer
必須
出力トークン数です。
object
必須
出力トークンの詳細な内訳です。
integer
必須
推論トークン数です。
integer
必須
使用されたトークンの合計数です。
string
エンドユーザーを表す非推奨の識別子です。
safety_identifier および prompt_cache_key に置き換えられました。例
入力
出力
出荷前の確認
SDK はIdempotency-Key を生成し、自動リトライで再利用します。手動リトライでは元のキーを再利用してください。Router は最大 10 分間接続を保持できます。
リクエストが失敗すると、Router は理由を説明する X-Comfy-Error-Type レスポンスヘッダーを送信します。422 は、プロバイダーを呼び出す前に Router が入力を拒否したことを意味し、413 はリクエスト本文が Router の受け入れ可能なサイズを超えていたことを意味します。生成されたアセットは 結果 URL の有効期限 があるため、早めにダウンロードしてください。
上記のフィールド説明に記載されているサイズ制限は、プロバイダーの仕様から引用した、そのフィールドに対するプロバイダー自身の上限です。Router はリクエスト本文全体に対して別の上限を適用し、base64 エンコードされたメディアもこれにカウントされます。リクエスト本文のサイズ を参照してください。
このページは、Comfy Router 経由で呼び出す 1 つのパートナーモデルについて説明しています。同じ comfy-sdk / @comfyorg/sdk パッケージには、Comfy Cloud 上で ComfyUI のワークフローグラフ全体を実行するための 2 つ目のクライアントも含まれています: Comfy(api_key=...) / new Comfy({ apiKey })、および client.workflows、client.assets、client.jobs。Comfy SDKs を参照してください。
ヘッダー
認証、冪等性、リクエスト ID、エラー分類、リトライ間隔、支出上限。
Router API の利用
モデルの検出、バリデーションエラー、リトライ、課金。
制限事項
Router が現在対応していないことと、代替手段。