Skip to Content
モデルの使い方Jev(TypeSafe)概要

Jev

TypeSafe Jev は判定モデルです。テキストは生成せず、あらかじめ定義された質問にのみ回答します。リクエストで判定対象のコンテンツと質問のセットを指定すると、モデルは質問ごとに構造化された回答とその確率を返します。プログラムはその結果に基づいて直接分岐処理を実行できます。

適用シナリオ

ポイント判定結果に応じてプログラムで異なる処理を実行する必要がある場合は Jev を、人が読むためのテキストを生成する必要がある場合は対話型の大規模言語モデルを使用します。

適している用途:

  • 分類と振り分け:チケットを担当するチーム、ユーザーの意図の分類。
  • 是非の判定:個人情報を含むかどうか、返金申請かどうか、プロンプトインジェクションかどうか。
  • 評価と順位付け:緊急度、関連度、感情の強さ、および検索結果のフィルタリング。
  • 大規模言語モデルの出力の品質チェック:回答が質問に沿っているか、規約に違反していないか。

適していない用途:

  • テキスト、要約、翻訳、コードの生成。
  • 画像の判定(Jev はテキストと JSON の入力のみに対応しています。画像の判定には GPT-6 Luna を使用してください)。
  • 回答をあらかじめ選択肢や段階として列挙できない自由回答の質問。

「対話型の大規模言語モデル + JSON 出力」との比較:

Jev対話型の大規模言語モデル + JSON 出力
返却内容あらかじめ指定した選択肢または段階に限られる選択肢以外の値を返す場合があり、追加の検証が必要
不確実性すべての回答に確率が付き、choice と score には信頼度も付く通常、利用可能な確率は提供されない
複数の質問1 回のリクエストでまとめて回答し、同一の入力を共有する1 つのプロンプトにまとめるか、複数回に分けて呼び出す必要がある
課金入力トークンのみ課金、出力は課金対象外入力・出力とも対話モデルの料金で課金

クイックスタート

1. 接続情報を準備する:OfoxAI コンソール で API Key を作成し、以下の情報を使用します。

接続情報
Base URLhttps://api.ofox.ai/v1
モデル IDtypesafe/jev-latestjev-latest とも指定できます
エンドポイント/v1/decisionsPOST。/v1/chat/completions は使用できません

2. SDK をインストールする:OpenAI 公式の Python SDK で呼び出す場合は、client.decisions を含むバージョンをインストールする必要があります。

Terminal
pip install -U openai
注意実行時に AttributeError: 'OpenAI' object has no attribute 'decisions' が発生する場合は、SDK のバージョンが古いため、上記のコマンドでアップグレードしてください(openai 3.31.0 で動作を確認済みです)。SDK を使用しない場合は、下記の cURL でも呼び出せます。

3. 呼び出しを実行する:

quickstart.py
import os from openai import OpenAI client = OpenAI(base_url="https://api.ofox.ai/v1", api_key=os.environ["OFOX_API_KEY"]) r = client.decisions.create( model="typesafe/jev-latest", input="Customer message: I was charged twice, nobody has answered my two emails, and I need a refund today.", questions=[{"type": "predicate", "name": "is_frustrated", "instructions": "Is the customer frustrated?"}], ) print(r.answers[0].probability) # 0.98

レスポンスの例:

{ "model": "typesafe/jev-latest", "answers": [{ "type": "predicate", "name": "is_frustrated", "probability": 0.98 }], "usage": { "prompt_tokens": 302, "completion_tokens": 23, "total_tokens": 325 } }

probability は回答が「はい」である確率を表します。0.98 は、顧客が不満を抱いている可能性が極めて高いとモデルが判定したことを意味します。input を実際のコンテンツに、questions を実際の質問に置き換えることで、自社の業務シナリオに適用できます。

質問タイプ

必要な結果の形式に応じて質問タイプを選択します。

必要な結果質問タイプ指定するフィールド返却フィールド
はい/いいえpredicate質問。任意で「はい」「いいえ」がそれぞれ何を指すかを説明する criteriaprobability:「はい」である確率
複数の選択肢から 1 つを選択choicechoices:2–255 個の選択肢choice、各選択肢の確率、confidence
程度の高低scorelevels:低い順に並べた 2–10 個の段階score、各段階の確率、confidence

