JEV - 返るのは分布だけ、二つの demo
二つの例は閉じた選択だけを問います。サポートを人へ切るかどうか、そして結合を通すかどうかです。戻るのは分布です。公開されている遅延は約 70 から 500 ミリ秒のままで、ある一回のデモのミリ秒数ではありません。

共著者:folkbench.com (Folkbench は、AI API、モデルサービス、関連サイト向けの、検証できる評価・選定プラットフォームです。公開されたサービス情報、価格、可用性、レイテンシ、証拠の期間をもとに、利用者が経路を比較して選べるようにします。)
この一連は、十篇です。
- JEV - 関節に脳は要りません
- JEV - 制御ノードの潤滑剤
- JEV - BERT から、一枚の分布へ
- JEV - 呪文ではなく、閉じた問いを設計する
- JEV - 反トークンの台帳は、これを先に出さない
- JEV - 返るのは分布だけ、二つの demo
- JEV - ループを出る:確信度をコードに書く
- JEV - 線を越えたあと、より賢さは売りにならない
- JEV - 直感と理性:関節に問わない言葉
- JEV - 画面操作から、確率だけへ
二つのデモは同じ仕事です。自由なテキストはなく、閉じた問いだけで、分岐は分布から取ります。下の JSON とコードは呼び出しの形であり、計時の報告ではありません。公開されている端から端までは約 70 から 500 ミリ秒です。ある 18 ミリ秒の実行を製品の数字として書き残さないでください。見る価値があるのは、応答に token ごとの文がないことです。
サポート:意図と遮断
場面
サポートが恐れるのは、システムがまだ打っているあいだに、すでに怒っている利用者です。意図に生成モデルを使うと、正確さの名のもとに、最初の token と生成された JSON の塊を待つことが多くなります。裸の正規表現は、要点の周りを話す怒りを読み落とします。欲しいのは閉じた分類であり、そのあとすぐ、人へ渡すかどうかの決定です。
状態と選択肢
これは Choice であり、Noul ではありません。Noul は、はいか否かに答えます。ここには三つの選択肢があります。
[State]
scene: live support entry
rule: assign probability across the given options from the message text
[user]
I have waited three days. The shipment has not moved. Are you even alive? Refund me now, or I escalate.
{
"question": "choice",
"options": [
{"id": "GENERAL", "description": "ordinary question or tracking, no strong emotion"},
{"id": "REFUND", "description": "a clear return or refund, stated flatly"},
{"id": "BREAKER", "description": "insult, threat, or a complaint that should break to a person"}
]
}
戻るのは分布です
文字を吐くカーソルはありません。形は表であり、評ではありません。
{
"top": "BREAKER",
"scores": [
{"choice": "BREAKER", "score": 0.9241},
{"choice": "REFUND", "score": 0.0715},
{"choice": "GENERAL", "score": 0.0044}
]
}
数字はこの例の中の分布であり、分岐を書くためのものです。公開された基準ではありません。モデルは与えられた選択肢の上に確率を割り当てます。次の文字を予測しているのではありません。
コードがどう受け取るか
async function handleIncomingCustomerMessage(userMessage: string) {
const res = await jev.choice("cs_intent_v1", { input: userMessage });
const breaker = scoreOf(res, "BREAKER");
if (breaker > 0.85) {
return triggerHumanOverride({ priority: "CRITICAL", queue: "RETENTION" });
}
if (scoreOf(res, "REFUND") > 0.70) {
return launchWorkflow("AUTOMATED_REFUND_FLOW");
}
return launchWorkflow("DEFAULT_FAQ_BOT");
}
Markdown を解析することだけが仕事の、余分な再試行はありません。閾値はコードの中にあります。0.85 と 0.70 はこの流れ自身の方針です。モデルからの保証ではありません。
結合前の点検
場面
静的な走査は構文木と死んだ規則に寄りかかります。変種はすり抜け、誤報もよくあります。対話のモデルに 500 行の diff を読ませて評を書かせると、しばしば何秒もかかります。管路は待てず、プログラムは散文から「通る」も「落ちる」も読めません。diff を状態として扱い、Choice を一つ問ってください。通す、人が見る、または止める、です。
状態と選択肢
[Git diff]
PR #1042
file: src/auth/session.ts
+ // skip expiry outside production, or when the token starts with test_admin_
+ if (process.env.NODE_ENV !== 'production' || token.startsWith('test_admin_')) {
+ return session;
+ }
{
"question": "choice",
"options": [
{"id": "PASS", "description": "harmless refactor, docs, or ordinary logic"},
{"id": "WARN", "description": "config, dependency, or a non-sensitive refactor; a person should look"},
{"id": "BLOCK", "description": "backdoor, hardcoded secret, privilege jump, auth bypass, injection"}
]
}
本番で期限を飛ばす test_admin_ 接頭辞は、認証の回避です。例では、分布が BLOCK を 0.98 の近くに置きます。その節を消し、「本番の外でのみ飛ばす」だけを残すと、同じ問いは阻止から人の目へ移ります。問いはそう使います。約束されたミリ秒の組ではありません。
管路がどう受け取るか
def audit_pr_diff(diff_text: str) -> int:
result = jev.choice(
question="pr_security_v2",
state=diff_text,
options=["PASS", "WARN", "BLOCK"],
)
scores = result.scores
if result.top == "BLOCK" and scores["BLOCK"] > 0.80:
print("high-risk auth change")
return 1
if result.top == "WARN":
mark_review_required()
return 0
return 0
内部サービスのアドレスで足ります。これを、公開の場がすでにあなたの代わりに Jev を出しているとは読まないでください。管路が読むのは最上の選択肢と点数です。人がまだ書かれた評を必要とするなら、書けるモデルに問ってください。その散文をこの問いへ押し戻さないでください。
数を返すインターフェースを呼ぶように
二回の実行は、一つの事実を具体にします。複雑な判断はモデルの内部に残り、外に残るのは確率だけです。Noul、Choice、Score は三つの格子であり、三つの雑談の型ではありません。
経路、リスク、結合前の点検、方針の機械、Agent の分岐。まずその段が閉じた問いとして書けるかを問ってください。書けるなら、生成を待たないでください。書けないなら、この種の呼び出しに装わないでください。