Jev
TypeSafe Jev は判定モデルです。テキストは生成せず、あらかじめ定義された質問にのみ回答します。リクエストで判定対象のコンテンツと質問のセットを指定すると、モデルは質問ごとに構造化された回答とその確率を返します。プログラムはその結果に基づいて直接分岐処理を実行できます。
適用シナリオ
適している用途:
- 分類と振り分け:チケットを担当するチーム、ユーザーの意図の分類。
- 是非の判定:個人情報を含むかどうか、返金申請かどうか、プロンプトインジェクションかどうか。
- 評価と順位付け:緊急度、関連度、感情の強さ、および検索結果のフィルタリング。
- 大規模言語モデルの出力の品質チェック:回答が質問に沿っているか、規約に違反していないか。
適していない用途:
- テキスト、要約、翻訳、コードの生成。
- 画像の判定(Jev はテキストと JSON の入力のみに対応しています。画像の判定には GPT-6 Luna を使用してください)。
- 回答をあらかじめ選択肢や段階として列挙できない自由回答の質問。
「対話型の大規模言語モデル + JSON 出力」との比較:
クイックスタート
1. 接続情報を準備する:OfoxAI コンソール で API Key を作成し、以下の情報を使用します。
https://api.ofox.ai/v1typesafe/jev-latestjev-latest とも指定できます/v1/decisionsPOST。/v1/chat/completions は使用できません2. SDK をインストールする:OpenAI 公式の Python SDK で呼び出す場合は、client.decisions を含むバージョンをインストールする必要があります。
pip install -U openaiAttributeError: 'OpenAI' object has no attribute 'decisions' が発生する場合は、SDK のバージョンが古いため、上記のコマンドでアップグレードしてください(openai 3.31.0 で動作を確認済みです)。SDK を使用しない場合は、下記の cURL でも呼び出せます。3. 呼び出しを実行する:
Python
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、「どのチームが対応すべきか」には choice、「緊急度はどの程度か」には score を使用します。3 つの質問を同じリクエストに含めると、すべての回答が一度に返されます。
質問タイプを決定したら、質問の設計を参照して質問と選択肢を確認してください。
よくあるエラー
エラーの完全な一覧は 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)を使用してください。リクエスト形式は同じです。