Jevとは?文章の分類・採点に使うAIの概要と使い方

Jevは文章を読んで分類や判定を返すAI

TypeSafe AIは2026年9月15日、文章を読んで分類や判定を返すAIモデル「Jev」を早期アクセスとして公開しました。問い合わせの担当部署を選ぶ、文章を基準に沿って採点する、といった処理を業務アプリへ組み込むためのモデルです。TypeSafe AIの発表

たとえば、届いた問い合わせを毎回読んで「請求」「技術」「その他」に振り分ける作業。Jevには、問い合わせの文章と分類先の定義を渡します。すると、選んだ分類先と各候補の確率が返り、アプリ側で担当チームへ回せます。

この記事では、Jevの用途と3種類の返答を整理し、日本語の問い合わせを実際に判定した結果を紹介します。そのうえで、ブラウザとPythonから使い始める手順を説明します。

Jevを組み込んだ問い合わせ処理の流れ

1.文章を渡す

問い合わせや文書など、判定に必要な内容を入力します。

2.質問と基準を決める

「どの担当へ回すか」と、分類先ごとの意味を指定します。

3.結果を処理につなぐ

分類先と確率を受け取り、振り分けや人への確認をアプリが実行します。

TypeSafe AIは、このようにソフトウェアが使う判定を返すモデルを「System Oneモデル」と呼んでいます。Jevに任せる判断を小さく定義し、実際の通知や処理の順番はプログラムで組み立てます。公式のIntroduction

返答は「選ぶ・採点する・確率で答える」の3種類

Jevでは、欲しい答えに合わせて質問の形式を選びます。担当部署のような分類先ならChoice、緊急度のような段階評価ならScore、条件を満たすか確かめるならNoulを使います。

同じ文章を、必要な答えの形で判定する

Choice:選択肢から選ぶ

質問例:どの担当窓口が受け付ける?
指定するもの:請求・技術・その他と、それぞれの説明。
返るもの:選択結果、各候補の確率、確信度。

Score:段階に沿って採点する

質問例:対応をどれくらい急いでいる?
指定するもの:「急ぎの記載なし」「早めを希望」「本日中を希望」など、順番のある基準。
返るもの:点数、各段階の確率、確信度。

Noul:条件が成り立つ確率を返す

質問例:本日中の対応を明示している?
指定するもの:はい・いいえで判断できる条件。
返るもの:「はい」と判断する確率を0〜1で表した数値。

Scoreの点数は、各段階の確率から計算されるため、小数になることもあります。Noulには独立したconfidence項目がなく、返された確率をそのまま読みます。3種類の質問は、同じ文章に対して1回のAPI呼び出しへまとめられます。ChoiceScoreNoul複数質問の使い方

問い合わせの振り分けや文章チェックに使える

Jevを使いやすいのは、文章の意味を読んだあとに、限られた候補や基準で判断する作業です。次のように「Jevが判定する部分」と「結果を受け取って動く部分」を分けると、導入箇所を決められます。

用途Jevへ渡す内容と質問結果を使う処理
問い合わせの振り分け顧客の文章から、担当窓口を選ぶ。アプリが担当チームへ割り当てる。
文書の分類文書の本文から、決めたテーマを選ぶ。アプリがラベルを付け、検索や集計に使う。
文章のチェック依頼文と返信案を渡し、質問に答えているか判定する。確認が必要な返信案を人へ回す。
AI処理の振り分け依頼の内容から、使うツールや専門処理を選ぶ。プログラムが選ばれた処理を呼び出す。

問い合わせの分類後に返信文も作りたい場合は、文章を生成するAIへ担当分野と問い合わせを渡す構成にできます。返金のような操作は、Jevの分類結果を受け取ったアプリ側で、利用者の権限や業務ルールを確認して実行します。公式の用途例処理の振り分けパターン

日本語の問い合わせ3件を実際に分類してみた

2026年9月21日、Jev 1.13.0へ架空の問い合わせを3件送りました。各リクエストで、担当窓口のChoice、緊急度のScore、本日中の対応を求めているかを確かめるNoulをまとめて実行しています。実行環境はmacOS 27・Python 3.13.14です。

緊急度は、0が「急ぎの記載なし」、1が「早めの対応を希望」、2が「本日中または今すぐの対応を希望」です。以下は、それぞれ1回実行して得た値です。

3件の入力と、APIから返った判定結果

A.用件と期限が明確

月額プランの料金が二重に請求されています。重複分の返金を本日中にお願いします。

分類:請求
分類の確信度:1.00
緊急度:2.00 / 2
本日中の対応を求めていると判定した確率:0.98

B.請求と技術の用件が混在

二重請求の確認をお願いします。それから、アプリにもログインできなくなりました。どちらも早めに対応してもらえると助かります。

分類:請求
分類の確信度:0.42
緊急度:1.00 / 2
本日中の対応を求めていると判定した確率:0.08

C.用件の情報が足りない

