Jev Recipe / ベンダー比較

Jev vs Perplexity Decisions API 比較:GA・価格公開で正面から

Perplexity が GA 済み・価格公開済みの決定 API で Jev に応えました。検証済みの契約を比較します。noul/choice/score の 3 プリミティブは同名、入力 100 万トークンあたり $0.04 対 $0.042、Apache 2.0 の重み、画像入力——そして選定を実際に決める違い。

広告

決定 API を選ぶ前の 6 つのチェック

01このページは新しい論争ではなく、同じカテゴリへの 2 番手の参入として読みます。Perplexity の Decisions API は、GA と価格公開を両方同時に揃えた最初の決定モデル API です。OpenAI の Luna 系 Decisions API は依然プレビューで、独立した価格行がありません。3 つのプリミティブは Jev と完全に同名——noul、choice、score——そして任意の Perplexity API キーで使えます。表面的な語彙がここまで収束すると、比較の軸は命名から契約の詳細、価格、デプロイ、較正へ移ります。以下はすべて 2026-10-06 に公式ドキュメントと突き合わせて検証しました。公開週の開始から 1 日後です。
02出力契約をセルごとに揃えます——名前は同じ、詳細が違う。どちらの API も質問名をキーにした型付き回答を返し、自由文の生成はありません。Jev の決定ヘッドは回答と RLCD 較正済み信頼度を返します。Perplexity は二値質問に noul 確率、選択式に選択肢ごとの確率と最有力選択肢と信頼度、スコア式にはルブリック各段のインデックスの確率加重平均(凡例付き)を返します。自動化するなら、公式文書の 2 つの記述が効いてきます。Perplexity の confidence は「モデル自身の確信の推定値」であって最高確率の選択肢と一致するとは限りません。また同一リクエストは「通常は同じ数値を返すが、小数第 2 位で異なることがある」。0.01 の揺らぎや非トップ確率の信頼度がゲートの挙動を変えるなら、そこが比較の全体です。
03価格の三角形を正直に計算します——昔の差別化ポイントはもう消えています。Jev は入力 100 万トークンあたり $0.042・出力無料を公開。Perplexity は同 $0.04・出力無料・リクエスト単位の課金なし——入力で 5% 安く、「出力は存在しない」という思想は同じです。第 3 の点、OpenAI の gpt-6-luna は短コンテキストで入力 $0.10/M に出力 $0.50/M。つまり「入力のみ課金」はもう Jev を他社と分けません。Perplexity が公開初日に揃えてしまいました。残る比較軸はレートの形(Perplexity は全プランで 10 リクエスト/秒)、画像トークン(100 万ピクセルあたり約 1,000 トークン)、そして価格が届かない軸——独立ベンチマーク、較正方法論、ツールチェーンです。
04モダリティと容量の境界を確認します——Perplexity には Jev にない能力が 1 つあります。画像入力です。Decisions API の state は OpenAI 方式の画像パート(base64 の PNG/JPEG/WebP data URL のみ。API は URL を取得しに行きません)を受け付け、32×32 ピクセルのタイルで読み、1 枚あたり最大 2,048 タイル——1440×1440 や 2048×1024 は収まります。超過画像はすぐに失敗するわけではなく、約 1 分待った末に 504 を返します。容量は入力 262,144 トークン(Jev は 32k コンテキスト)、1 リクエスト最大 128 質問、choice の選択肢は 255、score は 10 段まで。判断が今日からスクリーンショットや文書を読むなら、この行だけで決まります——Clef のページで述べたのと同じ事実です。判断がすべてテキストなら、Jev の SDK・Playground・複数質問の evaluate が同じ領域をカバーします。
05「プリミティブ同名」は移植マニュアルではなく A/B 仮説として扱います。名前が同じでも契約は同じではありません。Perplexity は毎リクエストに model: "pplx-decider-v1-27b" が必須(欠落や未知は 400)、回答は answers の下にネスト、認証は Bearer ヘッダーのみ(x-api-key は読まれません)、未知のトップレベルフィールドは拒否、エンドポイントは末尾スラッシュなしの POST /v1/decisions(スラッシュ付きは 404)。両エンドポイントを 1 つの決定インターフェースに包み、自動実行の前に自分のラベル付きサンプル約 100 件で切り替えを再検証する——特にステップ 2 で扱った信頼度セマンティクスの違いを意識して。文書化されたレート制限も設計に繰り込みます。全プラン 10 リクエスト/秒、429 には Retry-After が付きます。
06混在構成と見直しのサイクルを初日から設計します。両ベンダーを 1 つのゲートの背後に置き、信頼度ゲート付きフォールバックチェーンでどちら側の低信頼トラフィックも同じレビュー待ち行列へ送り、このページは毎月見直してください。API が GA になったのは公開週(2026-10-05 発表、当ページは 2026-10-06 に文書を検証)で、pplx-decider の独立ベンチマークはまだ存在せず、公開週の数字は動きます。上記のレイテンシと品質の数値はすべてベンダー文書の口径で各セルに出典を明記しており、アーキテクチャの判断材料にする前に自分のワークロードで再測定すべきものです。
schema / 型付きマルチ質問契約
{
  "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)"
  }
}
このスキーマは Jev 契約の深さを 1 画面にまとめたものです。Playground で 3 質問同時評価と較正済み信頼度を確認できます。

