リクエストとレスポンスを型定義する
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 };
}