Jev AI

Jev AI · API alojada

API de Jev para clasificar, enrutar y puntuar

Envía texto y preguntas tipadas a Jev AI y recibe decisiones estructuradas en JSON. Copia el prompt de configuración en tu agente de programación, crea una clave y verifica la conexión.

Crear clave de APIVer precios de la API

Las llamadas a la API usan primero la cuenta de tokens y aplican el multiplicador de cada modelo. Si los tokens no alcanzan, toda la llamada se cobra con el precio en créditos del modelo. Los tokens de salida son gratis.

Jev AI es un servicio independiente. Usa una clave de Jev AI con el endpoint /api/v1/systemone, compatible con TypeSafe.

¿Comparando alternativas? Mira Jev frente a OpenJev, Djev, Laya y Semif.

1

Empieza aquí

Copia un prompt para tu agente de programación

Pégalo en el agente que trabaja en tu aplicación. Cubre cómo actualizar un cliente existente del SDK oficial de TypeSafe, configurar la URL base y la clave de Jev AI, y comprobar la conexión antes de la inferencia.

El prompt está en inglés para que el agente lo siga tal cual.

Integrate Jev AI into this project. Inspect the existing code and read https://jev-ai.pro/docs first, especially #official-sdk for setup and #errors for failure handling.

Connection details: base URL https://jev-ai.pro/api; decision endpoint POST https://jev-ai.pro/api/v1/systemone; header "Authorization: Bearer $JEV_AI_API_KEY" with a key created at https://jev-ai.pro/jev-api; default model jev-latest.

If using TypeSafe's official SDK (@typesafe-ai/sdk), reuse the existing client and explicitly set baseURL to https://jev-ai.pro/api with a Jev AI key. Changing only the key is not enough. TypeSafe publishes the SDK; Jev AI provides the compatible endpoint.

Keep JEV_AI_API_KEY server-side; never put it in browser code, logs, commits or chat. Tell me where to configure it locally and in deployment.

Follow the docs for request/response formats, retries and model limits. Start with jev-latest, verify the actual destination, and check GET https://jev-ai.pro/api/v1/models without inference. Then show me how to make one small decision call using my balance.

Después, crea una clave de Jev AI abajo y añádela donde te indique tu agente. El prompt le pide al agente que guarde la clave solo en el servidor.

2

Tus claves de la API de Jev

Crea una clave para esta integración. Guárdala en el entorno del servidor de tu aplicación como JEV_AI_API_KEY y nunca la pegues en el chat del agente. ¿Es tu primera clave? Lee la guía paso a paso de la clave de la API de Jev (en inglés).

Inicia sesión para crear una clave. Los créditos de bienvenida y de check-in pagan las solicitudes web y el respaldo de la API. Los tokens comprados pagan el uso de entrada de la API.

3

Tu primera llamada a la API

  1. Inicia sesión y crea una clave arriba.
  2. Ejecuta este ejemplo mínimo en una terminal Bash o Zsh. Escribe tu clave cuando aparezca la solicitud oculta. La solicitud consume saldo según las reglas de facturación de abajo.
  3. Busca un objeto answers en la respuesta y luego comprueba aquí tu conexión.

¿Trabajas con un agente de programación o con el SDK de TypeSafe? Copia el prompt de configuración y deja que configure la URL base y la clave por ti.

Comparar planes de la API
{
printf 'Paste your API key, then press Enter (input is hidden): '
read -rs JEV_AI_API_KEY
printf '\n'
export JEV_AI_API_KEY
curl --fail-with-body https://jev-ai.pro/api/v1/systemone \
  -H "Authorization: Bearer $JEV_AI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"state":"My payment failed. Please help.","questions":{"urgent":{"type":"noul","instructions":"Does this message need urgent support?"}}}'
unset JEV_AI_API_KEY
}

Las llamadas a la API usan primero tokens y, si no alcanzan, el precio en créditos del modelo. Los tokens de salida son gratis. Crear una clave y comprobar el estado no ejecutan el modelo.

Endpoint

POST https://jev-ai.pro/api/v1/systemone
Authorization: Bearer <JEV_AI_API_KEY>
Content-Type: application/json

