意思決定

意思決定 (Jev)

データについて型を指定して質問すると、コードで扱える回答が得られます。yes の確率、選択肢からの回答、尺度上の位置を、調整された確率とともに、通常1秒以内に返します。TypeSafe 独自の API で提供されるため、TypeSafe の SDK は変更せずに使えます。

POST/v1/systemone
モデルID入力、1M トークンあたりTypeSafe の価格出力
Jev 1.14jev-1.14$0.024$0.042無料
Jev 1.13jev-1.13$0.035$0.042無料

Jev は TypeSafe の意思決定モデルです。TypeSafe はこれを System One モデルと呼んでいます。チャットモデルのように自然言語を理解しますが、文章を書く代わりに、指定した質問に答えます。jev-latest、jev-1.14.0、typesafe/jev-1.14 もモデル ID として使えます。jev-1.13 も、それ向けに調整したプロンプトで引き続き利用できます。

質問する

# pip install typesafe-sdk
from typesafe_sdk import Choice, Noul, Score, TypeSafeClient
with TypeSafeClient(
base_url="https://api.zurelay.com",
api_key="YOUR_ZURELAY_KEY",
model="jev-1.14",
) as client:
response = client.system_one(
state={"ticket": "I was charged twice for October, please refund one today."},
questions={
"refund": Noul(instructions="Is the customer asking for money back?"),
"team": Choice(
instructions="Which team should handle this?",
criteria={"billing": "Charges and refunds", "technical": "Bugs and outages"},
),
"urgency": Score(
instructions="How urgent is it?",
criteria=["can wait", "this week", "today"],
),
},
)
print(response.nouls["refund"].noul) # 0.98
print(response.choices["team"].choice) # billing
print(response.scores["urgency"].score) # 1.9

TypeSafe の SDK では、ベース URL を /v1 を含めずに https://api.zurelay.com に設定してください。/v1/systemone は SDK が追加します。環境変数 TYPESAFE_BASE_URL と TYPESAFE_API_KEY も使えます。どの HTTP クライアントでも方法は同じです。Zurelay のキーを Bearer トークンとして送信してください。

回答

レスポンス
{
"id": "req_8Kq2vXbN4tR7mWc1pLs9dYe3",
"model": "jev-1.14",
"answers": {
"refund": { "type": "noul", "noul": 0.98 },
"team": {
"type": "choice",
"choice": "billing",
"probabilities": { "billing": 1.0, "technical": 0.0 },
"confidence": 1.0
},
"urgency": {
"type": "score",
"score": 1.9,
"legend": { "0": "can wait", "1": "this week", "2": "today" },
"probabilities": { "0": 0.0, "1": 0.1, "2": 0.9 },
"confidence": 0.81
}
},
"usage": { "input_tokens": 396, "output_tokens": 61, "cost": 0.00001386 }
}

各回答は、質問に付けた名前の下に返されます。usage は課金対象となった量、cost は米ドルでの料金です。同じリクエストでも、呼び出すたびに回答が1~2ポイント異なることがあります。

パラメータ

modelstring必須
jev-1.14、jev-latest(同じモデル)、または jev-1.13。
statestring, object or array必須
判断対象の内容です。テキストのほか、レコード、チャットログ、アプリの現在の状態などの構造化データを指定できます。質問からフィールドを参照するときは、`ticket` のように名前をバックティックで囲みます。
questionsobject必須
質問ごとに任意の名前を付けます。回答は同じ名前の下に返されます。名前はモデルには送信されません。
各質問
typestring必須
noul、choice、または score。
instructionsstring, object or array必須
質問です。オブジェクトを使う場合は、1つのフィールドに質問を、ほかのフィールドに参照するデータを入れられます。
criteriaobject or array
choice(必須)では、最大255件の選択肢をオブジェクトで指定します。各選択肢には説明または null を設定します。score(必須)では、2~10段階の配列を低い順に指定します。noul(任意)では、yes と no の意味を true と false で指定します。

質問の種類

種別質問内容Answer
noulyes または no で答える質問noul:yes の確率(0~1)
choiceどの選択肢が当てはまるかchoice、各選択肢の probabilities、および confidence
score順序付きの尺度のどこに位置するかscore(段階の間の値も可)、legend、各段階の probabilities、および confidence

1つのリクエストに3種類すべてを混在させられます。質問を増やしても、コストは1問の場合とほとんど変わりません。状態を一度読み取り、すべての質問に並列で回答します。

制限

  • 1リクエストあたり、状態とすべての質問を合わせて最大64K トークンです。また、状態と最も長い質問の合計は最大32K トークンです。
  • テキストのみ対応しています。文字列、JSON オブジェクト、配列を指定できます。画像、PDF、音声は先にテキストに変換してください。
  • ストリーミングには対応していません。回答はまとめて返され、通常1秒以内に届きます。
  • 不正なリクエスト(instructions の欠落、段階が1つしかないスコアなど)は、モデルに届く前に 400 で拒否され、料金はかかりません。64K トークンを超えるリクエストも同様に、コード context_length_exceeded で拒否されます。

よい回答を得るには

Jev は指示を文字どおりに解釈します。条件を明確に書き、境界となるケースも判断基準に含めてください。件数の計算、算術計算、日付の比較はコードで行い、質問に必要な部分だけを状態として送信してください。選択肢の先頭を選びやすい傾向があるため、重要な判断では、選択肢の順序を変えても回答が変わらないか確認してください。

意思決定の料金

Jev は、Jev が数えた入力トークンに基づいて課金されます。入力には、状態と質問に加え、リクエストごとに約270トークンが含まれます。TypeSafe と同様、回答は無料です。約300トークンの短いリクエストなら約$0.00001、100万件で約$10です。各レスポンスの usage ヘッダーと x-zurelay-input-tokens ヘッダーで課金対象を確認できます。すべてのリクエストはリクエストログに記録され、失敗したリクエストには料金がかかりません。

ダッシュボードの プレイグラウンド で、自分のコンテンツと質問を試せます。Jev を選び、コンテンツを貼り付け、その横に質問を設定してください。Get code ボタンを押すと、同じリクエストのコードが Python、Node.js、または cURL で生成されます。

ご質問や不足している情報はありますか? サポートチームにお問い合わせください。通常1分以内にメールで回答します。