すべての連携連携 · SDK

Jev TypeScript クイックスタート

Jev は TypeScript にしっくり馴染みます:欲しい形を宣言すれば、型付きで返ってきます。全体の流れはこれだけ — インストール、キー、動く例、そして 3 つのプリミティブ — コード以外に読むものはありません。

どの例にも jv_live_ key が必要です。pricing ページで取得し、JEV_API_KEY としてエクスポートすれば準備完了です。 キーを取得 →

すでに TypeScript から Jev を使おうとしているなら、あなたが欲しいのは TypeScript が他のあらゆる場面で与えてくれるものと同じ:契約です。必要な判断を宣言し — これらの key の中から choice、このスケールで score、校正済みの yes/no — その形をそのまま受け取ります。解析すべき余計な段落も、たまに壊れる JSON も返ってきません。それが "type-safe" な AI 呼び出しの全てであり、Jev が素の LLM の周りに書く防御的なパースなしに型付きコードベースに収まる理由です。

1. インストール

npm i @typesafe-ai/sdk

2. キーを設定

pricing ページで jv_live_ key を取得し、環境変数に入れます。SDK が自動で読み取るので、機密情報がソースに入り込みません。

export TYPESAFE_API_KEY=jv_live_...

3. 30 行の動く例

1 回の呼び出し、2 つの型付きの答え — ルーティングに使える choice と、しきい値を設定できる校正済みの yes/no:

import { TypeSafe } from "@typesafe-ai/sdk";

const client = new TypeSafe(); // reads TYPESAFE_API_KEY

const resp = await client.systemOne({
  model: "jev-latest",
  state: "Customer: I was charged twice and I am furious.",
  questions: {
    topic: {
      type: "choice",
      instructions: "What is the issue about?",
      criteria: { billing: "money problems", bug: "broken product" },
    },
    urgent: {
      type: "noul",
      instructions: "Escalate to a human now?",
    },
  },
});

// typed, calibrated — branch on it directly
if (resp.answers.urgent.noul > 0.7) escalate(ticket);
routeTo(resp.answers.topic.choice); // "billing" | "bug"

出力のパースも、スキーマ検証も、壊れた JSON へのリトライもないことに注目してください。resp.answers.topic.choice は、モデルがそれ以外を返せないので、あなたの criteria key のいずれかであり、resp.answers.urgent.noul は 0 から 1 の数値です。それが型契約の仕事です。

3 つのプリミティブ

1 回の呼び出しで複数まとめて尋ねられます — 上の例では 2 つ尋ねています — それぞれ独立に型付きで返ります。これで往復が減ります:1 リクエストで同じ入力を分類・採点・ゲートできます。

校正についての注意

Jev が返す確率は校正済みです。つまり多数の呼び出しにわたって 0.8 はおよそ 80% の割合で正しいはず — ただし校正は全体の性質であり、個々の答えの保証ではありません。だから生の数値が "十分に自信がある" と決めつけず、自分のラベル付きデータに対してしきい値を設定してください。ホスト型で固定バージョンのモデルの利点は、いったんしきい値を調整すれば、デプロイをまたいでも意味を保ち、足元で漂流しないことです。

SDK なしがいい?

POST 1 回です — fetch と Bearer key でゲートを直接叩きます:

const r = await fetch("https://jevtypesafeai.com/api/v1/decide", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    Authorization: `Bearer ${process.env.JEV_API_KEY}`,
  },
  body: JSON.stringify({ state, questions }),
});
const { answers } = await r.json();

バッチ、既製の endpoints、または完全なフィールドリファレンスが必要?docs が全体をカバーしています。

よくある質問

TypeScript から Jev を使うのに TypeSafe SDK は必要?

いいえ。SDK は薄い便利ラッパーにすぎません。Jev は POST 1 回なので、素の fetch と Bearer key で呼べます。SDK は型付きヘルパーを提供し、環境からキーを読むだけです。

Jev の出力は本当に type-safe?

はい — choice の質問はあなたが定義した criteria key の 1 つだけを返し、score はあなたのスケール上の数値を返します。モデルは無効な型を出せないので、素の LLM の周りに書く防御的パースを省けます。

TypeScript から Jev を呼ぶのと LLM を呼ぶのはどう違う?

LLM は自由テキスト(または検証やときにリトライが必要な JSON)を返します。Jev は 70–500ms で型付き・校正済みの値 — key、数値、または確率 — を返すので、直接分岐できます。書くには LLM を、決めるには Jev を。

Jev 呼び出しのコストは?

1 判断あたり約 $0.001。課金は入力トークンのみで約 100 万あたり $0.42、出力は無料 — なので 1 回の呼び出しで複数の質問をしても安上がりです。

1 リクエストで複数の質問を尋ねられる?

はい。questions マップに複数のエントリを渡せば、それぞれ resp.answers 内で独立に型付きで返るので、往復は 1 回で済みます。

関連: API ドキュメント & リファレンス · API の使い方 · Jev と LLM の比較

組み込む前に Jev を試す

ブラウザで本物の型付き判断を実行 — 無料、登録不要 — それから上の例にあなたのキーを入れましょう。

▶ Jev を無料で試すAPI キーを取得する →
Jev TypeScript クイックスタート — 30 行で型付き判断 · Jev by TypeSafe AI