Todas las integracionesIntegración · SDK

Inicio rápido de Jev en TypeScript

Jev encaja de forma natural con TypeScript: declaras la forma que quieres y la recibes de vuelta, tipada. Aquí está todo el camino — instalar, key, un ejemplo funcional y los tres primitivos — sin nada que leer más allá del código.

Cada ejemplo necesita una jv_live_ key. Consigue una en la página de precios, expórtala como JEV_API_KEY y ya estás listo. Obtener una key →

Si ya estás recurriendo a Jev desde TypeScript, probablemente quieres lo mismo que TypeScript te da en todo lo demás: un contrato. Declaras la decisión que necesitas — una choice entre estas keys, un score en esta escala, un sí/no calibrado — y recibes exactamente esa forma, nunca un párrafo suelto que tengas que parsear ni un JSON que a veces sale mal formado. Ese es todo el atractivo de una llamada de IA "type-safe", y por eso Jev encaja en una base de código tipada sin el parseo defensivo que escribirías alrededor de un LLM en crudo.

1. Instalar

npm i @typesafe-ai/sdk

2. Pon tu key

Consigue una jv_live_ key en la página de precios y ponla en tu entorno. El SDK la lee automáticamente, así que nada sensible acaba en tu código fuente.

export TYPESAFE_API_KEY=jv_live_...

3. Un ejemplo funcional de 30 líneas

Una llamada, dos respuestas tipadas — una choice sobre la que enrutar y un sí/no calibrado sobre el que poner un umbral:

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"

Fíjate en que no hay parseo de salida, ni validación de esquema, ni reintentos por JSON malo. resp.answers.topic.choice es una de tus criteria keys porque el modelo no puede devolver otra cosa, y resp.answers.urgent.noul es un número entre 0 y 1. Ese es el contrato de tipos haciendo su trabajo.

Los tres primitivos

Puedes preguntar varias a la vez en una sola llamada — el ejemplo de arriba pregunta dos — y cada una vuelve tipada de forma independiente. Eso reduce los viajes de ida y vuelta: una petición puede clasificar, puntuar y gatear el mismo input a la vez.

Una nota sobre la calibración

Las probabilidades que devuelve Jev están calibradas, lo que significa que un 0,8 debería acertar alrededor del 80% de las veces en muchas llamadas — pero la calibración es una propiedad del agregado, no una garantía sobre ninguna respuesta individual. Así que fija umbrales contra tus propios datos etiquetados en lugar de suponer que un número en crudo es "suficientemente seguro". La ventaja de un modelo alojado y fijado es que, una vez que ajustas un umbral, sigue siendo significativo entre despliegues en vez de irse a la deriva bajo tus pies.

¿Prefieres sin SDK?

Es un solo POST — llama al gateway directamente con fetch y una key Bearer:

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();

¿Necesitas batch, endpoints listos para usar o la referencia completa de campos? Los docs cubren toda la superficie.

Preguntas frecuentes

¿Necesito el SDK de TypeSafe para usar Jev desde TypeScript?

No. El SDK es un envoltorio de conveniencia ligero; Jev es un solo POST, así que puedes llamarlo con fetch puro y una key Bearer. El SDK solo te da helpers tipados y lee tu key del entorno.

¿La salida de Jev es realmente type-safe?

Sí — una pregunta choice devuelve una de las criteria keys que definiste y nada más, y un score devuelve un número en tu escala. El modelo no puede emitir un tipo inválido, así que te ahorras el parseo defensivo que escribirías alrededor de un LLM en crudo.

¿En qué se diferencia llamar a Jev de llamar a un LLM desde TypeScript?

Un LLM devuelve texto libre (o JSON que debes validar y a veces reintentar). Jev devuelve un valor tipado y calibrado — una key, un número o una probabilidad — en 70–500ms, así que ramificas sobre él directamente. Usa un LLM para escribir; usa Jev para decidir.

¿Cuánto cuesta una llamada a Jev?

Alrededor de $0,001 por decisión. La facturación es solo sobre tokens de entrada a unos $0,42 por millón, con salida gratis — así que hacer varias preguntas en una llamada es barato.

¿Puedo hacer varias preguntas en una petición?

Sí. Pasa varias entradas en el mapa questions y cada una vuelve tipada de forma independiente en resp.answers, lo que te mantiene en un solo viaje de ida y vuelta.

Ver también: Docs y referencia de la API · Cómo usar la API · Jev vs. un LLM

Prueba Jev antes de integrarlo

Ejecuta una decisión real y tipada en el navegador — gratis, sin registro — y luego pon tu key en el ejemplo de arriba.

▶ Prueba Jev gratisObtener una clave de API →
Inicio rápido de Jev en TypeScript — decisiones tipadas en 30 líneas · Jev by TypeSafe AI