Proporcionado por TypeSafe
API de Jev
Jev es una API de inferencia rápida creada para clasificación, puntuación y toma de decisiones estructuradas. Puede evaluar texto o JSON según tus instrucciones, elegir entre varias opciones, asignar puntuaciones o emitir juicios de sí/no con probabilidades de confianza. Está diseñada para flujos de trabajo que necesitan decisiones fiables sin la latencia ni el coste de tokens de la generación de texto extenso de los LLM. El campo model selecciona la versión: jev-1.13.0, jev-1.14.0 (publicada el 2026-10-14), jev-latest (el alias estable y predeterminado) o jev-preview (la versión más reciente); cada respuesta indica la versión que respondió. Las entradas de imagen, las preguntas con cuadros y el contexto largo son funciones experimentales en TypeSafe y requieren encabezados de activación voluntaria que este endpoint no envía.
Cómo ejecutarlo
Paso 1Configurar
Una vez: pega esto en el chat de tu agente. Skill instala el CLI e inicia sesión por sí solo. Si tu agente no puede usar un shell, conéctalo mediante MCP en su lugar.
set up https://glasser.ai/SKILL.md
Show me how to use the TypeSafe endpoint /v1/systemone on Glasser.glasser run -p typesafe -e '/v1/systemone' -i '{"state":"I was charged twice for my subscription this month. Please fix this ASAP.","questions":{"urgency":{"type":"score","criteria":["Can wait a week","Answer within a day","Answer within an hour"],"instructions":"How urgently does this ticket need a human?"},"category":{"type":"choice","criteria":{"other":"Anything else","billing":"Charges, invoices, refunds or payment methods","technical":"The product is broken, slow or unavailable"},"instructions":"What is this support ticket about?"},"asks_for_refund":{"type":"noul","instructions":"The customer is asking for money back."}}}' --endpoint-version 1Usa la versión de endpoint 1. Comprueba el precio actual antes de ejecutar. Instala e inicia sesión primero en Comenzar.
Una vez por Run:
IDEMPOTENCY_KEY=$(uuidgen)Ejecútalo y copia este mismo bloque para volver a enviarlo:
curl -X POST https://api.glasser.ai/v1/runs \
-H "Authorization: Bearer gl_..." \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-H "Content-Type: application/json" \
-d '{"provider":"typesafe","endpoint":"/v1/systemone","input":{"state":"I was charged twice for my subscription this month. Please fix this ASAP.","questions":{"urgency":{"type":"score","criteria":["Can wait a week","Answer within a day","Answer within an hour"],"instructions":"How urgently does this ticket need a human?"},"category":{"type":"choice","criteria":{"other":"Anything else","billing":"Charges, invoices, refunds or payment methods","technical":"The product is broken, slow or unavailable"},"instructions":"What is this support ticket about?"},"asks_for_refund":{"type":"noul","instructions":"The customer is asking for money back."}}},"endpoint_version":1}'Reutiliza la misma Idempotency-Key para volver a enviarlo: el segundo envío es una lectura del primer Run. Una clave nueva crea un Run y un Charge nuevos. Usa la versión de endpoint 1; comprueba el precio actual antes de ejecutar.
Paso 2Prueba una tarea de ejemplo específica
Cuando necesites derivar un ticket de soporte, puedes clasificarlo como una solicitud de facturación, técnica o de acceso a la cuenta según las definiciones de categorías de tu equipo.
Copia este prompt en tu agente para clasificar un ticket de soporte.
Use typesafe:/v1/systemone on Glasser.
Classify this support ticket into billing, technical or account access using my category definitions.Estructura del endpoint
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"state",
"questions"
],
"properties": {
"model": {
"type": "string",
"maxLength": 64,
"minLength": 1
},
"state": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "object"
},
{
"type": "array"
}
]
},
"questions": {
"type": "object",
"additionalProperties": {
"type": "object",
"required": [
"type",
"instructions"
],
"properties": {
"type": {
"enum": [
"noul",
"choice",
"score"
],
"type": "string"
},
"criteria": {
"anyOf": [
{
"type": "object"
},
{
"type": "array"
}
]
},
"instructions": {
"anyOf": [
{
"type": "string",
"maxLength": 20000,
"minLength": 1
},
{
"type": "object"
},
{
"type": "array"
}
]
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"state": "I was charged twice for my subscription this month. Please fix this ASAP.",
"questions": {
"urgency": {
"type": "score",
"criteria": [
"Can wait a week",
"Answer within a day",
"Answer within an hour"
],
"instructions": "How urgently does this ticket need a human?"
},
"category": {
"type": "choice",
"criteria": {
"other": "Anything else",
"billing": "Charges, invoices, refunds or payment methods",
"technical": "The product is broken, slow or unavailable"
},
"instructions": "What is this support ticket about?"
},
"asks_for_refund": {
"type": "noul",
"instructions": "The customer is asking for money back."
}
}
}Este endpoint no publica ningún esquema de salida. Recibes el cuerpo de respuesta propio del proveedor de datos, sin cambios — no garantizamos una estructura que no podemos asegurar.
Cómo funcionan los precios
| Por 1M tokens de entrada | Según los tokens de entrada procesados. No se cobra cuando no se devuelven datos. | $0.0462 |
|---|---|---|
| Máximo por Run | El cargo total no superará este importe. | $0.002957 |
| Error del proveedor de datos | El proveedor de datos no pudo responder. | $0.00 |
| Tiempo de espera agotado | El Run superó su límite de tiempo. | $0.00 |
| Error interno | Un error interno impidió completar la operación. | $0.00 |