決定 API のスコアカード:TypeSafe Jev vs Perplexity Decisions API(GA 公開週・各セルに出典を明記)

METRIC
Jev
Perplexity Decisions API
出力契約
ネイティブ決定ヘッド——型付き回答(Choice/Score/Noul)と RLCD 較正済み確率。生成なし。決定論的な単一パスのセマンティクス
型付き回答は answers の下に質問名で格納:noul は確率、choice は選択肢ごとの確率と信頼度、score は段インデックスの確率加重平均(凡例付き)——同一リクエストは「小数第 2 位で異なることがある」と公式文書に明記
レイテンシとスループット(出典明記)
単一パスの evaluate は典型的に ~70〜100ms——当サイトの 49 タスク P95 シリーズは /benchmarks で公開。テキスト state、32k コンテキスト
ベンダー自己測定の応答時間は入力とともに増加:小さいリクエストは 2 秒未満、約 9 万トークンで約 5 秒、約 19 万トークンで約 14 秒、26.2 万上限手前で約 23 秒(Perplexity のテスト、2026-09-30)。全プラン 10 リクエスト/秒。独立ベンチマークはまだ存在しない
価格(2026 年 10 月・三角形)
公開:入力 100 万トークンあたり $0.042、出力無料——10 万判断で数セント
公開:入力 100 万トークンあたり $0.04、出力無料、リクエスト単位の課金なし——入力は Jev の 5% 安。第 3 の点は OpenAI gpt-6-luna:$0.10 入力 / $0.50 出力(短コンテキスト)。Decisions API は個別価格設定なし
デプロイとライセンス
TypeSafe ホスト型 API + SDK——ホスト型契約は専有。ローカル経路はサードパーティの OpenJev クローン経由
ホスト型 GA API + Hugging Face 上の Apache 2.0 オープンウェイト(perplexity-ai/pplx-decider-v1-27b、Qwen3.8-27B ベース)に公式 Python 推理コード——ベンダー公認のセルフホスト経路。サービング基盤の構築と検証は自己責任
較正の物語
RLCD 学習済みの確率——0.85 のしきい値は精度の契約として振る舞う。ECE の手法は当サイトのベンチマークページで公開
confidence は「モデル自身の確信の推定値」と文書化——最高確率の選択肢とは明示的に別物で、2 番手が迫ると下がる。公開済みの較正/ECE 方法論はまだないため、しきい値は初日から自分のラベルを必要とする
エコシステムとモダリティ
テキスト専用の state、32k コンテキスト、複数質問を 1 呼び出しで、SDK と Playground、さらに周辺の監査証跡・フォールバック・較正のコンテンツ群
今日から使える画像入力(OpenAI 方式の画像パート、32×32 タイル、1 枚あたり ≤2,048 タイル、100 万ピクセルあたり約 1,000 トークン)、入力 26.2 万トークン、1 リクエスト 128 質問、選択肢 255、スコア 10 段、本文 32 MiB。Perplexity の Agent・Router API と同系列

コード対照:Jev 型付き呼び出し vs Perplexity decisions エンドポイントと A/B 切替

python / jev 型付きマルチ質問 evaluate
import requests

JEV_ENDPOINT = "https://api.typesafe.ai/v1/jev/evaluate"
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["routing"]  # 型付き回答 + 較正済み信頼度、生成なし
if (
    route["confidence"] >= AUTO_ROUTE_CONFIDENCE
    and not data["needs_safety_escalation"]["answer"]
):
    lane = f"auto:{route['answer']}"  # 単一パス、入力トークンのみ課金
else:
    lane = "review"  # 0.60〜0.85 帯またはセーフティフラグ