例:「返金申請かどうか」には predicate、「どのチームが対応すべきか」には choice、「緊急度はどの程度か」には score を使用します。3 つの質問を同じリクエストに含めると、すべての回答が一度に返されます。

質問タイプを決定したら、質問の設計を参照して質問と選択肢を確認してください。

よくあるエラー

現象原因対処方法
AttributeError: 'OpenAI' object has no attribute 'decisions'OpenAI SDK のバージョンが古いpip install -U openai を実行してから再試行する
400 endpoint_not_supported、Please use /v1/decisions instead と表示されるJev を対話モデルとして /v1/chat/completions で呼び出した/v1/decisions を呼び出す
400 Invalid request payload/v1/decisions で TypeSafe ネイティブ形式(state、オブジェクト形式の questions)を使用したinput と配列形式の questions を使用するか、/typesafe/v1/systemone を呼び出す
400 questions are required for decisionquestions が空質問を 1 つ以上指定する
400 question "a" has kind choice and requires criteria optionschoice の質問に choices がない選択肢を追加する
400 Too many score levels. Must have at most 10 levels.score の段階が 10 を超えている段階を統合する
400 max_tokens_exceeded入力が 64K トークンを超えている長い文書を分割するか、関連する部分のみを渡す
400、エラーメッセージに input_image と Typesafe cannot read が含まれるJev に画像を渡した画像を削除するか、画像に対応したモデルを使用する
404 model_not_foundモデル ID が誤っているtypesafe/jev-latest を使用する
リクエストは成功するが、回答が明らかに誤っており、信頼度が高いchoice の選択肢が実際のケースを網羅していない「いずれにも該当しない」選択肢を追加し、選択肢の説明を補う。質問の設計を参照
回答に name がなく、質問と対応付けられない質問に name が設定されていないすべての質問に name を設定する

エラーの完全な一覧は Decisions API · よくあるエラーを参照してください。

公式ドキュメント

よくある質問

Jev と大規模言語モデルに JSON を出力させる方法の違いは何ですか?

Jev は指定された選択肢と段階の範囲内でのみ回答し、範囲外の値を返しません。すべての回答に確率が付き、choice と score には信頼度も付くため、そのまましきい値の設定に使用できます。大規模言語モデルの JSON 出力は追加の検証が必要であり、通常は利用可能な確率も提供されません。

/v1/decisions と /typesafe/v1/systemone のどちらを使用すべきですか?

新規プロジェクトでは、OpenAI SDK から直接呼び出せる /v1/decisions を推奨します。すでに TypeSafe SDK または公式のサンプルコードを使用しているプロジェクトでは、/typesafe/v1/systemone を使用でき、base URL の変更のみで移行できます。

Jev の課金方法を教えてください。

入力トークンのみが課金され、出力は課金対象外です。単価はモデルページを参照してください。同一リクエスト内の複数の質問は同一の入力を共有するため、質問を 1 回のリクエストにまとめることでコストを削減できます。

信頼度が高ければ、回答は必ず正しいのですか?

必ずしもそうとは限りません。選択肢が実際のケースを網羅していない場合でも、モデルは既存の選択肢から 1 つを選択し、信頼度が高くなる場合があります。そのため、choice の質問には「いずれにも該当しない」などの受け皿となる選択肢を設定し、人手でラベル付けしたサンプルで検証してください。

score が 1.43 の場合、何を意味しますか?

score は各段階の確率で重み付けして算出した値であり、段階は 0 から番号付けされます。1.43 は第 1 段階と第 2 段階の間で、第 1 段階に近いことを表します。各段階の具体的な確率は probabilities を参照してください。

英語以外のコンテンツに対応していますか?

対応しています。検証では、中国語のコンテンツに対して、質問を中国語で記述した場合と英語で記述した場合のいずれも利用できることを確認しています。

Jev は画像に対応していますか?

対応していません。Jev はテキストと JSON のみを受け付けます。画像の判定が必要な場合は、画像入力に対応した GPT-6 Luna(openai/gpt-6-luna)を使用してください。リクエスト形式は同じです。

最終更新日