12k
All articles

¿Qué es Jev? Decisiones de IA rápidas sin generar texto

Conoce cómo Jev AI convierte datos de contexto en decisiones tipadas para enrutamiento y clasificación, con ejemplos de API, precios, límites y consejos de uso.

OpenReplay Team
OpenReplay Team
¿Qué es Jev? Decisiones de IA rápidas sin generar texto

Jev es un modelo de decisión de TypeSafe AI. Le envías un estado y un conjunto de preguntas tipadas, y te devuelve una respuesta estructurada con probabilidades para cada pregunta. No genera texto.

Si tu paso de enrutamiento es una chat completion que pide JSON y luego ejecuta json.loads dentro de un bloque try, ya conoces los costes: esperas a que se generen los tokens, pagas por ellos y, de vez en cuando, la salida no cumple tu esquema. Este artículo explica qué devuelve Jev, cómo es una petición contra el endpoint propio de TypeSafe y qué pasos de decisión de tu LLM puede asumir de forma realista.

Puntos clave

  • Jev es el primero de los modelos System One de TypeSafe AI. Se lanzó el 15 de septiembre de 2026 y responde a preguntas tipadas con valores estructurados, no con prosa.
  • Una petición a Jev tiene tres campos obligatorios de nivel superior: state, model y questions. La respuesta contiene un objeto answers indexado por los ids de tus preguntas, además del usage de tokens.
  • Jev ofrece tres tipos de pregunta para decisiones sobre texto. Choice elige una opción entre un máximo de 255, Score sitúa la entrada en una rúbrica ordenada de 2 a 10 niveles y Noul devuelve la probabilidad de que la respuesta a una pregunta de sí/no sea sí.
  • TypeSafe fija el precio de Jev en 0,042 dólares por millón de tokens de entrada, y los tokens de salida son gratuitos.
  • Las respuestas de Jev siempre proceden del espacio de respuestas definido en la petición. Eso elimina los errores de parseo y de esquema, pero no garantiza que las respuestas sean correctas.

¿Qué es Jev AI?

Jev es un modelo de TypeSafe AI que toma decisiones allí donde un LLM convencional escribiría texto, y es el primer modelo de una clase que TypeSafe denomina modelos System One. En su anuncio de lanzamiento, TypeSafe lo describió como una nueva clase de modelos de frontera diseñados para tomar decisiones rápidas y estructuradas que el software puede utilizar directamente. El nombre toma prestado el modo de pensamiento rápido e intuitivo del “Sistema 1” de Kahneman. El acceso se realiza mediante acceso anticipado.

¿Cómo convierte Jev el estado en respuestas tipadas?

Jev recibe un state (texto o JSON), un identificador de model y un mapa de questions, y devuelve una respuesta tipada por pregunta, cada una con sus probabilidades. Evalúa todas las preguntas en paralelo. La documentación de Noul señala que añadir preguntas a una petición apenas modifica el tiempo de respuesta. Los ids de las preguntas los eliges tú y no se envían al modelo.

La referencia de la API define tres tipos de pregunta para decisiones sobre texto. Un cuarto tipo, box, localiza una región en una imagen y solo está disponible mediante una cabecera experimental de activación voluntaria.

TipoCuándo usarloEntradasCampos devueltos
ChoiceLa respuesta es una entre varias opcionesinstructions, más criteria, que asigna a cada opción (hasta 255) una descripción o nullchoice, probabilities, confidence
ScoreLa respuesta es un grado en una escala ordenadainstructions, más criteria como array ordenado de 2 a 10 nivelesscore, legend (índice de nivel a etiqueta), probabilities, confidence
NoulLa respuesta es sí o noinstructions, criteria opcional con descripciones para true/falsenoul (probabilidad de 0 a 1)

Una respuesta Noul es un único número entre 0 y 1 y no incluye un valor de confianza independiente. Con solo dos resultados posibles, una única probabilidad describe ambos por completo.

Una petición y respuesta Noul

La siguiente petición plantea dos preguntas de sí/no sobre un único mensaje de soporte. Se envía a POST https://api.typesafe.ai/v1/systemone con un token bearer. Las peticiones usan el alias jev-latest, y la respuesta indica qué versión concreta atendió la llamada. La página de modelos muestra la versión a la que apunta actualmente el alias.

