OpenAI Decisions API は、テキスト・画像・JSON を読ませて「確率」「選択肢」「点数」のどれかを型どおりに返させるための API です。文章を生成させるのではなく、「この問い合わせはどの部署か」「この写真に破損はあるか」「この不具合の深刻度は何段階目か」といった判定だけを返します。2026年10月6日にベータ公開、10月22日に一般提供(GA)になりました。
特徴は2つあります。公式ガイドによると、Responses API より約10倍速く答えを返し、料金は gpt-6-luna で入力100万トークンあたり0.10ドル・出力は無料です。問い合わせの振り分けや画像チェックのような「大量に、速く、安く、同じ形で判定したい」処理に向いています。この記事では、3種類の質問の使い分け、リクエストの形、料金の試算、Structured Outputs との違いを公式ドキュメントに沿って整理します。
Decisions API でできること:3種類の質問
リクエストには「質問(questions)」を並べ、質問ごとに型を選びます。公式ガイドが定める型は次の3つです。
型 | 何に使うか | 返ってくるもの |
|---|---|---|
predicate | 条件が成り立つかを確かめる(例:写真に目に見える破損があるか) | probability(0〜1の確率) |
choice | 順序のない選択肢から1つ選ぶ(例:担当部署) | choice(選んだ値)+各選択肢の確率・confidence |
score | 順序のある段階で採点する(例:不具合の深刻度)。段階は2〜10 | score(段階番号の確率加重平均)+各段階の確率・confidence |
score の段階番号は0から始まります。公式の例では「見た目だけ=0/回避策あり=1/完全に止まる=2」の3段階に対し、確率が0.1・0.7・0.2なら score は1.1になります。段階の間の値が出るので、「1を超えたら担当者へ回す」のような閾値を自分で決めて使います。
リクエストの形:model・input・questions の3つだけ
送り先は POST /v1/decisions で、中身は次の3項目です。対応モデルは現時点で gpt-6-luna だけです。
- model:評価するモデル(gpt-6-luna)
- input:全質問で共有する材料。文字列か、メッセージ・ツール呼び出し・ツール出力を順に並べた配列
- questions:質問の配列。各質問に type・name・instructions、choice なら choices、score なら levels を付ける
公式ガイドの choice の例は、「注文で二重に請求された」という問い合わせを billing/technical/shipping/other のどれに回すかを聞くものです。返ってくる answers の配列には、質問に付けた name がそのまま入って返るので、複数の質問を投げても答えを取り違えません。
入力に使えるもの・使えないもの
入力の種類 | 使える中身 |
|---|---|
ユーザーのメッセージ | テキスト・画像・JSON(input_json) |
developer/system メッセージ | テキストのみ(system は developer として扱われる) |
assistant メッセージ | 出力テキストか拒否 |
関数・ツールの出力 | テキストと画像(対応する呼び出しと call_id で対応づける) |
画像は base64 のデータURLか、公開されている http/https の URL で渡します。file_id は使えません。ファイル・音声・item の参照も非対応です。会話の履歴やツールの実行結果を丸ごと input に入れて、「このやり取りは返金対応が必要か」のように文脈ごと判定させることもできます。
1回で最大400問まで
1リクエストに入れられる質問は1〜400問です(ベータ中は200問まで)。同じ商品写真に「破損はあるか(predicate)」と「商品カテゴリはどれか(choice)」を同時に聞く、といった使い方ができます。一方で、前の答えによって次の質問が変わるものは別のリクエストに分けるよう公式ガイドは書いています(例:まず破損を確かめ、破損ありなら修理区分を聞く)。
料金:入力100万トークン0.10ドル、出力は課金なし
公式ガイドの料金欄によると、gpt-6-luna で Decisions を使う場合の料金は次のとおりです。
- キャッシュされない入力:100万トークンあたり0.10ドル
- キャッシュに当たった入力:割引単価(gpt-6-luna の通常のキャッシュ単価と同じ)。キャッシュ書き込みは課金される
- 出力トークン:課金なし
- 地域処理の割増や、長い入力の倍率は別途かかる
試算の式は単純で、月の費用(ドル)= 1件あたりの入力トークン × 件数 ÷ 100万 × 0.10 です。たとえば1件あたり入力600トークン(問い合わせ本文と質問文を合わせた量と仮定)で月1万件を振り分けると、600×10,000÷1,000,000×0.10=月0.6ドルです。出力に課金がないので、選択肢の確率や confidence まで受け取っても費用は増えません。同じ社内マニュアルを毎回 input に入れる使い方なら、後述のキャッシュでさらに下がります。
プロンプトキャッシュの条件
共有の input は既定でキャッシュの対象で、input の末尾に自動で区切りが入ります。再利用できる先頭部分は1,024トークン以上必要で、質問(questions)の中身はこの数に含まれません。つまり「長い参照資料や見本画像を input に固定し、質問だけを差し替える」形にすると当たりやすくなります。キャッシュの効き具合は usage.input_tokens_details の cached_tokens(読み出し)と cache_write_tokens(書き込み)で確認できます。
Structured Outputs・function calling との使い分け
「JSON で答えを返させる」だけなら、これまでも Responses API の Structured Outputs でできました。公式ガイドは3つを次のように分けています。
欲しいもの | 使う機能 |
|---|---|
確率・選択・段階評価のどれか | Decisions API |
抽出した項目や説明文など、自分の JSON スキーマに沿ったオブジェクト | Responses API の Structured Outputs |
モデルにツール呼び出しと引数を出させる | function calling |
実務での線引きは、「答えが選択肢か数字で済むか」です。「この問い合わせは請求関係か」なら Decisions、「問い合わせから注文番号と金額を抜き出す」なら Structured Outputs です。Decisions は答えを返すだけで、実際の処理(担当者への転送や返金)はアプリ側が答えを見て実行する設計になっています。
向いている使い方と、閾値の決め方
公式ガイドの例から、業務で置き換えやすいものを並べます。
- 問い合わせの振り分け:部署・緊急度を choice と score で同時に判定
- 商品写真の検品:目に見える破損の有無を predicate の確率で判定し、一定以上を人の確認へ
- 見本との照合:質問ごとに別の画像を instructions に入れ、共有の見本画像と同じ商品の色違いかを判定
- JSON の記録との突き合わせ:問い合わせ本文と注文データ(input_json)を並べて、返金対象かを判定
- 音声との連携:GPT-Live から Decisions を直接呼び、話している途中で判定させる(10月15日に追加)
注意したいのは、返ってくるのが「答え」ではなく「確率」だという点です。公式ガイドも、自社の正解ラベル付きの例で閾値を決め、誤検知と見逃しのどちらが高くつくかで線を引くよう書いています。たとえば検品なら「0.5以上は全部人が見る」、問い合わせなら「confidence が低いものだけ人が振り分ける」のように、人の確認と組み合わせる前提で設計するのが安全です。
問い合わせの自動振り分けや検品のような仕組みは、API を呼ぶ部分より「どこまでを AI に任せ、どこから人が見るか」の設計で成否が分かれます。私たちMihataは、こうした社内向けの判定・振り分けの仕組みを個別に作るお手伝いもしています。記事の途中で恐縮ですが、自社の業務に当てはめて考えたいときは、よろしければご覧ください。
関連する OpenAI API の変更
Decisions と同じ gpt-6-luna を通常の生成で使う場合の位置づけはGPT-6 Sol と Luna の違いに、10月20日に追加された長時間キャッシュの損益分岐はGPT-6 のプロンプトキャッシュにまとめています。エージェント型の処理を組むならOpenAI Agents API の概要も参照してください。
まとめ
- Decisions API は、テキスト・画像・JSON から「確率(predicate)」「選択(choice)」「段階評価(score)」を返す判定専用の API。10月22日に一般提供
- 対応モデルは gpt-6-luna のみ。Responses API より約10倍速い
- 料金は入力100万トークン0.10ドル、出力は課金なし。共有 input は1,024トークン以上でキャッシュが効く
- 1リクエスト1〜400問。前の答えに依存する質問は別リクエストに分ける
- 答えは確率なので、自社の例で閾値を決め、人の確認と組み合わせる
よくある質問
OpenAI Decisions APIとは何ですか?
テキスト・画像・JSONを評価して、型の決まった答えを返すOpenAIのAPIです。条件が成り立つ確率を返すpredicate、決められた選択肢から1つを選ぶchoice、順序のある段階で採点するscoreの3種類の質問が使えます。2026年10月6日にベータ公開され、10月22日に一般提供になりました。
料金はいくらですか?
gpt-6-lunaで使う場合、キャッシュされない入力が100万トークンあたり0.10ドルで、出力トークンには課金されません。共有の入力がキャッシュに当たれば割引の入力単価になり、キャッシュ書き込みは課金されます。
どのモデルで使えますか?
公式ガイドでは、現在対応しているモデルはgpt-6-lunaだけと書かれています。
1回のリクエストで何問まで聞けますか?
1〜400問です。パブリックベータ中は200問までで、一般提供で400問に増えました。前の答えに応じて次の質問を変える場合は、別のリクエストに分けるよう公式ガイドは案内しています。
Structured Outputsとはどう使い分けますか?
確率・選択・採点のどれかが欲しいならDecisions、抽出した項目や説明文など自分のJSONスキーマに沿ったオブジェクトを生成したいならResponses APIのStructured Outputs、ツール呼び出しをさせたいならfunction callingを使う、と公式ガイドが整理しています。