Jev Recipe / ベンダー比較
Jev vs Clef 比較:Cloudflare の決定モデルを正面から
Cloudflare がオープンソースの Clef で Jev に応えました。出典付きのスコアカードを比較します。BFCL と When2Call の割れ方、38.8ms のホスト型レイテンシ、Apache 2.0 の重み、そして「fully Jev-API compatible」という表明が実際に何を約束しているか。
決定モデルを選ぶ前の 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)"
}
}決定モデルのスコアカード:TypeSafe Jev vs Cloudflare Clef(公開週・各セルに出典を明記)
コード対照:Jev 型付き呼び出し vs Clef ローカル実行と A/B 切替
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 帯またはセーフティフラグimport json
import requests
# 当サイトの Clef-Flash 装機テストで検証済みのローカル経路:
# bartowski Q4_K_M GGUF、Ollama 0.35、8GB ノート PC、2048 コンテキスト。
# メカニズム注記:この経路は JSON を「生成」します(21〜30 トークン)。
# 公式の joint schema head はロードされておらず(backbone テンソル
# 427 個・schema head 一致ゼロ)、ネイティブ確率は出てきません。
OLLAMA_CHAT = "http://localhost:11434/api/chat"
SCHEMA = {
"type": "object",
"properties": {
"urgent": {"type": "boolean"},
"team": {"enum": ["billing", "technical", "sales"]},
"severity": {"enum": ["minor", "major", "critical"]},
},
"required": ["urgent", "team", "severity"],
}
resp = requests.post(
OLLAMA_CHAT,
json={
"model": "hf.co/bartowski/Cloudflare_clef-flash-GGUF:Q4_K_M",
"messages": [{
"role": "user",
"content": "Ticket: Checkout has been failing for every "
"customer for the last hour. Reply with urgent, team, "
"severity as JSON.",
}],
"format": SCHEMA, # ランタイム層の制約が固定するのは「フォーマット」で、
"options": {"temperature": 0, "num_ctx": 2048}, # 「正しさ」ではありません
},
timeout=60,
)
reply = json.loads(resp.json()["message"]["content"])
# ウォーム リクエストは約 1.4〜2 秒。検証では、同じ障害プロンプトの
# 温度ゼロ再実行が team を technical から billing へひっくり返しました。
# ルーティングの評価はラベル付きセットで行うべきで、成功スクリーン
# ショット 1 枚では不十分です。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";// Clef は公式に "fully Jev-API compatible" と自称しています。あなたの
// 呼び出しに対してそれが成立するなら、ベンダー交代はこの定数の変更だけ。
// 留保:これは Cloudflare の自己申告であり、当サイトはエンドポイント
// ごとには検証していません。対象はホスト型モデルで、ローカル量子化経路は
// ネイティブヘッドなしの JSON 生成です。両バックエンドを 1 つのインター
// フェースの背後に置き、信頼度での自動実行の前に約 100 件のラベル付き
// サンプルで切り替えを検証してください。
const JEV_ENDPOINT = "https://api.typesafe.ai/v1/jev/evaluate";
const DECISION_ENDPOINT =
process.env.DECISION_BACKEND === "clef"
? process.env.CLEF_ENDPOINT! // あなたの Workers AI / セルフホスト Clef エンドポイント
: JEV_ENDPOINT;
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;
export async function routeTicket(ticket: string) {
const resp = await fetch(DECISION_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 { answer: string; confidence: number };
}Jev vs Clef よくある質問
Clef とは何ですか?Jev とどう関係しますか?
Cloudflare が 2026-10-01 に公開したオープンウェイト決定モデルファミリーです。Clef(27B)と Clef-Flash(9B)の 2 モデルで、凍結した Qwen3 バックボーンに rank-256 LoRA を足してファインチューニングされ、Apache 2.0 ライセンスで Hugging Face に公開、Workers AI でもホストされています。TypeSafe の Jev と同じく非生成型で、1 回の prefill 並列パスで事前定義された選択肢をスコアリングし、公式に「fully Jev-API compatible」と自称します。公開当日の Hacker News では 625 ポイントを記録し、当サイトの監視史上最大のスレッドになりました。「Jev 互換」がコミュニティの再現から大手ベンダーの製品戦略に昇格した瞬間です。
「Jev-API compatible」とは実際何を意味しますか?
Cloudflare の発表上は、Clef エンドポイントが同じリクエスト形状——コンテキスト + questions + 事前定義された回答セット——を受け付け、回答と信頼度を返すので、Jev から Clef への置き換えはリライトではなくエンドポイント変更で済む、という意味です。ただし 2 つの留保があります。これはベンダーの自己申告で、当サイトはエンドポイントごとには検証していません。また対象はホスト型モデルです。ローカル量子化経路は別のメカニズム(JSON 生成・ネイティブヘッドなし)で動くため、形状の互換と信頼度セマンティクスの互換は別物です。
どちらを選ぶべきですか?
スコアボードではなくシーンで選びます。Clef を先に見るケース:Cloudflare エコシステム前提、今日から必要な画像入力、セルフホスト可能なオープンウェイト、BFCL/BANKING77 のリード(フォーマット正確な関数呼び出し・銀行ドメイン精度)と ~38.8ms のホスト型レイテンシ。Jev を先に見るケース:信頼度しきい値での自動実行、RLCD 較正済み確率、出力無料の入力のみ課金、複数質問の 1 呼び出し、When2Call 80.97 対 65.58 のプロファイル(辞め時を含むツール選択)。どちらでも、自動実行の前に自分のラベル付きサンプル約 100 件をゲートに通してください。公開週のベンダー数字が答えるのは選定偵察の質問であって、デプロイの質問ではありません。
Clef はローカルで動きますか?
動きますが、メカニズムの注意付きです。bartowski の Clef-Flash Q4_K_M GGUF は 8GB RTX 4060 ノート PC の Ollama 0.35 で、ウォーム リクエスト約 1.4〜2 秒。検証では画像入力も受け付けました。ただし検査した量子化パッケージは backbone テンソル 427 個・schema head 一致ゼロで、Ollama の回答は生成された JSON(21〜30 トークン)であり、公式 joint schema head のネイティブ確率ではありません。ネイティブの決定インターフェースは cloudflare/clef-webcam リポジトリ(Apple Silicon・メモリ 32GB 以上)が参考経路です。経験則:ランタイムを確認する——モデル名はどのメカニズムが動いているか教えてくれません。
Clef は無料ですか?ライセンスは?
重みは Apache 2.0 で Hugging Face に公開されているため、ダウンロードとセルフホストは無料です。コストは GPU 側に発生します。Cloudflare の Workers AI ホスティングは有料製品で、そのトークン単価は執筆時点(2026-10-05)で確認できる情報源では未公開でした。「無料」ではなく「未公開」と記録してください。Jev の対照点は公開済みの入力 100 万トークンあたり $0.042・出力無料です。
割れたベンチマーク結果はどう読めばいいですか?
各ベンチマークが何を測るかから聞きます。BFCL(98.76 対 95.75)と API-Bank(93.11 対 88.19)はフォーマット正確な関数呼び出しを評価——Clef-Flash のリード。BANKING77 macro-F1(94.20 対 79.74)は細粒度の銀行ドメイン分類精度——Clef が最も差を開けた枠。When2Call(80.97 対 65.58)は正しいツールの選択または辞める判断を評価——Jev が最もリードした枠で、ワークフローレベルのスコアも概ねこれに従います(請求書処理 61.8 対 57.1、agent traces 71.6 対 69.8、カスタマーサービスは 77 対 76 のコインフリップ)。これらはすべて Cloudflare 公表の評価で、Jev の独立数値は当サイトのベンチマークページにあります。割れ方こそが結論です。この 2 つのモデルは異なる仕事が得意です。