python / Perplexity decisions エンドポイント(GA 契約・公式文書どおり)
import os

import requests

# POST /v1/decisions - 末尾スラッシュは不可(付けると 404)。
# 認証は Bearer のみ:x-api-key に入れたキーは読まれず 401 になります。
PPLX_ENDPOINT = "https://api.perplexity.ai/v1/decisions"
AUTO_ROUTE_CONFIDENCE = 0.85

resp = requests.post(
    PPLX_ENDPOINT,
    headers={"Authorization": f"Bearer {os.environ['PERPLEXITY_API_KEY']}"},
    json={
        # model は毎リクエスト必須。欠落や未知の値は 400
        "model": "pplx-decider-v1-27b",
        "state": {
            "ticket": "Checkout has been failing for every customer "
            "for the last hour."
        },
        "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, "
                "routine to business-stopping",
                # score:1〜10 段の順序付きルブリック。回答は段インデックス
                # (0 起点)の確率加重平均で、段と段の間の値もあり得る
                "criteria": ["Routine", "Minor", "Elevated", "Urgent",
                             "Business-stopping"],
            },
        },
    },
    timeout=30,  # 文書どおり:小さい入力は 2 秒未満。30 秒で上限をカバー
)
resp.raise_for_status()
data = resp.json()

answers = data["answers"]  # 質問名をキーに、質問と同じ型で返る
route = answers["routing"]  # choice + 信頼度 + 選択肢ごとの確率
if (
    route["confidence"] >= AUTO_ROUTE_CONFIDENCE
    and answers["needs_safety_escalation"]["noul"] < 0.5  # P(yes)
):
    lane = f"auto:{route['choice']}"
else:
    lane = "review"  # 低信頼度またはセーフティフラグ

# 公式文書にある正直な境界のメモ:
# - confidence は「モデル自身の確信の推定値」であり、最高確率の
#   選択肢とは別物。2 番手が迫ると下がります。
# - 同一リクエストは通常同じ数値を返しますが、小数第 2 位で
#   異なることがある——自動化の前に検証を。
# - usage.input_tokens は $0.04/M で課金。output_tokens は無料。
# - レート制限:全プラン 10 リクエスト/秒(429 に Retry-After)。
typescript / jev 型付きマルチ質問呼び出し
const JEV_ENDPOINT = "https://api.typesafe.ai/v1/jev/evaluate";
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.routing.confidence >= AUTO_ROUTE_CONFIDENCE &&
  !data.needs_safety_escalation.answer
    ? `auto:${data.routing.answer}`
    : "review";
typescript / 1 ゲート・2 バックエンド(形状を吸収する A/B 切替)
// プリミティブは同名、契約は別物——両方の形状を 1 つのインター
// フェースの背後に適合させます。このアダプタが吸収する差異:
// Perplexity は毎呼び出しに model: "pplx-decider-v1-27b" が必須
// (なければ 400)、回答は `answers` の下にネスト、認証は Bearer
// のみ、未知のフィールドと末尾スラッシュを拒否、全プランで
// 10 リクエスト/秒。confidence は「モデル自身の確信の推定値」で
// 最高確率ではない——自動化の前にベンダーごとに較正を検証。
const JEV_ENDPOINT = "https://api.typesafe.ai/v1/jev/evaluate";
const PPLX_ENDPOINT = "https://api.perplexity.ai/v1/decisions";

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",
    },
  },
} as const;

type TypedAnswer = { answer: string; confidence: number };

