BUILD NOTES · 2026-09-21 · 5 MIN READ

問い合わせを、
担当者が動ける一覧へ。

判定APIは、JSONが返るだけでは仕事になりません。文章から担当と優先度を決めて、次に確認することまで見える小さなプロダクト「teai Inbox」を作りました。

teai Inboxを試す →

追試:もっと速く、安くできるか。

Economyを1回1cr(約0.17円)で追加しました。GPT-OSS 20B・low設定です。標準の120Bは2crのまま。人が確認するタグ付けや問い合わせの下処理に向けた、明示的に選べる節約モードです。

以前の問題を再利用せず、新しい12例を固定し、同じ汎用プロンプトで5設定を比較しました。各3判定、順番を回して逐次実行、再試行なし。ここからの時間はFlyから上流APIへの応答時間で、下記の従来24件の公開API全体の時間とは別です。

新規12例正解中央値推定原価/回
120B medium36/360.827秒約0.0395円
120B low36/360.535秒約0.0262円
20B low36/360.302秒約0.0110円
Qwen 3.8 none・Strict35/360.233秒約0.0584円
Jev35/360.488秒今回未確認

QwenとJevは、資料中の引用文の誤字修正を「請求担当」としました。事前ラベルは「技術担当」です。この分類は業務の振り分け規約に左右されるため、普遍的な誤りや優劣とは扱いません。

さらに分けた8例で、20Bの見落としが出ました

選定後、事前に固定していた別の8例で確認しました。120B mediumは24/24、20B lowは23/24。20Bは引用と現在の依頼が混ざる文章の「早めに」を見落とし、緊急度を通常にしました。確認後にプロンプトは変更していません。

この8例の上流中央値は120Bが0.874秒、20Bが0.295秒。推定原価は約0.0396円と約0.0104円でした。速さ・原価では改善しましたが、全件を自動で20Bに切り替える根拠にはしません。

用途で選ぶ

  • Economy・1cr:人が確認する分類候補、タグ付け、問い合わせの下処理。
  • Standard・2cr:否定・例外条件を含む判定。今回の追加確認では正解が多かった設定です。
  • Jev・2cr:確率出力を用いるレビュー設計。閾値の妥当性・校正は実データで別途評価します。
  • 通常のコード:確定した日付・金額の計算。推論APIを呼ばないため、その推論費用は不要です。

モデル原価は販売価格の下限ではありません。原価は使用トークンと公開単価、1ドル150円で計算した推定で、認証・課金・インフラ・失敗分・利益を含みません。同じ文章の関連質問は1回最大20問までまとめられます。20件の独立した問い合わせをそのまま一括処理できるという意味ではありません。

訂正:Qwen 3.8もStrict JSONに対応し、今回12回すべて形式上正常でした。以前はQwenをJSON-objectモードで測定しており、その差を120Bだけの機能上の優位と解釈することはできません。

小規模・自作の関連シナリオで、判定同士は相関があります。汎用精度・速度保証・確率校正を示すものではありません。20Bは以前の別プロンプトの評価でも誤判定がありました。APIは選択したモデルを実行し、自動代替はしません。新しいAPI応答のtiming.provider_msで上流区間を、Inbox上部でブラウザ全体の時間を確認できます。

追加76回の全記録・入力・期待値・失敗例(JSON) · Groq形式出力仕様 · 公開単価

POST /v1/decisions
model: "teai/decision-20b"   // Economy / 1cr
model: "teai/decision-120b"  // Standard / 2cr
model: "typesafe/jev"        // Probabilities / 2cr
今回分かったこと

同じ24件・72判定で、teai DecideとJevはどちらも全問正解。応答時間の中央値はDecide 1.79秒、Jev 1.04秒でした。今回はJevの方が速く、teai経由の販売価格はどちらも1回2cr。選ぶ理由は、速度だけでなく出力形式にもあります。

01 / 「返金」という単語だけでは、振り分けられない

「至急、返金してください」は請求担当へ。「エラー画面に『至急返金してください』と表示されます。急ぎません」は技術担当へ。単語は似ていても、実際の依頼も緊急度も違います。