Solicitud

curl https://jev-ai.pro/api/v1/systemone \
  -H "Authorization: Bearer $JEV_AI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "state": "Help! My payouts have been failing for 3 days.",
    "model": "jev-latest",
    "questions": {
      "is_urgent": { "type": "noul", "instructions": "Does this convey urgency?" },
      "department": {
        "type": "choice",
        "instructions": "Which team should handle this?",
        "criteria": { "billing": "Payments and refunds", "technical": "Bugs and outages", "sales": "Pricing" }
      },
      "frustration": {
        "type": "score",
        "instructions": "How frustrated is the customer?",
        "criteria": ["Calm", "Frustrated", "Very angry"]
      }
    }
  }'

Respuesta

{
  "model": "jev-1.13.0",
  "answers": {
    "is_urgent": { "type": "noul", "noul": 0.95 },
    "department": {
      "type": "choice", "choice": "billing", "confidence": 0.98,
      "probabilities": { "billing": 0.99, "technical": 0.01, "sales": 0.0 }
    },
    "frustration": {
      "type": "score", "score": 1.04, "confidence": 0.94,
      "legend": { "0": "Calm", "1": "Frustrated", "2": "Very angry" },
      "probabilities": { "0": 0.0, "1": 0.96, "2": 0.04 }
    }
  },
  "usage": { "input_tokens": 379, "output_tokens": 70 }
}

Cada respuesta llega bajo el id de pregunta que elegiste. Las respuestas choice y score incluyen probabilities y una confidence entre 0 y 1; una respuesta noul es la probabilidad de «sí».

SDK oficial de TypeSafe

@typesafe-ai/sdk lo publica TypeSafe. Jev AI es un servicio independiente que ofrece un endpoint alojado compatible; Jev AI no publica este SDK.

¿Ya usas el SDK oficial de TypeSafe? Cambia la clave de Jev AI y también la URL base. Si solo cambias la clave, las solicitudes siguen yendo al servicio de TypeSafe que el SDK usa por defecto. Las claves y saldos de Jev AI son independientes de los de TypeSafe.

En JavaScript / TypeScript, define baseURL: 'https://jev-ai.pro/api'. El SDK añade /v1/systemone, así que no incluyas /v1 ni la ruta completa en la URL base. La solicitud final debe llegar a https://jev-ai.pro/api/v1/systemone.

// Official TypeSafe SDK, published by TypeSafe — @typesafe-ai/sdk 0.6.0
// Server-side JavaScript / TypeScript using the Jev AI compatible endpoint
import { TypeSafeClient, choice } from '@typesafe-ai/sdk'

const apiKey = process.env.JEV_AI_API_KEY
if (!apiKey) throw new Error('Set JEV_AI_API_KEY on your server')

const client = new TypeSafeClient({
  apiKey,
  baseURL: 'https://jev-ai.pro/api', // Required, including for existing SDK users
  retry: { maxRetries: 0 }, // Avoid replaying a request with an uncertain outcome
})

// The SDK appends /v1/systemone to baseURL.
const response = await client.systemOne({
  model: 'jev-latest',
  state: { document: 'I was charged twice. Please fix this ASAP.' },
  questions: {
    category: choice('What is this ticket about?', { billing: null, technical: null, other: null }),
  },
})
console.log(response.answers.category.choice)

El ejemplo desactiva los reintentos automáticos para no repetir una solicitud cuyo resultado es incierto. Antes de hacer una llamada de decisión que consuma saldo, sigue la lista de comprobación de conexión del SDK de TypeSafe (en inglés).

Probado con @typesafe-ai/sdk 0.6.0. GET /api/v1/models lista los nombres de los modelos y GET /api/v1/credits devuelve creditsRemaining y paidInputTokensRemaining. Los campos de créditos antiguos siguen disponibles por compatibilidad.

Llamar a un juez guardado

El editor usa por defecto el formato oficial: state, model y questions completos, portables entre Jev AI y TypeSafe con solo cambiar el endpoint y la clave. Elige ID de juez guardado para usar el atajo exclusivo de Jev AI que ves abajo; TypeSafe no reconoce estos ID.

