Jev Recipe / ベンダー比較
Jev vs OpenAI Decision API(Luna):型付き決定 API の正面比較
最終更新日: 2026-10-08
OpenAI が DevDay で Jev 対抗として GPT-6 Luna ベースの Decision API を発表しました——現在はパブリックベータで、入力のみ課金の料金も公開済みです。契約の違いを比較します。事前定義された回答セット vs Choice/Score/Noul の 3 プリミティブ、predicate と noul の命名差、100 万トークンあたり $0.10 対 $0.042、そして 2 つの信頼度スコアにそれぞれどれだけの信頼を置けるか。
決定 API を選ぶ前の 6 つのチェック
{
"routing": {
"type": "choice",
"instructions": "Which queue should this ticket go to?",
"criteria": {
"billing": "Payment, invoice or refund issue",
"technical": "Product malfunction or bug",
"sales": "Buying or upgrade question",
"abuse": "Safety or abuse report"
}
},
"needs_safety_escalation": {
"type": "noul",
"instructions": "Does this ticket require a safety escalation regardless of queue?"
},
"urgency": {
"type": "score",
"instructions": "Rate how urgent a human reply is, 1 (routine) to 5 (business-stopping)"
}
}決定 API 契約の比較:Jev 型付きプリミティブ vs OpenAI Decision API(Luna)
コード対照:OpenAI decisions エンドポイント vs Jev 型付き呼び出し
import os
import requests
# Public beta since 2026-10-06: question types are predicate /
# choice / score (predicate = Jev's Noul), $0.10 per 1M input
# tokens, output free. Field shapes below are the announced shape -
# verify against the current guide before shipping; beta APIs move.
resp = requests.post(
"https://api.openai.com/v1/decisions",
headers={"Authorization": f"Bearer {os.environ['OPENAI_API_KEY']}"},
json={
"model": "gpt-6-luna",
"context": "Ticket: my invoice shows the same charge twice...",
"question": "Which queue should this ticket go to?",
"answers": ["billing", "technical", "sales", "abuse"],
},
timeout=5,
)
resp.raise_for_status()
decision = resp.json() # -> {"answer": "billing", "confidence": 0.91}
# Images (when you need them): inline base64 data URLs only -
# hosted image URLs and file IDs are not supported in the beta.import requests
JEV_ENDPOINT = "https://api.typesafe.ai/v1/systemone"
AUTO_ROUTE_CONFIDENCE = 0.85
QUESTIONS = {
"routing": {
"type": "choice",
"instructions": "Which queue should this ticket go to?",
"criteria": {
"billing": "Payment, invoice or refund issue",
"technical": "Product malfunction or bug",
"sales": "Buying or upgrade question",
"abuse": "Safety or abuse report",
},
},
"needs_safety_escalation": {
"type": "noul",
"instructions": "Does this ticket require a safety escalation regardless of queue?",
},
"urgency": {
"type": "score",
"instructions": "Rate how urgent a human reply is, 1 (routine) to 5 (business-stopping)",
},
}
resp = requests.post(
JEV_ENDPOINT,
json={"state": {"ticket": "..."}, "questions": QUESTIONS},
timeout=5,
)
resp.raise_for_status()
data = resp.json()
route = data["answers"]["routing"] # criteria-checked answer + calibrated confidence
if (
route["confidence"] >= AUTO_ROUTE_CONFIDENCE
and not data["answers"]["needs_safety_escalation"]["noul"]
):
lane = f"auto:{route['answer']}" # ~70-100ms, input tokens only
else:
lane = "review" # 0.60-0.85 band or safety flagconst resp = await fetch("https://api.openai.com/v1/decisions", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.OPENAI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "gpt-6-luna",
context: "Ticket: my invoice shows the same charge twice...",
question: "Which queue should this ticket go to?",
answers: ["billing", "technical", "sales", "abuse"],
}),
});
// Public beta since 2026-10-06 (predicate / choice / score; $0.10 per
// 1M input, output free) - verify field names against the current
// guide before shipping; beta APIs move.
const decision = (await resp.json()) as {
answer: string;
confidence: number;
};const JEV_ENDPOINT = "https://api.typesafe.ai/v1/systemone";
const AUTO_ROUTE_CONFIDENCE = 0.85;
const QUESTIONS = {
routing: {
type: "choice",
instructions: "Which queue should this ticket go to?",
criteria: {
billing: "Payment, invoice or refund issue",
technical: "Product malfunction or bug",
sales: "Buying or upgrade question",
abuse: "Safety or abuse report",
},
},
needs_safety_escalation: {
type: "noul",
instructions:
"Does this ticket require a safety escalation regardless of queue?",
},
urgency: {
type: "score",
instructions:
"Rate how urgent a human reply is, 1 (routine) to 5 (business-stopping)",
},
} as const;
const resp = await fetch(JEV_ENDPOINT, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ state: { ticket: "..." }, questions: QUESTIONS }),
});
const data = await resp.json();
const lane =
data.answers.routing.confidence >= AUTO_ROUTE_CONFIDENCE &&
!data.answers.needs_safety_escalation.noul
? `auto:${data.answers.routing.choice}`
: "review";Jev vs OpenAI Decision API よくある質問
OpenAI の Decision API とは何ですか?
GPT-6 ファミリーで最小・最安のモデル Luna の上に構築された非チャット系エンドポイントです。2026-09-29 の DevDay でプレビューとして発表され、2026-10-06 からパブリックベータとして誰でも利用できます。コンテキストを送り、3 つのプリミティブ——predicate(yes/no)、choice(N 択)、score(順序付きルブリック)——で質問すると、約 150ms で信頼度付きの型付き回答が返ります。ベータガイドは料金を公開しています。入力 100 万トークンあたり $0.10、出力無料、キャッシュ課金なし。OpenAI は GA を「数週間以内」に迎える見込みだと述べています。The New Stack は当初の発表を TypeSafe の Jev への対抗と報じています。
Decision API と Jev は同じものですか?
同じカテゴリですが、契約が異なります。どちらも非生成型で、コンテキスト + 質問 + 固定の回答セットを入力すると 1 つの回答と信頼度が返ります。違いは契約の深さです。Jev は選択肢ごとに criteria を持たせた Choice(ポリシーがレビュー可能なコードに残る)、順序付き判断をカバーする Score、複数質問の 1 呼び出し共有、RLCD 較正済みの確率、公開された入力課金のみの価格($0.042/M。Luna ベータの約 2.4 分の 1)、OpenJev エコシステムによるセルフホスト経路を備えます。Luna の対抗点は OpenAI ファーストパーティ統合、inline base64 の画像入力、公開済みのベータ料金です——引き換えに較正方法論は未公開のままです。
今すぐ本番環境で使うならどちらを選ぶべきですか?
Luna がベータの間は Jev が既定値です。一般提供済みで、しきい値は較正済み、料金は製品とともに公開済み、移行もアダプタ関数 1 つで済みます。Luna を先に見るべきは 3 つのケースです。スタックが OpenAI 前提、判断に画像コンテキストが必要、単一ベンダーの請求が価格より重要(入力 $0.10/M 対 Jev の $0.042/M)。どちらを選ぶ場合でも、信頼度だけでの自動実行の前に、自分のワークロードから約 100 件のラベル付きサンプルを両ゲートに通してください。
両方を 1 本のパイプラインで使えますか?
使えます。パターンも既に文書化されています。コード内の 1 つの決定インターフェースの背後に両方を隠蔽し、信頼度ゲート付きフォールバックチェーンにルーティングを任せます。Jev ゲートを常設の第一通過に、画像コンテキストが助けになる判断を Luna に、そして同じ 0.60〜0.85 のレビュー帯がどちらのベンダーの低信頼出力も受け止めます。ベンダー交換のコストはリライトではなくアダプタになります。
Jev vs Luna ベンチマークガイドとの違いは何ですか?
このページはプロダクトと API の契約を比較します。リクエスト形状、プリミティブ、レイテンシ、価格、較正、デプロイです。Jev vs Luna ベンチマークガイドは実測タスク結果を比較します。505 サンプルのサードパーティ評価で、Jev が約 $0.01 対 $0.06 のコストで 382/505 を取り、Luna が勝ったケースも含まれています。両方読んでください。契約は何を構築できるかを、ベンチマークは構築したときに何を期待すべきかを教えます。
OpenAI Decisions API の代替はありますか?
ベータ入りの時点で 4 種類あります。Jev は契約が最も深いホスト型の選択肢です。選択肢ごとの criteria を持つ型付き Choice/Score/Noul、RLCD 較正済みの信頼度、入力 $0.042/M(Luna ベータの 2.4 分の 1)。Perplexity の Decisions API は最安のホスト型です(入力 $0.02/M、GA、画像入力、Apache 2.0 ウェイト)。Cloudflare の Clef と Liquid AI の D1 は自分で実行できるオープンウェイトの決定モデルで、OpenJev ファミリー(Laya、Kev、SemIf、Von)が完全ローカルの経路をカバーします。6 ベンダーの全体図と 2026 年 10 月の料金は当サイトの判断モデル API ハブ(/decision-model-api)に、オープンソースの選択肢は /jev-alternatives で行単位に比較しています。
ベータの契約形状が変わったらコードはどうなりますか?
ベータでもフィールドは動き得ます。OpenAI は 2026-10-06 にガイドと料金を一体で公開し、GA を「数週間以内」と予告しています。だからこそ、リクエストとレスポンスのフィールドは動くと想定し、Luna 呼び出しを 1 つのアダプタ関数の中に収めてアプリケーション層からは直接見えないようにします。Jev の evaluate エンドポイントは公開以来、一般提供で変更なしです。どちらにしても約 100 件の評価セットは手元に残してください。ゲートを交換して再検証するのは四半期ではなく 1 午後の作業です。