Inboxは文章から担当部署・緊急度・今の返金依頼の有無を一括判定し、優先度順のキューに並べます。担当者が確認する次の作業と、元のAPI応答も表示。JSONを書き出せるので、その後のアプリ連携にも使えます。

APIキーなしなら「実測記録を見る」で保存済みの結果を確認できます。ログインまたは個人APIキーで自分の文章を判定でき、Economy・Standard・Jevを同じ画面から選べます。入力したキーとキューは画面のメモリに保持し、再読み込みで消えます。

02 / 同じ入口・同じ問題で測る

2026年9月21日、日本語と英語の問い合わせ24件を用意し、1件につき3つの質問を固定しました。Macから同じhttps://teai.io/v1/decisionsを呼び、モデルの順番を交互に入れ替えて各1回、計48回測定しました。並列実行・自動再試行はありません。

測定項目teai DecideJev
正解 / 判定数72 / 7272 / 72
全3問正解の入力24 / 2424 / 24
HTTP成功24 / 2424 / 24
応答時間・中央値1.7931秒1.0442秒
p95(nearest-rank)2.3091秒1.6100秒
teai販売価格 / 回2cr ≈ ¥0.332cr ≈ ¥0.33
測定24回の消費48cr48cr

料金はteai経由の価格で、提供元の原価・直接契約価格とは異なります。円表示は1cr ≈ ¥1/6での概算です。時間はDNS・TLS・ネットワーク・teaiの認証と課金・上流処理・JSON読込を含む、このクライアントでのAPI応答時間です。上流モデルだけの推論時間やブラウザでの操作時間ではありません。

使用モデルはDecideがopenai/gpt-oss-120b(Groq、medium、general-v2、Strict JSON Schema)、Jevがtypesafe/jev-1.13-20260917(AI/ML API経由)です。

03 / JSONの形が違うと、アプリの設計も変わる

Decideは「選択キー」「整数の段階」「真偽値」を返します。たとえば返金依頼なら{"yes": true}。型を固定した分岐につなげやすい一方、確率や信頼度は返しません。

Jevは選択やスコアに加え、確率分布などを返します。返金依頼はnoulの数値です。Inboxでは測定前に0.5超をYes、スコアは最も近い整数(ちょうど中間は切り上げ)と固定して、同じ3項目で採点しました。元の値もそのまま残しています。

確率を使って人への確認ルートを設計したい場合、Jevの出力にはその材料があります。ただし、数値が実際の正解率にどれくらい対応するかという校正精度は今回未評価です。Decideの真偽値を0%や100%の信頼度として扱うこともできません。

04 / 動く画面で確かめる

字幕付き動画では、実測記録の読み込みと、自作画面から両APIへ実際に問い合わせた操作を紹介します。API待ち時間も収録しています。動画中の1回の応答時間は、上の24件の中央値とは別の測定です。

teai Inbox 実演・比較結果。字幕映像、音声なし。画面は公開前ビルドを使用し、判定リクエストは本番APIへ送信。

05 / 分かったことと、まだ分からないこと

以前の5モデル比較でDecideにGPT-OSS 120Bを採用したのは、厳密なJSON出力と推定原価を重視したためでした。Qwen比で約1/6という原価の話は、今回のJevとの比較には適用できません。今回の結果では、Jevの速さも明確な選択材料です。

測定を追えるように

全24件・質問・期待値・48回の応答・集計(JSON)を公開しています。個人の問い合わせは含めず、合成した例のみ。APIキーやアカウント情報は含みません。

同じ入力を使うには、JSON内のquestionsと各cases[].stateを次の形で送ります。実行すると各モデル1回2crを消費します。

POST https://teai.io/v1/decisions
Authorization: Bearer $TEAI_API_KEY
Content-Type: application/json

{
  "model": "teai/decision-120b",
  "state": "二重に請求されました。至急、返金してください。",
  "questions": { "refund": {
    "type": "noul",
    "instructions": "Is a refund actually requested now?"
  }}
}

APIの最小例です。上の測定の再現には公開JSON内の3問をそのまま使ってください。Jevの場合はmodelをtypesafe/jevへ変更します。

自分の文章で試す →