un tronc
生成AI

判定だけ返すAI「Jev」を試す|受信メールの差出人91件の仕分けが1円未満・47秒で終わった

こんにちは!アントロンのNaokoです。

受信メールの仕分けのような単純な判断にまで、ChatGPTやClaudeのような大きなAIを使っていませんか?件数が増えると、費用と待ち時間が気になってきます。

2026年9月、判断だけを返すAI「Jev」(TypeSafe AI)を自分の受信トレイで試しました。差出人91件の仕分けを英語と日本語の2通りで流し、合計182回で費用は0.0059ドル(約0.9円)、かかった時間は47秒、エラーは0件でした。

この記事では、何ができて、何ができなかったかを実際の数字で紹介します。

Jevは「選んだ答え」と「確信度」だけを返す

Jevは文章を書きません。こちらが用意した選択肢から1つを選び、その答えにどれだけ自信があるか(確信度、0〜1)を返します。

  • 返ってくる形は choice(選ぶ)・score(点をつける)・noul(0〜1の度合い)の3種類
  • 入力はテキストだけ。画像は読めない
  • 料金は入力100万トークンあたり0.042ドル。出力は無料

たとえば「打ち合わせは明日15時に変更になりました」という1文に、「日時の変更/あいさつだけ/それ以外」の3択で聞くと、「日時の変更」を確信度1で返しました。理由の説明は返ってきません。

答えの形が決まっているので、パース処理(AIの文章から答えを取り出す処理)を書かずに済みます。

受信メールの差出人91件を仕分けた

差出人ごとに、名前・メールアドレス・2週間に届いた通数・最近の件名を渡し、次の4つを1回でまとめて聞きました。

  • 配信メールか
  • 解約すると困る通知も来るか
  • 人が書いたメールか
  • 種別は何か(6択)

同じ内容を英語と日本語で書いて比べた結果です。

  • 種別の答えが英語と日本語で一致したのは84件(92.3%)
  • 確信度の平均は英語0.872、日本語0.842
  • 日本語は、同じ内容でも入力トークンが32%多い(費用も増える)

答えが割れた7件は、すべて「2週間で1通しか届いていない」差出人でした。確信度も0.22〜0.70と低く出ていたので、確信度0.7未満を人が見ることにすれば、割れたものはほぼ拾えます。

公式ドキュメントには、英語向けに作られていて日本語は精度が落ちる、と書かれています。今回の仕分けでは、日本語でも使える結果でした。

うまくいかなかった判断もあった

同じ日に、「このメルマガは解約してよいか」を直接聞く実験もしました。正解には、8月に私が実際に決めた27件(解約16件・残す11件)を使いました。

結果は、英語版が27件すべてに「解約してよい」と答え、正解率59.3%。何も考えずに全部「解約」と答えた場合と同じ数字です。日本語版も59.3%でした。

考えられる理由は、正解が私の好みの中にあったことです。読みたいから残しているメルマガは、差出人の名前とアドレスだけでは見分けられません。ただ、この実験では先の仕分けと比べて、聞く問いの数と渡す材料を同時に変えてしまったため、どちらが効いたのかは切り分けられていません。

この経験から、Jevには「配信メールか」「解約すると困る通知も来るか」のような材料を聞き、最後の判断は自分で組み立てるようにしています。

事業で使うなら、向いているのはこんな判断

試した結果から、次の条件がそろうときに向いていると考えています。

  • 正解が自分の好みではなく、外から決まる
  • 選択肢が決まっていて、文章だけで判断できる
  • 外したときに気づける(確信度が低いものを人が見る、など)

STUDIOの編集画面で「言葉で指した要素を1つ選ぶ」ことも試しました。10問中7問が正解で、正解のときの確信度は0.85〜0.99、外したときは0.36〜0.61でした。確信度0.8未満を人が見ることにすれば、外れを人の確認に回せます。

試すときの最小のコード

エンジニアに頼むときや、自分で試すときの参考に、1問だけ聞くコードを載せます。SDKを入れなくても動きます。APIキーはコードに書かず、環境変数 TYPESAFE_API_KEY に入れています。

const res = await fetch('https://api.typesafe.ai/v1/systemone', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer ' + process.env.TYPESAFE_API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    model: 'jev-latest',
    state: { text: '打ち合わせは明日15時に変更になりました' },
    questions: {
      kind: {
        type: 'choice',
        instructions: 'このメッセージは何ですか',
        criteria: {
          schedule_change: '日時の変更',
          greeting: 'あいさつだけ',
          other: 'それ以外',
        },
      },
    },
  }),
});
const data = await res.json();
console.log(data.answers.kind.choice, data.answers.kind.confidence);

実行すると schedule_change 1 と出ます。

つなぐ前に、APIキーなしで403、無効なキーで401、正しいキーで200が返ることを確かめておくと、あとで動かなくなったときにキーの問題かどうかを切り分けられます。

仕様は公式ドキュメントにまとまっています。Jevの全体像は、あきらパパさんの解説記事が詳しいです。

まずは、毎日手で仕分けているものを1つ選び、選択肢を3つ書き出してみてください。それがJevに渡す問いになります。

AIを業務のどこに入れるかを相談したい方は、お問い合わせフォームからどうぞ。

最後まで読んでくださりありがとうございました!

コメント