Crea y gestiona tus jueces, abre uno y elige «API code» para obtener un ejemplo listo para copiar. Usa una clave de API de la misma cuenta.

POST /api/v1/systemone
{
  "judgeId": "YOUR_SAVED_JUDGE_ID",
  "revision": 1,
  "state": "New text to evaluate"
}

Envía judgeId en lugar de questions. Cada llamada aplica las reglas guardadas a tu nuevo state; la respuesta y la facturación por tokens son las mismas que en una llamada normal.

revision es opcional. Inclúyelo para que las llamadas se rechacen con HTTP 409 si las reglas cambian; omítelo para usar siempre la última versión guardada. Las cabeceras X-Jev-Judge-Id y X-Jev-Judge-Revision identifican las reglas usadas. Los jueces eliminados o inaccesibles devuelven HTTP 404.

Contexto web en tiempo real

Jev no navega por internet. POST /api/v1/web-context busca en la web tu pregunta de sí/no, añade los resultados al state de Jev como evidencia y devuelve la respuesta de Jev con y sin esa evidencia. Pruébalo primero en el navegador.

POST https://jev-ai.pro/api/v1/web-context
Authorization: Bearer <JEV_AI_API_KEY>
Content-Type: application/json

{
  "question": "Has OpenAI released GPT-6?",
  "query": "OpenAI releases GPT-6 announcement",
  "criteria": {
    "yes": "OpenAI has publicly released a model named GPT-6",
    "no": "No model named GPT-6 has been released"
  },
  "num_results": 6,
  "attribution": false
}
{
  "decision": "yes",
  "confidence": 0.88,
  "with_web": { "answer": { "type": "choice", "choice": "yes", "probabilities": { "yes": 0.88, "no": 0.12 }, "confidence": 0.88 }, "usage": { ... } },
  "without_web": { "answer": { "type": "choice", "choice": "no", ... }, "usage": { ... } },
  "sources": [{ "title": "...", "url": "https://...", "publishedDate": "2026-09-10T00:00:00.000Z", "highlights": ["..."] }],
  "source_weights": null,
  "usage": { "input_tokens": 2140, "output_tokens": 12, "jev_calls": 2, "web_search": true },
  "latency": { "search_ms": 560, "jev_ms": 410 }
}

Solo question es obligatorio. query toma por defecto la pregunta y criteria, una regla genérica de sí/no. num_results admite de 1 a 10 (6 por defecto). Con attribution: true obtienes source_weights: cuánto baja la probabilidad ganadora al quitar cada fuente. Vuelve a ejecutar Jev una vez por fuente, así que esos tokens de entrada también se facturan.

Para aportar tu propia evidencia, envía sources (hasta 10 objetos con title, url, publishedDate y highlights). No se hace ninguna búsqueda ni se cobra la tarifa de búsqueda.

Facturación: los tokens de entrada reales de todas las llamadas a Jev, más 170.000 tokens por cada búsqueda web. Si los tokens no alcanzan, la solicitud cuesta 2 créditos (1 crédito con tus propias sources). Las solicitudes fallidas no se cobran.

Compara Jev con otros modelos de decisión

¿Aún eliges modelo? Revisa el acceso por API, las opciones de alojamiento y el contexto de los benchmarks antes de integrarlo. Estas comparativas están en inglés.

  • Resultados de JevBench — la clasificación independiente que citan estas comparativas y cómo leerla.
  • Jev vs Imajev-4B — Jev alojado frente a un modelo abierto de 4B que también lee fotos.
  • Jev vs decider-4b — Jev alojado frente a una reconstrucción abierta y rápida sobre Qwen3.5-4B.
  • Jev vs JevK5 — Jev alojado frente a una alternativa de pesos abiertos sobre Qwen3.5-4B.
  • Jev vs Cygnet — Jev alojado frente a Gemma 4 12B congelado, décimo en la tabla de pesos abiertos de JevBench.
  • Jev vs Winnow — Jev alojado frente a un modelo local que también conversa y lee imágenes.
  • Jev vs OpenJev — Jev alojado frente a los proyectos OpenJev y las opciones de autoalojamiento.
  • Jev vs Djev — capacidades del modelo de decisión y opciones de integración.
  • Jev vs Laya — diferencias entre modelos y contexto de los benchmarks.
  • Jev vs Semif — diferencias entre modelos y opciones de despliegue.
  • Jev vs LLM — en qué se diferencia un modelo de decisión de un LLM conversacional y de un clasificador BERT.
  • ¿Ejecutar Jev en local? — el estado del código abierto y las alternativas autoalojadas en una tabla.

