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呼び出しへまとめられます。Choice/Score/Noul/複数質問の使い方
問い合わせの振り分けや文章チェックに使える
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は質問と分類先の定義です。
- Stateに、分類したい文章を貼り付けます。最初は個人情報を含まない架空の問い合わせで試します。
- Questionsに、下のJSONを貼り付けます。JSONは質問設定を記述する形式です。
billingなどの名前が、結果として受け取る分類ラベルです。 - モデル欄でjev-latestを確認し、Run requestを押します。
- Responseで、分類結果・各候補の確率・Confidenceを確認します。
{
"department": {
"type": "choice",
"instructions": "この問い合わせを最初に受け付ける担当窓口を1つ選んでください。文章中の依頼内容を分類してください。",
"criteria": {
"billing": "料金、二重請求、支払い、返金に関する問い合わせ。",
"technical": "ログイン、アプリの動作、エラーに関する問い合わせ。",
"other": "上記のどちらにも該当しない内容、または用件の情報が足りない問い合わせ。"
}
}
}
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日確認。
- TypeSafe AI:Introducing System One Models & Jev(2026年9月15日)— 発表と位置付け。
- Introduction、Primitives — 入出力と質問形式。
- Choice、Score、Noul、Confidence — 返答の読み方。
- Example use cases、Intent routing — 用途と処理の振り分け。
- Quick start、Python SDK、Agent skill — 開始手順と開発支援。
- Models、Jev 1.13 jaggedness — 料金、モデル、日本語利用と既知の弱点。
- Astral:Installing uv — Python実行ツールの準備。










