OpenAI Decisions APIとTypeSafeのJevは、同じ仕事をします。すなわち、入力と一連の質問を送信し、解析するテキストの代わりに確率付きの型付きの回答を受け取り、入力トークンのみに対して支払います。Decisionsは100万入力トークンあたり0.10ドルで、パブリックベータ版であり、テキストと画像を受け入れ、GPT-6 Lunaで動作します。Jevは100万入力トークンあたり0.042ドルで、TypeSafeコンソールアカウントの背後でアーリーアクセスとして提供され、テキストのみを扱い、各リクエストの上限は64kトークンです。
基本的なことから始めるには、Decisions APIとは何かとJevの使い方から始めてください。この記事では、両方を項目ごとに比較し、次に両方を1つの信頼度ルールに基づいて1つのApidogプロジェクトに統合します。
サイドバイサイド比較
すべてのセルは、参照にあるベンダーのページから引用しています。
| OpenAI Decisions API | TypeSafe Jev | |
|---|---|---|
| エンドポイント | POST /v1/decisions |
POST /v1/systemone |
| モデル | gpt-6-lunaのみ |
jev-1.13.0 (jev-latest) |
| ステータス | パブリックベータ版、GAは「数週間以内」 | アーリーアクセス(発表記事)、コンソールアカウントによる直接アクセス |
| 入力 | テキスト + 画像(base64データURL;参照には公開URLも記載) | テキストのみ、リクエストあたり64k |
| 質問タイプ | predicate / choice (2〜255オプション) / score |
noul / choice / score |
| 質問の形式 | オプションのnameを持つ配列 |
IDでキー付けされたオブジェクト |
| 出力フィールド | probability;choiceまたはscore + probabilities + confidence;refusal |
noul;choiceまたはscore + confidence + probabilities |
| 価格 | 100万入力あたり0.10ドル、出力料金なし | 100万入力あたり0.042ドル、出力料金なし |
| キャッシュ | まだなし (OpenAIフォーラム) | 未公開 |
| レート制限 | 組織ごとの制限ページ | 100K TPS / 80 RPS、動的 |
| 速度の主張 | 「Responses APIより約10倍高速」(OpenAI) | エンドツーエンドで70〜500ms (TypeSafe) |
| データ | 対象顧客向けZDR + HIPAA;米国/EUでのデータ所在地 | 企業向けZDR;リクエストで訓練されていない |
Decisionsはモデルではなくエンドポイントであり、GPT-6 Lunaで動作します。JevはTypeSafeの「System Oneモデル」で、較正された決定を返すためにRLCDでトレーニングされており、一般的なLLMではありません。
両方の形式での同一のチケットルーティングリクエスト
サポートチケットが届きました。部署と、顧客が返金を希望しているかどうかのイエス/ノーが知りたいとします。まずDecisionsの場合:質問は配列で、それぞれにtype、instructions、そしてAPIが応答で返すオプションのnameが含まれます。
curl https://api.openai.com/v1/decisions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-luna",
"input": "I was charged twice for my order.",
"questions": [
{
"type": "choice",
"name": "department",
"instructions": "Which team should handle this ticket?",
"choices": [
{"value": "billing", "description": "Charges, refunds"},
{"value": "technical", "description": "Bugs, errors"},
{"value": "other"}
]
},
{
"type": "predicate",
"name": "wants_refund",
"instructions": "Is the customer asking for money back?"
}
]
}'
次にJevの場合:入力フィールドはstate、質問は選択したIDでキー付けされたオブジェクト、choiceはオプションと説明のcriteriaマップを取り、イエス/ノーのタイプはnoulです。
curl https://api.typesafe.ai/v1/systemone \
-H "Authorization: Bearer $TYPESAFE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jev-latest",
"state": "I was charged twice for my order.",
"questions": {
"department": {
"type": "choice",
"instructions": "Which team should handle this ticket?",
"criteria": {
"billing": "Charges, refunds",
"technical": "Bugs, errors",
"other": "Anything else"
}
},
"wants_refund": {
"type": "noul",
"instructions": "Is the customer asking for money back?"
}
}
}'
返されるもの
Decisionsはmodel、answers、usageを返します。回答は尋ねられた順序で到着し、それぞれにnameが付いています。オプションごとの確率はオブジェクトの配列です。output_tokens: 0に注目してください。
{
"model": "gpt-6-luna",
"answers": [
{
"type": "choice",
"name": "department",
"choice": "billing",
"probabilities": [
{"value": "billing", "probability": 0.95},
{"value": "technical", "probability": 0.02},
{"value": "other", "probability": 0.03}
],
"confidence": 0.93
},
{"type": "predicate", "name": "wants_refund", "probability": 0.95}
],
"usage": {
"input_tokens": 42,
"input_tokens_details": {"cached_tokens": 0, "cache_write_tokens": 0},
"output_tokens": 0,
"output_tokens_details": {"reasoning_tokens": 0},
"total_tokens": 42
}
}
Jevはmodel(バージョン付きID)、質問IDでキー付けされたanswersオブジェクト、およびinput_tokensとoutput_tokensを含むusageを返します。answers.department.choice、そのconfidence、オプション名でキー付けされたprobabilities、さらにanswers.wants_refund.noulを読み取ります。OpenAI側のみでは、他の質問に回答が得られる間でも、質問ごとにrefusal回答が表示されることがあります。
100万件あたりの価格と、100万枚のチケットにかかる費用
OpenAIの記述によると:gpt-6-lunaの場合、入力は100万トークンあたり0.10ドルで、キャッシュ読み取り、キャッシュ書き込み、または出力トークンの料金はかかりません。TypeSafeは、100万入力トークンあたり0.042ドル、出力は無料と記載しています。
上記の2つの質問を含む500トークンのチケットを例にとります。
- Decisions: 500 / 1,000,000 × $0.10 = リクエストあたり$0.00005。100万枚のチケットで**$50**。
- Jev: 500 / 1,000,000 × $0.042 = リクエストあたり$0.000021。100万枚のチケットで**$21**。
OpenAI側では2つの乗数(倍率)が適用されます。長文コンテキスト入力(272Kトークン以上)は2倍になるため、100万トークンあたり0.20ドルとなり、これは料金ページから導出されています。また、地域処理には10%が追加されます。/v1/decisionsについては、Batch、Flex、またはFastのティアは文書化されておらず、OpenAIのフォーラムによると、usageにcached_tokensとcache_write_tokensフィールドがあるにもかかわらず、まだプロンプトキャッシュはありません。Jevはキャッシュに関する情報を何も公開していません。
入力:一方に画像、もう一方にテキスト
Decisionsは、input_textとinput_imageの部分を混在させた文字列またはユーザーメッセージの配列を受け入れます。ガイドでは、画像はインラインのbase64データURLである必要があると述べています。APIリファレンスには、公開HTTP(S) URLと1リクエストあたり最大128枚の画像も記載されているため、base64を安全なパスとして扱い、ホストされたURLは依存する前にテストしてください。file_id、ファイル、音声はサポートされていません。
Jevはテキストのみです。TypeSafeのモデルページによると、文字列、JSONオブジェクト、またはテキストの配列で、画像、音声、ビデオ入力はサポートされていません。OpenAIフォーラムでsam.saffronは明言しています。Jevはまだ画像理解をサポートしていません。決定が写真に依存する場合、Decisionsだけがそれを処理できます。
コンテキストとレート制限
Jevは、リクエストごとに64kトークンの制限を公開しており、そのうち32kはstateと最長の質問用で、一度状態を取り込み、すべての質問を並行して評価すると述べています。そのモデルページには、1秒あたり100Kトークン、1秒あたり80リクエストが動的に調整され、制限を超えると429が返されると記載されています。これらの数値は9月以降に変更されているため、最新のページを確認してください。
OpenAIはコンテキストウィンドウの数値やDecisions固有のレート制限を公開していません。Lunaの1,050,000トークンウィンドウはモデルページの数値であり、エンドポイントの数値ではありません。設定 > 組織 > 制限(レート制限ガイド)を確認してください。当社のレート制限ガイドは、どちら側での429エラー処理についても説明しています。
ステータスとアクセス
Decisionsは2026年10月6日にパブリックベータ版として公開され、発表によるとすべての開発者に公開されています。ガイドでは、OpenAIはGA(一般公開)を「数週間以内」と予想していると述べていますが、具体的な日付は示されていません。
JevはTypeSafeの発表記事によるとアーリーアクセス中であり、ウェイティングリストに言及しています。api.typesafe.aiへの直接アクセスはTypeSafeコンソールアカウントの背後にあります。Jevへのアクセス方法ではアクセスルートを、Jev APIキーではキー作成について説明しています。2つ目のルートはVercel AI Gatewayで、Jevはtypesafe-ai/jevとして、AI SDK(7.0.105以降)のexperimental_evaluateを介して呼び出されます(Vercelの変更履歴による)。Vercelの評価ドキュメントによると、GatewayのOpenAI互換エンドポイントでは公開されておらず、そこでイエス/ノーのタイプはbooleanであり、trueの確率が返されます。
データ管理
OpenAIによると、Decisionsは対象顧客に対してゼロデータ保持(Zero Data Retention)とHIPAA利用をサポートし、米国およびヨーロッパ(EEAとスイスを含む)でのデータレジデンシーと地域処理を提供しています。データ管理ページには、/v1/decisionsの不正使用監視ログはデフォルトで最大30日間保持されると付け加えられています。TypeSafeによると、Jevは顧客のリクエストや応答でトレーニングされておらず、企業顧客向けにZDRを提供し、すべてのアカウントで同じ重み(weights)を実行しています。
どちらのベンダーも精度やキャリブレーションの数値を公開していません。OpenAIのガイドでは、独自のラベル付きサンプルからしきい値を設定するように指示しており、これはJevにも当てはまります。
速度、そしてどちらを選ぶか
OpenAIによると、DecisionsはResponses APIよりも約10倍高速であり、絶対的な遅延数値は公開していません。OpenAIフォーラムのある開発者は、低速な接続で画像入力の決定が約0.8秒だったと報告しています。TypeSafeはJevについて、エンドツーエンドで70msから500msと見積もっています。これらは比較可能な測定値ではないため、ご自身のチケットで両方を計測してください。
入力に画像が含まれる場合、すでにOpenAIを利用しており1つのキーと1つの請求書を希望する場合、またはOpenAI BAAの下でHIPAA対応が必要な場合は、Decisionsを選択してください。入力がテキストの場合、ボリュームに応じてトークンあたりの価格の低さが重要な場合、またはすでにVercel AI Gatewayを利用している場合は、Jevを選択してください。
数週間両方を実行してみるのが賢明です。同じラベル付きデータセットに対してそれぞれを評価し、より良いしきい値曲線を採用し、もう一方をフォールバックとして保持します。本当の問題がDecisionsとStructured Outputsのラベルのどちらかである場合、DecisionsとResponsesの比較を参照してください。どちらのベンダーもデータポリシーに合わない場合は、オープンソースのJev代替品が存在します。
1つのApidogプロジェクトで両方をテストする
2つの環境。 OpenAI環境にOPENAI_API_KEYを、TypeSafe環境にTYPESAFE_API_KEYを作成し、それぞれローカルフィールドに値を設定してチームに同期されないようにします(環境とシークレット変数でスコープを説明しています)。
2つの保存済みリクエスト。 POST https://api.openai.com/v1/decisions をBearer {{OPENAI_API_KEY}}と上記最初のボディで、POST https://api.typesafe.ai/v1/systemone をBearer {{TYPESAFE_API_KEY}}と上記2番目のボディで作成します。
1つのアサーションルールを2回適用。 ビジネスルール:信頼度が0.8を超えればチケットを自動的にルーティングし、それ以下ならレビューキューに送ります。Decisionsリクエストでは、ステータスが200、$.answers[0].choiceがbilling、$.answers[0].confidenceが0.8より大きい、$.usage.output_tokensが0であることをアサートします。Jevリクエストでは、$.answers.department.choiceがbilling、$.answers.department.confidenceが0.8より大きいことをアサートします。
データ駆動型シナリオ。 予想される部署を含む20枚のラベル付きチケットをCSVに入れ、テストシナリオとして両方のリクエストを実行し、曖昧な行でどちらのAPIの信頼度が0.8を下回るかを確認します。これによりしきい値を選択し、チケットが誤ルーティングされる前にモデルの変更を検出できます。
両方の形状をモック化。 Decisionsの応答とJevの応答をモックとして保存し、フロントエンドが安定したanswers配列とanswersオブジェクトに対して構築できるようにします。条件付き応答のモック化により、オンデマンドで低信頼度のケースを返し、レビューキューブランチをテストできます。
CIで実行。 デプロイごとにApidog CLI(cliまたはjunitレポーターを使用したapidog run)でシナリオを実行し、GAでのフィールド変更やjev-latestの更新が、サポートキューではなくビルドを失敗させるようにします。Apidogをダウンロードして設定してください。
よくある質問
JevはGPT-6 LunaのようなLLMですか? いいえ。TypeSafeはJevを、較正された決定を返すためにRLCDでトレーニングされたSystem Oneモデルと説明しています。テキストを生成することはありません。Decisionsは汎用Lunaモデルのエンドポイントです。
OpenAIはJevに対抗してDecisions APIを構築しましたか? OpenAIのページではそのようには述べておらず、我々もそう主張しません。両方とも同じアイデアを提唱しています。すなわち、確率付きの型付き回答であり、入力に基づいて課金されます。
どちらが安いですか? Jevです。入力トークン100万あたり0.042ドルに対し、Decisionsは0.10ドルです。500トークンのチケット100万枚の場合、Jevは21ドル、Decisionsは50ドルです。
どちらも独自のJSONスキーマを返せますか? いいえ。両方とも固定された回答形式を返します。抽出されたフィールドや書面による説明が必要な場合は、Responses APIのStructured Outputsを使用してください。
次のステップ
上記の2つのcurlリクエストを同じチケットで送信し、両方をApidogに保存し、それぞれに0.8の信頼度アサーションを追加します。その後、ご自身のチケットを20枚入れ替えて、どちらのAPIがより頻繁にしきい値を超えるかを確認してください。使い方ガイドにはPython版とJavaScript版があります。