Estas guías comparan modelos de decisión. Laya Beta puede usar este mismo endpoint cuando aparece en GET /api/v1/models; los demás modelos comparados no se ofrecen en este endpoint.

Modelos, límites y facturación

Conoce Laya English y Multilingual · Solicitud y límites de la API de Laya (en inglés). Ambos usan tu clave de Jev AI y el endpoint de arriba.

Mercury Decide, el modelo de decisión de Inception, también funciona en este endpoint: define model como mercury-decide. Acepta hasta 32.768 tokens por solicitud y se factura igual que Jev. Referencia de la API de Mercury Decide (en inglés).

GPT-6 Luna, el modelo detrás de la Decisions API de OpenAI, también funciona aquí: define model como gpt-6-luna. Lee texto, JSON y hasta 4 imágenes incrustadas, y se factura con su multiplicador. Referencia de la API de GPT-6 Luna (en inglés).

Define model como laya-english o laya-multilingual para usar Laya Beta. Si lo omites, se usa jev-latest. Esto también se aplica al usar un judgeId guardado.

Laya acepta 512 tokens en total por pregunta en English y 1.024 en Multilingual, incluidos el state, las instrucciones, las etiquetas y el texto de enmarcado. Cada etiqueta tiene un límite de 48 tokens y la pregunta junto con las etiquetas tiene además un presupuesto propio de cada checkpoint. Una entrada demasiado larga devuelve 422 sin cargo; nunca se recorta en silencio. El uso cuenta la secuencia de entrada de cada pregunta, incluido el state repetido. Se aplica la facturación actual de la cuenta, con cero tokens de salida.

Modelosjev-latest, jev-preview, jev-1.13.0, laya-english, laya-multilingual, mercury-decide, clef, clef-flash, gpt-6-luna (los alias de Jev apuntan a jev-1.13.0; Laya Beta, Mercury Decide y GPT-6 Luna requieren una conexión configurada. Consulta la disponibilidad en GET /api/v1/models.)
Tipos de preguntanoul (sí/no), choice, score · hasta 64 por solicitud
EntradaUn string, un objeto JSON o un array; Clef y GPT-6 Luna admiten además hasta 4 imágenes incrustadas · cuerpo de la solicitud de hasta 256 KB · contexto del modelo Jev de 64k tokens; Mercury Decide, 32.768 tokens; límites de Laya arriba
Límites por preguntaHasta 255 opciones por Choice y 10 niveles por Score en Jev. El state de Jev más la pregunta más larga deben caber en 32k tokens. Laya aplica los límites más estrictos de arriba.
PrecioLas llamadas a la API descuentan tokens de entrada × el multiplicador del modelo elegido; los tokens de salida son gratis. Si los tokens no alcanzan, toda la llamada pasa al precio en créditos del modelo. Las herramientas web usan primero créditos y después tokens. Consulta los multiplicadores en la página de precios.
SaldoGET /api/v1/credits devuelve por separado el saldo de créditos y el de tokens. X-Jev-Billing vale tokens, credits, credits-fallback o tokens-fallback. X-Jev-Credits-Charged y X-Jev-Paid-Input-Tokens-Used indican el coste de la llamada, y X-Jev-Tokens-Remaining, los tokens disponibles. Las solicitudes se reservan temporalmente antes de ejecutarse y se liquidan según el uso real de entrada. Si ninguna de las dos cuentas cubre la solicitud, falla con 402 y sin cargo.
Límite de velocidad1.000 solicitudes por minuto por cuenta; 429 con Retry-After cuando Jev está ocupado.
Errores401 clave incorrecta · 402 sin saldo · 422 solicitud no válida · 429 reduce el ritmo · 502/504 fallo del proveedor (no se factura)