curl -X POST https://api.typesafe.ai/v1/systemone \
  -H "Authorization: Bearer $TYPESAFE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev-latest",
    "state": "My order arrived damaged and I want my money back.",
    "questions": {
      "wants_refund": {
        "type": "noul",
        "instructions": "Is the customer asking for a refund?"
      },
      "mentions_damage": {
        "type": "noul",
        "instructions": "Does the customer report a damaged item?",
        "criteria": {
          "true": "Describes the product as broken, damaged, or defective",
          "false": "No mention of physical damage"
        }
      }
    }
  }'

La respuesta sigue la estructura que se muestra a continuación. Las probabilidades y los recuentos de tokens son ilustrativos, no una salida real registrada. Los ejemplos registrados en la documentación de Noul de TypeSafe corresponden a salidas de jev-1.13.0.

{
  "model": "jev-1.14.0",
  "answers": {
    "wants_refund": { "type": "noul", "noul": 0.97 },
    "mentions_damage": { "type": "noul", "noul": 0.95 }
  },
  "usage": { "input_tokens": 120, "output_tokens": 2 }
}

output_tokens sigue apareciendo en usage aunque la salida no se facture. Cualquier cliente HTTP puede enviar este cuerpo. Según el quickstart, TypeSafe también ofrece un SDK de Python (pip install typesafe-sdk, que se importa como typesafe_sdk y se invoca mediante client.system_one), así como un SDK de JavaScript/TypeScript publicado como @typesafe-ai/sdk.

¿Cuándo conviene usar Jev para enrutamiento, clasificación y selección de herramientas?

Jev encaja en pasos de decisión con un espacio de respuestas finito: enrutar una petición, clasificar un ticket, puntuar contenido según una rúbrica o elegir una herramienta para un agente. Si tu código ya extrae una etiqueta o un número de una chat completion, ese paso es un buen candidato.

Asignar un mensaje de soporte a un equipo es una pregunta Choice, porque la respuesta es exactamente una entre varias opciones:

from typesafe_sdk import Choice, TypeSafeClient

TEAMS = {
    "billing": "Charges, invoices, refunds, payment methods",
    "technical": "Bugs, errors, outages, integration problems",
    "account": "Login, password resets, access, account settings",
}

def route_ticket(message: str) -> str:
    # TypeSafeClient reads TYPESAFE_API_KEY from the environment.
    with TypeSafeClient(model="jev-latest") as client:
        response = client.system_one(
            state=message,
            questions={
                "team": Choice(
                    instructions="Which team should handle this support message?",
                    criteria=TEAMS,
                ),
            },
        )
    answer = response.answers["team"]
    if answer.confidence < 0.8:
        return "triage"
    return answer.choice

La función devuelve una de las tres claves del diccionario o recurre a "triage", de modo que no hay ninguna cadena que validar. El umbral de 0,8 es un valor provisional que debes ajustar según tu propio tráfico, no una recomendación de TypeSafe. Para las preguntas Noul, la documentación de TypeSafe sugiere 0,7 y 0,3 como umbrales iniciales, y enviar a revisión humana los casos que queden en la franja intermedia.

El enrutamiento es también donde Jev se complementa con un gateway de modelos como 9router: el gateway envía las peticiones a los modelos, mientras que Jev toma la decisión de enrutamiento.

¿Qué no puede hacer Jev?

Jev no genera texto libre. Un pipeline que lo utilice para enrutar o clasificar un mensaje sigue necesitando un modelo generativo que redacte la respuesta. El anuncio de lanzamiento presenta la renuncia a la generación de texto como una concesión deliberada a cambio de velocidad y coste. En la práctica, esto significa que Jev elige el equipo, la herramienta o la prioridad, y un LLM sigue escribiendo el correo electrónico, el resumen o el código.

¿Cuáles son las limitaciones y advertencias de Jev?

Jev es un modelo propietario que se sirve desde la API alojada de TypeSafe. TypeSafe no ha publicado sus pesos. Las únicas palancas de las que dispones son las instructions y los criteria que escribas. El servicio está en acceso anticipado, así que cabe esperar cambios en la superficie de la API, las versiones del modelo y los precios. El propio anuncio de lanzamiento advierte que los precios pueden variar.

