Jevとは?日本語の問い合わせ分類を試してみた【実行コード付き】

執筆・制作:何でも自作する人(運営者について)

Jev / AI / PowerShell / ロリポップ


Jevは、文章の意味や文脈をもとに分類や評価を行う、判定に特化したAIモデルです。 たとえば、問い合わせの文章から担当部署を選んだり、対応の優先度を評価したりできます。

今回はロリポップ!AIゲートウェイを使って、実際に日本語の問い合わせを分類してみました。WindowsのPowerShellで試せるコードも掲載しています。登録から実行までの手順に加えて、返ってきた結果の読み方と、通常料金ならいくらになるかを紹介します。

Jevとは何ができるAIなのか

Jevは、米TypeSafe AIが開発したモデルです。文章や判断基準を渡すと、選択結果やスコアなど、プログラムがそのまま扱える形式で答えを返します。

たとえば問い合わせ対応では、「この問い合わせを配送・支払い・その他のどの担当に回すか」を選ばせ、その結果に応じてアプリ側で処理を分けられます。

判断の形式使い道の例
はい・いいえの判断至急の対応が必要かを判定する
選択肢からの分類問い合わせを担当部署へ振り分ける
段階に沿った評価対応の優先度をスコアで表す

結果には判断の不確かさを扱うための確率も含まれます。今回は、このうち「選択肢からの分類」を試します。

👉 Jevを開発するTypeSafe AIの公式サイト

今回使ったサービスと無料期間

この記事で実際に試した日は2026年9月19日です。 無料キャンペーンは9月18日〜24日で、登録した日から1週間という意味ではありません。対象は typesafe/jev-latest、期間中の入力・出力トークンが無料になります。終了後は入力100万トークンあたり0.042米ドル、出力無料という案内です。

👉 Jevの無料提供についてのお知らせ(ロリポップ!)

今回Jevにさせること

今回のゴールは、問い合わせの文章を入力して、担当を3択から選んでもらうことです。

「商品が届きません」という文章を送り、配送担当を表す delivery が返るかを確認します。

選択肢の名前今回決めた意味
delivery配送に関する問い合わせ
billing料金や支払いに関する問い合わせ
otherそれ以外の問い合わせ

この英語の名前は、コード内で設定する選択肢です。Jevの結果にも同じ名前が使われます。

APIは、プログラムからサービスを呼び出すための窓口です。この記事ではPowerShellから問い合わせを送り、その返事を画面に表示します。

1. Googleアカウントでログインする

ロリポップ!AIゲートウェイを開き、今回はGoogleアカウントでログインしました。

👉 ロリポップ!AIゲートウェイ

ログイン後は「プロジェクト一覧」が表示され、「デフォルト」というプロジェクトがありました。この時点のクレジット残高は0円です。

ログイン後のプロジェクト一覧。デフォルトのプロジェクトとクレジット0円が表示されている

「デフォルト」のカードをクリックすると、プロジェクトの概要が開きます。

プロジェクト概要のクイックスタートにAPIキーを発行するボタンがある

2. APIキーを発行する

概要画面の「APIキーを発行する」をクリックします。ここでキーが作られるわけではなく、まずAPIキーの管理画面へ移動しました。

APIキーの管理画面。まだキーはなく、右上に発行ボタンがある

管理画面の右上にある「+ APIキーを発行する」をクリックします。

今回は次の内容で発行しました。

項目設定した値
APIキー名jev-handson
ルールなし
有効期限30日

APIキー名をjev-handson、ルールをなし、有効期限を30日に設定した画面

APIキー名は用途が分かる任意の名前にできます。キーの有効期限30日と、Jevの無料期間は別です。

「発行する」を押すとAPIキーが表示されます。画面には一度しか表示されないという案内があるので、閉じる前に安全な場所へ保存します。APIキーは利用者を認証する秘密の値なので、記事やスクリーンショットに載せる際は隠します。

APIキー発行完了画面。キーの値は黒塗りしている

3. Jev用のドキュメントを開く

ドキュメントの「機能」から「型付き確率的判断」を開きます。

👉 型付き確率的判断を使う(ロリポップ!公式ドキュメント)

Jevの呼び出し先は /v1/systemone です。概要画面のクイックスタートにあるチャット用のサンプルとは呼び出し先が異なるため、以下のJev用コードを使います。

記事のコードでは、利用するモデルを typesafe/jev-latest に指定しています。

4. PowerShellから問い合わせを送る

Windowsのスタートメニューで「PowerShell」を検索して開きます。今回の操作では、Pythonや追加のライブラリはインストールしていません。

APIキーを入力する

まず、次の1行だけを貼り付けてEnterを押します。

$secureKey = Read-Host "APIキー" -AsSecureString

APIキー: と表示されたら、保存したキーを貼り付けてEnterを押します。入力したキーは伏せ字になり、文字そのものは表示されません。

判定する文章と選択肢を送る

APIキーの入力が終わったら、次のコードをまとめて貼り付けて実行します。

$credential = [System.Net.NetworkCredential]::new("", $secureKey)

$body = @{
    model = "typesafe/jev-latest"
    state = "注文した商品がまだ届きません。配送状況を教えてください。"
    questions = @{
        department = @{
            type = "choice"
            instructions = "この問い合わせに対応する担当を選んでください。"
            criteria = @{
                delivery = "配送に関する問い合わせ"
                billing  = "料金や支払いに関する問い合わせ"
                other    = "それ以外の問い合わせ"
            }
        }
    }
} | ConvertTo-Json -Depth 10