export async function routeTicket(ticket: string): Promise<TypedAnswer> {
  if (process.env.DECISION_BACKEND === "perplexity") {
    const resp = await fetch(PPLX_ENDPOINT, {
      method: "POST",
      headers: {
        Authorization: `Bearer ${process.env.PERPLEXITY_API_KEY!}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        model: "pplx-decider-v1-27b", // 毎リクエスト必須
        state: { ticket },
        questions: QUESTIONS,
      }),
    });
    if (!resp.ok) throw new Error("decision call failed");
    const data = await resp.json();
    const a = data.answers.routing as {
      choice: string;
      confidence: number;
      probabilities: Record<string, number>;
    };
    return { answer: a.choice, confidence: a.confidence };
  }

  const resp = await fetch(JEV_ENDPOINT, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ state: { ticket }, questions: QUESTIONS }),
  });
  if (!resp.ok) throw new Error("decision call failed");
  const data = await resp.json();
  return data.routing as TypedAnswer;
}

Jev vs Perplexity Decisions API よくある質問

Perplexity Decisions API とは何ですか?

Perplexity の GA 決定モデル API です。公開週に発表され(2026-10-05)、当サイトが 2026-10-06 に公式文書で検証しました。state(文字列・オブジェクト・配列——画像も含む)に 1〜128 の名前付き質問を添えて送ると、生成テキストではなく確率が返ります。モデルは 1 つだけ:pplx-decider-v1-27b。質問タイプは Jev のプリミティブと完全に同名で、noul(yes の確率)、choice(選択肢ごとの確率と信頼度)、score(最大 10 段のルブリック上の確率加重平均)です。価格は入力 100 万トークンあたり $0.04、出力トークンは無料、リクエスト単位の課金なし。重みは Hugging Face に Apache 2.0 で公開されています。

Jev とは何が違いますか?

同じカテゴリ、同名のプリミティブ、違う契約の詳細です。Jev は RLCD 較正済みの信頼度付きの型付き回答を返し、単一パスで決定論的に振る舞います。Perplexity は confidence を「モデル自身の確信の推定値」(最高確率ではない)と文書化し、同一リクエストが小数第 2 位で異なることがあると明記しています。Perplexity は画像入力と最大 26.2 万入力トークンを受け付けます。Jev はテキスト専用でコンテキスト 32k ですが、較正方法論(当サイトベンチマークページの ECE)を公開し、SDK と Playground を同梱しています。両社とも入力のみ課金で出力無料——Jev が $0.042/M、Perplexity が $0.04/M です。

Perplexity Decisions API のオープンソース代替はありますか?

Perplexity 自身がそうです。重み(Hugging Face の perplexity-ai/pplx-decider-v1-27b)は Apache 2.0 で公式の Python 推理コード付きのため、自分が運用するインフラで推論を実行できます——サービング基盤の構築と検証は自己責任です。Jev 生態系のローカル経路は OpenJev ファミリーのクローン(Kev、SemIf、Von)を自分のハードウェアで動かすもので、Cloudflare の Clef はもう一つのオープンウェイト決定モデルファミリーです。正直な留保:セルフホストが再現するのは重みであって、ホスト型 API の全動作とは限りません。画像タイル処理、信頼度セマンティクス、自分のスタック上の較正は、自分で検証する項目です。

どちらを選ぶべきですか?

シーンで選びます。Perplexity を先に見るケース:判断が今日から画像を読む、32k を超えるコンテキストが必要、ベンダー公認セルフホスト経路付きのオープンウェイトが欲しい、極端な規模での入力コストが決め手になる($0.04 対 $0.042)。Jev を先に見るケース:較正済み信頼度で自動実行をゲートする、公開済みの較正方法論が必要、再生可能な監査のための決定論的な挙動が必要、SDK と Playground のワークフロー、監査証跡とフォールバックのコンテンツ群に依存する。どちらでも、決め手のデータはローカルにあります。自分のラベル付きサンプル約 100 件を両方のゲートに通してください。公開週のベンダー文書が答えるのは選定偵察の質問であって、デプロイの質問ではありません。

$0.04 対 $0.042 の差が本当のコストの話ですか?

いいえ。常識的な規模ではどちらも数セントの世界です。入力 600 トークンは Perplexity で約 $0.000024、Jev で約 $0.000025。5% の差が意味を持つのは月間トークン数が 9 桁に達するときだけです。実際に金額を動かす軸は、画像(Perplexity で 100 万ピクセルあたり約 1,000 入力トークン)、出力課金(両社とも無料——ここが OpenAI gpt-6-luna の $0.10 入力 / $0.50 出力との分水嶺)、レート制限(Perplexity は全プラン 10 リクエスト/秒と文書化)です。コスト計算機で三角形を試算したら、数セントの最適化をやめて信頼度の検証に移りましょう。

2 つの API は 1 つのリクエスト経路を共有できますか?

アダプタの背後なら yes、そのままの差し替えは no です。プリミティブ名と「state + questions」という思想は一致していますが、Perplexity は毎呼び出しに model: "pplx-decider-v1-27b" が必須、応答は answers の下にネスト、Bearer ヘッダーのみで認証(x-api-key は読まれません)、未知のフィールドと末尾スラッシュを拒否し、全プランで 10 リクエスト/秒に制限されます。上の 2 バックエンドのコードのように 1 つの決定インターフェースの背後に両方を置き、信頼度セマンティクスはベンダーごとに扱い、自動化の前にラベル付きサンプルで切り替えを検証してください。

決定 API クラスタをさらに深める