先ほどの件を確認してもらえますか。よろしくお願いします。

分類:その他
分類の確信度:1.00
緊急度:0.05 / 2
本日中の対応を求めていると判定した確率:0.04

Aは請求に分類され、緊急度も2.00になりました。Bも請求が選ばれましたが、分類の確信度は0.42です。候補ごとの確率を見ると、請求0.61、技術0.13、その他0.26に分かれています。分類名だけを使うと、この判断のばらつきを見落とします。

Cでは「その他」が選ばれ、その確信度は1.00でした。今回の「その他」には、用件の情報が足りない問い合わせも含めています。実務で使うなら、Cを「内容を追加で確認する処理」へつなぐ設計にできます。

確率と確信度は、別々の意味で読む

probabilitiesは候補ごとの確率です。confidence(確信度)は、その確率がどれだけ一つの答えに集中しているかを0〜1へまとめた値です。Bの「請求の確率0.61」と「確信度0.42」は、それぞれ異なる情報を表しています。確信度の公式説明

高い確信度は、与えた選択肢の中で答えがはっきりしていることを示します。Cのように、情報不足という選択肢へ高い確信度が付く場合もあります。自動処理では、選ばれた分類と確信度を一緒に使う必要があります。

分類のあとに行う処理を決める

明確に分類できた問い合わせ

請求・技術の分類と、自分のデータで確認した確信度の基準を使って担当へ回す。

分類が割れた問い合わせ

候補ごとの確率も見て、人が担当先を確認する。

情報不足の問い合わせ

担当者が元の問い合わせを読み、用件の情報が足りなければ利用者へ尋ねる。

今回の3件は、返答の読み方を確認するための例です。導入時は、自分の業務で正解を確認できる文章を集め、誤った振り分けと人へ確認を回す件数を見ながら基準を決めます。

まずは公式Playgroundで分類を試す

ブラウザから試す場合は、公式Playgroundへログインします。画面が開いたら、StateとQuestionsの2つを入力します。Stateは判定する文章、Questionsは質問と分類先の定義です。

  1. Stateに、分類したい文章を貼り付けます。最初は個人情報を含まない架空の問い合わせで試します。
  2. Questionsに、下のJSONを貼り付けます。JSONは質問設定を記述する形式です。billingなどの名前が、結果として受け取る分類ラベルです。
  3. モデル欄でjev-latestを確認し、Run requestを押します。
  4. Responseで、分類結果・各候補の確率・Confidenceを確認します。
{
  "department": {
    "type": "choice",
    "instructions": "この問い合わせを最初に受け付ける担当窓口を1つ選んでください。文章中の依頼内容を分類してください。",
    "criteria": {
      "billing": "料金、二重請求、支払い、返金に関する問い合わせ。",
      "technical": "ログイン、アプリの動作、エラーに関する問い合わせ。",
      "other": "上記のどちらにも該当しない内容、または用件の情報が足りない問い合わせ。"
    }
  }
}
Jevの公式Playgroundで、請求63%、その他21%、技術16%、確信度45%と表示された分類結果
混在する問い合わせBを、公式PlaygroundでChoiceのみの質問として別に実行した結果。macOS 27・Chrome、2026年9月21日。結果部分を切り抜いて掲載。

Playgroundでは、入力文や分類先の説明を変えたときに、返答がどう動くかを見られます。たとえば「その他」に含めるケースを明示すると、分類先が決まらない問い合わせの受け皿を用意できます。操作の入口は公式Quick startにも載っています。

PythonからJevを呼び出してアプリへ組み込む

同じ判定を繰り返し使うなら、アプリから呼び出す窓口であるAPIを利用します。ここでは、APIを呼び出すためのライブラリであるTypeSafeのPython SDKを使って、問い合わせAを分類します。

以下はPython 3.10以上と、Pythonの実行環境を管理するuvを用意した環境向けです。macOS 27・Python 3.13.14・typesafe-sdk 0.7.0で実行を確認しました。

1.ローカルで試すためのAPIキーを設定する

ここでは、自分のPCで試すために.envファイルへAPIキーを保存します。実行時にuvがこのファイルを読み込み、TypeSafeのSDKへ環境変数として渡します。

公式コンソールのAPI Keysでキーを作成します。Gitを使う場合は、キーを保存する前に、作業フォルダの.gitignore.envを追加します。そのうえで、同じフォルダに.envファイルを作り、次の値を自分のキーへ置き換えて保存してください。APIの利用料金も、コンソールで確認します。

TYPESAFE_API_KEY=自分のAPIキー

.envにはキーが平文で保存されます。ファイルの公開・共有を避け、手元の実行環境で管理してください。

2.分類するプログラムを保存する

次のコードを、.envと同じフォルダへclassify.pyという名前で保存します。SDKは環境変数TYPESAFE_API_KEYからキーを読み込みます。公式Python SDK

from typesafe_sdk import Choice, TypeSafeClient