try {
    $result = Invoke-RestMethod `
        -Uri "https://ai-gateway.lolipop.jp/v1/systemone" `
        -Method Post `
        -Headers @{ Authorization = "Bearer $($credential.Password)" } `
        -ContentType "application/json; charset=utf-8" `
        -Body ([System.Text.Encoding]::UTF8.GetBytes($body))

    $result | ConvertTo-Json -Depth 20
}
finally {
    Remove-Variable credential, secureKey -ErrorAction SilentlyContinue
}

最初に押さえる項目は次の4つです。

項目何を指定しているか
state判定してほしい問い合わせの文章
type = "choice"選択肢から選ぶ形式
instructions何を判断してほしいかという指示
criteria選択肢の名前と、それぞれの意味

department は今回の質問に付けた名前です。結果にも同じ名前が付くので、どの質問への答えかが分かります。

5. 返ってきた結果を読む

最初の実行では、次の結果が返りました。JSONという、項目名と値を組み合わせた形式です。

PowerShellに返ったJevの結果。choiceはdelivery、入力396トークン、出力38トークン

担当の分類結果は、choice の値で確認できます。

"choice": "delivery"

「この問い合わせは配送担当に振り分ける」という結果です。 delivery は、コード内で配送担当に付けた選択肢の名前です。

その下の probabilities は、候補ごとの確率を表しています。

"probabilities": {
  "other": 0,
  "billing": 0,
  "delivery": 1
}

今回は配送が1、その他と支払いが0でした。1は100%に相当する表示ですが、実際の正解を保証するものではありません。

confidence は、候補への確率がどれだけ集中しているかを表す値です。今回は配送に集中しているので1になっています。選ばれた候補の確率そのものとは別の項目です。

最後の usage は、処理した文章量を数えるトークンの使用量です。input_tokens: 396 は入力が396トークンだったことを表します。料金の計算方法は後半で説明します。

表示された項目今回の値読み方
modeltypesafe/jev-latest応答したモデル
choicedelivery選ばれた担当
input_tokens396入力側のトークン数
output_tokens38出力側のトークン数

6. 文章を変えて結果を比べる

次は、コードの state の行だけを変更しました。

    state = "商品は届きましたが、クレジットカードに同じ金額が2回請求されています。"

今度は配送ではなく、支払い担当になりそうな文章です。選択肢や判断の指示は変えません。

手順4のAPIキー入力からもう一度実行し、続いて state を変更したコード全体を実行します。 実行のたびにキーを入れた変数が削除されるため、再入力が必要です。

実際に返った結果から、分類部分を抜き出すと次のようになりました。

"department": {
  "type": "choice",
  "choice": "billing",
  "confidence": 1,
  "probabilities": {
    "delivery": 0,
    "other": 0,
    "billing": 1
  }
}

今度は billing、つまり料金・支払い担当が選ばれました。

入力した文章実際に返った分類
商品が届かないので、配送状況を知りたいdelivery(配送)
商品は届いたが、同じ金額が2回請求されているbilling(料金・支払い)

2つ目の文章にも「商品」「届きました」という言葉がありますが、結果は支払い担当でした。今回試した2例では、問い合わせの主題に合った分類になっています。

7. 管理画面で使用状況を確認する

ロリポップ!AIゲートウェイの管理画面へ戻り、「使用状況」を開きました。

使用状況の画面。利用額0円、リクエスト数3、トークン数1309と表示されている

最終的な表示は、3リクエスト・1,309トークン・利用額0円でした。

配送に関する文章を2回、支払いに関する文章を1回実行した記録です。

入力した文章実行回数入力トークン/回出力トークン/回合計トークン
配送の問い合わせ239638868
支払いの問い合わせ140338441
合計3——1,309

無料キャンペーン期間中の今回は、クレジット残高0円の状態から実行でき、使用状況でも利用額0円を確認できました。

通常料金なら今回の3回分はいくらか

ロリポップ!の案内では、無料期間終了後は入力100万トークンあたり0.042米ドルで、出力は無料です。画面には入力と出力を合わせた1,309トークンが表示されていますが、料金計算に使うのは入力側です。

トークンは文章を処理する単位で、画面に出た文字数そのものではありません。送る内容には問い合わせ文だけでなく、判断の指示や選択肢も含まれます。

最初の問い合わせを2回、変更後を1回実行したときの使用量から計算します。

項目計算合計
入力トークン396 × 2 + 4031,195
出力トークン38 × 3114(出力料金は無料)
1,195 ÷ 1,000,000 × 0.042米ドル
= 0.00005019米ドル

通常料金でも、今回の3回分は約0.00005米ドルです。 円で大きさをつかむために仮に1米ドル=150円とすると、約0.0075円、1銭未満に相当します。

これは2026年9月19日に確認した公表単価による単純計算です。150円は換算例で、実際の請求時の為替や端数処理を再現した金額ではありません。今回、管理画面で実際に確認できた利用額は無料期間中の0円です。

👉 無料期間終了後の料金案内(ロリポップ!)

分類結果をアプリに組み込むには

アプリに組み込むなら、delivery が返ったら配送担当の一覧へ、billing なら支払い担当の一覧へ送る、という処理につなげられます。今回は、その前段階の分類と結果表示までを試しました。

2種類の文章はどちらも期待した担当に分類されました。曖昧な問い合わせや複数の用件が混ざる場合の精度、応答速度の測定は、今回の検証には含めていません。