実装ガイド / TypeScript

Jev TypeScript 実装:サーバー境界での型保護

ブラウザに API キーを露出させることなく、サーバー側で Jev 呼び出しを抽象化し、堅牢な Union 型としてビジネスロジックに提供します。

リクエストとレスポンスを型定義する

Zod や TypeScript の判別可能な Union 型(Discriminated Union)を定義し、Jev の返却値を製品ドメインの型へ確実に変換します。

明確な Fallback 型を用意する

タイムアウトや低信頼度時に undefined を返すのではなく、{ status: "fallback", reason: "low_confidence" } のような明確なバリアントを定義します。

API キーの漏洩を完全に防ぐ

認証トークンやモデル設定はすべてサーバーサイドの環境変数で管理し、クライアントには決して露出させない構成を徹底します。

TypeScript / サーバールート実装例
export async function evaluateDecision(state: Record<string, unknown>) {
  const res = await fetch("https://api.typesafe.ai/v1/systemone", {
    method: "POST",
    headers: {
      "Authorization": "Bearer " + process.env.TYPESAFE_API_KEY,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ state, questions }),
  });

  if (!res.ok) {
    return { status: "fallback" as const, reason: "network_error" };
  }

  const data = await res.json();
  return { status: "ok" as const, decision: data };
}

TypeScript 連携の関連情報