
2026/10/07 5:57
Decisions API が公開ベータ版を開始しました
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Decisions API は、テキストまたは画像の評価において Responses API より 10 倍の高速化を実現し、gpt-6-luna モデルを専有して動作する専用 POST /v1/decisions エンドポイントを通じて型付けされた結果を返します。現在公開ベータ版で提供中であり、General Availability は近日を予定しています。対応する具体的な回答タイプは 3 つあり、predicates(条件の確率)、choices(固定セットからの選択)、scores(ルーブリック評価)です。機能的には、API は単一のリクエスト内での独立した質問間で入力共有を可能にし、ワークフローを簡略化する一方で、依存関係のある決断は別々の順序実行呼び出しによって取り扱う必要があります。リクエストではテキスト入力またはインライン base64 エンコードされた画像を受け付けるが、ホスト URL および file_id 入力はサポートされていません。コスト効率の向上は、入力トークンのみに対して課金される(100 万トークンあたり 0.1 ドル)モデル採用と出力トークン料金の非課金化を通じて達成されます。また、HIPAA 準拠を米国、欧州、スイスデータセンターで確保するためのゼロデータ保持ポリシーも備わっています。開発者は、偽陽性と偽陰性の間のトレードオフに基づいてルーティング閾値を設定するためにラベル付けされた例を使用することで、コストと精度の最適化が可能です。これにより、条件チェック、固定選択、詳細な評価に対する高速かつ自動化された決定が最小の遅延で可能になります。
本文
決断 API (Decisions API) 概要と活用ガイド
1. API の概要と特徴
決断 API は、テキスト、画像、あるいはその両方を評価し、レスポンス API に比べて 10 倍高速 でタイプ付けされた回答を返すための専用 API です。
主な機能
- 確率取得: 条件が真である確率を算出
- 選択: 与えられた固定集合からの最適な選択肢を選定
- スコアリング: 基準への得点やレベル評価を行う
- 活用シーン:
- コンテンツの分類
- リクエストのルーティング
- アプリケーション内の作業優先順位の決定
現在のステータス
- プレイグラウンド利用で事前実験が可能(コード書写前)
- 一般ベータ版(GA: 一般公開は来週予想)
- サポートモデル:
のみgpt-6-luna - 専用エンドポイント:
(POST リクエスト)/v1/decisions
2. リクエスト構造
リクエストは以下の 3 つのフィールド で構成されます。
フィールド定義
| フィールド名 | 説明 | 備考 |
|---|---|---|
| 評価を行うモデル | 現在は のみサポート |
| 質問に共有する証拠情報 | テキスト文字列 または テキスト + イメージを含むメッセージ |
| 評価対象となる質問群 | 各質問のタイプ、指示、許可される選択肢やスコアレベルを定義 |
レスポンス構造
配列で回答が格納されます。answers- 各質問には一意の名前 (
) が与えられ、レスポンスでもその名前で回答が識別可能です。name
3. 質問タイプの選択
| タイプ | 使用目的 | メインの出力結果 |
|---|---|---|
| 状態の確認(例:目に見える損傷の有無、文章の関連性など) | : 条件が真である確率 (0 〜 1) |
| 単一の選択肢選択(例:部門、カテゴリなど) | : 供給された値の一つ: オプションごとの確率分布 |
| 順序付けられたレベルの評価(例:問題の深刻さなど) | : レベルインデックスの確率加重平均値 |
タイプ選定のヒント
- 離散的なカテゴリ(順序なし、例:部門) →
を使用choice - 順序のあるレベル(例:深刻度 1〜5 など) →
を使用score - Yes/No の判定 →
を使用predicate
注意点:
とchoiceはどちらも離散的な選択肢に関する確率を返します。一方、独自の JSON スキーマや抽出フィールドが必要な場合は Response API の Structured Outputs、ツール呼び出しが必要なら Function Calling を使用してください。score
4. 実装例とレスポンス解説
A. Predicate(述語)質問:画像の損傷検出
製品写真に「ひび」「破損」「凹み」があるかを確認する例です。画像は内联 base64 データ URL である必要があります(外部 URL や
file_id は非対応)。
リクエスト
curl https://api.openai.com/v1/decisions \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json" \ --data-binary @- <<JSON { "model": "gpt-6-luna", "input": [{ "role": "user", "content": [ {"type": "input_text", "text": "この写真の製品を点検してください。"}, {"type": "input_image", "image_url": "data:image/png;base64,$IMAGE_BASE64"} ] }], "questions": [{ "type": "predicate", "name": "visible_damage", "instructions": "製品に目に見える損傷(ひび、破損、凹みなど)がありますか?陰影やパッケージの損傷は無視してください。" }] } JSON
レスポンス示例
{ "answers": [ { "type": "predicate", "name": "visible_damage", "probability": 0.92 } ] }
: モデルが「条件が真である」と推定する確率(例:0.92 = 92%)。probability- 活用: この閾値に基づき、レビュー対象として写真をマークできます。
B. Choice(選択肢)質問:顧客苦情のルーティング
提供するオプションの中から単一の値を選択させる例です。各選択肢には
value と description を設定してください。
リクエスト
curl https://api.openai.com/v1/decisions \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-6-luna", "input": "注文が二重に請求されました。", "questions": [{ "type": "choice", "name": "department", "instructions": "この苦情を担当する部門はどれですか?", "choices": [ {"value": "billing", "description": "支払い、請求書、および返金に関する問題。"}, {"value": "technical", "description": "製品の使用方法に関する問題。"}, {"value": "shipping", "description": "配送および追跡に関する問題。"}, {"value": "other", "description": "これらのカテゴリ外のリクエスト。"} ] }] }'
レスポンス示例
{ "answers": [ { "type": "choice", "name": "department", "choice": "billing", "probabilities": [ {"value": "billing", "probability": 0.95}, {"value": "technical", "probability": 0.02}, {"value": "shipping", "probability": 0.01}, {"value": "other", "probability": 0.02} ], "confidence": 0.93 } ] }
: 選ばれた値(例:choice
)。"billing"
: 各オプションの確率分布。probabilities
: 回答への信頼度。confidence- ヒント: カテゴリーが全ての入力をカバーしない場合は、フォールバックオプション(例:
)を含めることを推奨します。"other"
C. Score(スコアリング)質問:問題の深刻さ評価
順序付けられたレベルに対する入力の評価を行います。低水準から高水準順に定義してください。
リクエスト
curl https://api.openai.com/v1/decisions \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-6-luna", "input": "Safari ではエクスポートが失敗しますが、Chrome では動作します。", "questions": [{ "type": "score", "name": "severity", "instructions": "この問題の深刻さはどれくらいですか?", "levels": [ {"label": "Cosmetic(装飾的な)", "description": "外観のみで機能性の損失はありません。"}, {"label": "Workaround available(代替手段がある)", "description": "タスクは失敗しますが、別の方法で実行可能です。"}, {"label": "Fully blocked(完全にブロックされている)", "description": "タスクが失敗し、代替手段がありません。"} ] }] }'
レスポンス示例
{ "answers": [ { "type": "score", "name": "severity", "score": 1.1, "probabilities": [ {"value": 0, "label": "Cosmetic(装飾的な)", "probability": 0.1}, {"value": 1, "label": "Workaround available(代替手段がある)", "probability": 0.7}, {"value": 2, "label": "Fully blocked(完全にブロックされている)", "probability": 0.2} ], "confidence": 0.55 } ] }
: レベルインデックス (0〜) の確率加重平均値。score- 例:レベル 0(10%), レベル 1(70%), レベル 2(20%) → スコア = $0 \times 0.1 + 1 \times 0.7 + 2 \times 0.2 = \mathbf{1.1}$
: 分布全体の信頼度。confidence- 活用: 単一カテゴリの選択ではなく、レベル全体にわたる分布の概要を知る際に使用します。
5. ベストプラクティス
- 複数の質問を 1 つのリクエストで実行: 同一
を共有しながら異なる質問(例:「損傷チェック」+「カテゴリ分類」)を行えます。各質問は異なるタイプを使用可能です。input - 依存関係のある判断は分割する: 以前の回答に依存する場合は別々のリクエストを送信してください。
- 例: まず「損傷の有無」を確認し、結果に基づいて「修理カテゴリが必要か」を判断するフローにする。
- 質問の記述は観測基準を中心に:
- 選択肢には明確な意味を持たせる。
- スコアレベルは隣接するレベルが明確な境界を持てるように定義する。
6. 回答の解釈と閾値設定
- Predicate: 「条件が真である」推定確率 (
) を返します。probability - Choice & Score: 確率分布 (
) と独立した信頼度 (probabilities
) を返します。confidence - 閾値の設定方法: アプリケーションのラベル付き例を学習させ、偽陽性や偽陰性のコストに基づいて最適な閾値を選択してください。
7. プライシングとコンプライアンス
コスト構造
- 基本単価: 入力トークンあたり 100 万文字につき $0.10。
- 課金対象: 入力トークンのみ。
- キャッシュ読み書き、出力トークン:無料。
- 追加料金:
- 地域ごとの処理プレミアム
- 長期コンテキスト入力の価格倍率
適用範囲:
エンドポイントにのみ適用されます。他リクエストでは該当モデルの通常価格体系が適用されます。/v1/decisions
セキュリティ・準拠
- ゼロデータ保持 (ZDR) のサポートあり。
- HIPAA 利用 を支援(適合する顧客向け)。
- データ所在・処理地域: 米国および欧州(EEA+スイス)でサポート。
8. まとめ:Live API との連携
決断 API は、Live API と組み合わせて以下のワークフローを構築できます。
- Live API で音声リクエストからアクションを選択。
- 結果をユーザーに報告する前に、Decisions API で文脈を理解・分類。
- ユーザーに対して適切な次のステップを案内する。