with TypeSafeClient(model="jev-1.13.0") as client:
    response = client.system_one(
        state="月額プランの料金が二重に請求されています。重複分の返金を本日中にお願いします。",
        questions={
            "department": Choice(
                instructions="この問い合わせを最初に受け付ける担当窓口を1つ選んでください。文章中の依頼内容を分類してください。",
                criteria={
                    "billing": "料金、二重請求、支払い、返金に関する問い合わせ。",
                    "technical": "ログイン、アプリの動作、エラーに関する問い合わせ。",
                    "other": "上記のどちらにも該当しない内容、または用件の情報が足りない問い合わせ。",
                },
            ),
        },
    )

answer = response.answers["department"]
print(answer.choice)
print(answer.probabilities)
print(answer.confidence)

stateが文章、instructionsが質問、criteriaが分類先の定義です。departmentは、この質問の結果を取り出すために付けた名前です。

3.実行して結果を受け取る

ターミナルで作業フォルダへ移動し、次を実行します。--env-fileでキーを読み込み、--withで今回使うSDKのバージョンを指定します。

uv run --with typesafe-sdk==0.7.0 --env-file .env python classify.py

上のコードを実行した結果は、次のとおりでした。

billing
{'technical': 0.0, 'other': 0.0, 'billing': 1.0}
1.0

1行目が分類先、2行目が候補ごとの確率、3行目が確信度です。アプリへ組み込むときは、printしている部分で担当への割り当てや確認待ちの登録を行います。

コード例では、検証条件をそろえるためモデルをjev-1.13.0に固定しています。jev-latestは、更新に応じて参照するモデルが変わります。運用で判断基準を調整したら、使ったモデルのバージョンも記録しておくと、更新前後を比べられます。モデル名の公式説明

本番運用ではデプロイ先のシークレット管理を使う

アプリをサーバーで公開するときは、デプロイ先のシークレット管理機能を使います。これは、APIキーなどの秘密情報を保管し、参照できる人やサービスを制限する仕組みです。キーを登録したうえで、サーバー側の実行環境へ渡します。環境変数として渡せるサービスなら、変数名をTYPESAFE_API_KEYにすると、上のSDKコードをそのまま利用できます。

Webアプリでは、利用者のブラウザから自分のサーバーへリクエストを送り、サーバーがキーを使ってJevを呼び出す構成にします。キーはサーバー側で管理し、ブラウザへ配信するJavaScriptや公開ファイルへの混入を避けます。シークレットへのアクセスを必要最小限に絞り、漏えいした場合はキーを失効・再発行して登録値を更新します。OWASPのシークレット管理指針

CodexやClaude Codeには公式Skillもある

コードを書くAIエージェント向けに、APIの使い方や質問の設計を伝えるtypesafe-ai Skillが公開されています。Codexなどへ導入する場合は、Node.jsとnpmを用意してから、npmに含まれるnpxで次のコマンドを実行し、導入先のエージェントを選びます。-gを付けると複数プロジェクトで共通利用できます。公式Skillの導入手順

npx skills add typesafe-ai/skills --skill typesafe-ai -g

導入後は「TypeSafe Skillを使って、問い合わせを分類する処理を作って」と依頼できます。APIキーは、上の手順と同様に実行環境へ設定します。

料金と日本語で使う際の確認点

2026年9月21日に確認したJev 1.13の公式料金は、入力100万トークンあたり0.042米ドル、出力は無料です。トークンは文章をモデルが処理する際の単位で、質問や分類基準も入力側の使用量に含まれます。公式Models

問い合わせ3件をそれぞれ3種類の質問で判定したAPI検証では、入力は合計2,223トークンでした。上記の単価で計算すると約0.000093米ドルです。これは3件の入力使用量から計算した料金の目安で、SDKの追加確認とPlaygroundの操作分は別です。

日本語の利用では、業務で実際に使う文章を確認用に用意するところから始めます。公式文書では、主な学習言語は英語で、他の言語では性能に差があると説明されています。今回の例に加え、略語や敬語、複数の用件が混ざる文章も含めて、振り分けの正しさを確認します。

任せたい処理組み合わせ方
金額の計算や日付の前後比較計算はプログラムで行い、Jevには文章の意味に関する判断を任せる。
長い文書の判定質問に必要な部分を先に取り出し、その内容を渡す。
重要な操作へつながる分類分類結果に加えて、業務ルールと人による確認を組み合わせる。

計算、日付比較、不要な情報が多い長文は、Jev 1.13の公式文書でも注意する対象に挙げられています。入力の中に判定を誘導する文章が入る場合も、実際の使用例で確認が必要です。Jev 1.13の既知の弱点

最初に試すなら、担当窓口や文書ラベルのように、正解を人が確認できる分類が取り組みやすいと思います。まずは候補を提案する用途で使い、誤分類と確認待ちの件数を見ながら、自動化する範囲を広げていく方法です。

参考資料

公式資料は2026年9月21日確認。