TypeSafe fija el precio de Jev en 0,042 dólares por millón de tokens de entrada, con la salida gratuita, y declara entre 70 y 500 milisegundos por llamada. Las cifras destacadas de 193,6 veces más rápido y 444,6 veces más barato proceden de las propias evaluaciones de flujos de trabajo de TypeSafe. Esas evaluaciones puntúan los modelos frente a las respuestas promediadas de dos LLM de referencia de gran tamaño, y TypeSafe describe esas mejoras como el extremo superior de lo que cabe esperar en la práctica. En ese mismo benchmark, Jev obtiene alrededor de un 68 %, lo que lo sitúa a la altura de los LLM de gama media. Esa cifra mide el grado de coincidencia con los modelos de referencia, no la precisión frente a datos de referencia etiquetados por humanos. Algunas pruebas independientes han arrojado resultados inferiores en determinadas tareas. En un benchmark público de phishing con 2000 correos electrónicos, Jev obtuvo un 62,6 % con una única pregunta de “¿es esto phishing?”, frente al 81,3 % de Claude Haiku 4.5. Haz un benchmark de tu propia tarea antes de sustituir nada.

Tipado no significa correcto. El espacio de respuestas restringe la salida, lo que elimina los fallos de esquema, pero Jev puede seguir eligiendo la opción equivocada con una confianza alta. Trata sus probabilidades como señales a las que aplicar umbrales, registrar y revisar.

Conclusión

Jev convierte un paso de decisión en una llamada a una función tipada: entran el estado y las preguntas, salen probabilidades y no hay nada que parsear. No sustituye a tu modelo generativo. Sustituye a las llamadas a LLM cuya única función es devolver una etiqueta. Un buen siguiente paso es tomar un prompt de clasificación o enrutamiento que ya tengas, reescribirlo como una pregunta Choice o Noul y ejecutar ambas versiones sobre la misma muestra de tráfico real antes de confiar en cualquiera de ellas.

Preguntas frecuentes

¿Debo usar Noul o Score para preguntas sobre grados, como el nivel de habilidad o la urgencia?

Usa Score. Noul devuelve únicamente la probabilidad de que la respuesta sea sí, por lo que 0,5 significa que el modelo está dividido, no que algo se sitúe en un nivel intermedio. La documentación de TypeSafe lo ilustra con la pregunta 'Is the candidate strong in Python?'. Cuatro currículos devolvieron valores Noul de 0,03, 0,14, 0,81 y 0,92. Un Score de cuatro niveles situó esos mismos currículos en 0,0, 1,0, 2,05 y 2,89, cada uno en un nivel definido por el desarrollador o muy cerca de él.

¿Cómo gestiono una decisión con más de 255 opciones en una pregunta Choice?

Divídela en dos fases. Un único Choice admite hasta 255 opciones. Para conjuntos más grandes, el anuncio de lanzamiento de TypeSafe describe cómo puntuar primero los candidatos de forma independiente y, después, ejecutar un Choice explícito sobre los mejores. TypeSafe indica que este enfoque es más lento que una única llamada. Las descripciones de las opciones forman parte de la petición, por lo que también cuentan para el límite de contexto de 64k tokens por petición.

¿Funciona Jev con el Vercel AI SDK?

Sí. Vercel ofrece el proveedor @ai-sdk/typesafe-ai, y Vercel AI Gateway incluye Jev con el id de modelo typesafe-ai/jev. Las llamadas pasan por una función experimental de AI SDK 7, por lo que su nombre y su estructura aún pueden cambiar. El proveedor renombra Noul como 'boolean' y devuelve la respuesta en un campo probability en lugar de noul, así que, si copias una pregunta de la documentación de TypeSafe, tendrás que cambiar su tipo de 'noul' a 'boolean'. Choice y Score conservan sus nombres.

¿Cuánta entrada puede contener una única petición a Jev?

Por defecto, una petición a Jev debe respetar dos límites: 64k tokens para el estado más todas las preguntas, y 32k tokens para el estado más cualquier pregunta individual. No existe un límite independiente para el número de preguntas que envíes. Enviar la cabecera TypeSafe-Danger-Zone-Long-Context con el valor true eleva ambos límites a 262k tokens en Jev 1.13 y 1.14. TypeSafe advierte que el contexto largo es más lento y menos preciso que los límites por defecto, así que actívalo solo en las peticiones que lo necesiten.

DevTools for the frontend

Gain Debugging Superpowers

Unleash the power of session replay to reproduce bugs, track slowdowns and uncover frustrations in your app. Get complete visibility into your frontend with OpenReplay — the most advanced open-source session replay tool for developers.

Star on GitHub12k

We use cookies to improve your experience. By using our site, you accept cookies.