Fornecido por TypeSafe
API Jev
Jev é uma API de inferência rápida criada para classificação, pontuação e tomada de decisões estruturadas. Ela pode avaliar texto ou JSON de acordo com suas instruções, escolher entre várias opções, atribuir pontuações ou fazer julgamentos de sim/não com probabilidades de confiança. Foi desenvolvida para fluxos de trabalho que exigem decisões confiáveis sem a latência e o custo de tokens da geração de LLMs de formato longo. O campo model seleciona a versão: jev-1.13.0, jev-1.14.0 (lançada em 2026-10-14), jev-latest (o alias estável, padrão) ou jev-preview (a versão mais recente), e cada resposta informa a versão que respondeu. Entradas de imagem, perguntas sobre caixas e contexto longo são experimentais na TypeSafe e exigem cabeçalhos de adesão que este endpoint não envia.
Como executar
Etapa 1Configurar
Uma vez: cole isto no chat do seu agente. O Skill instala a CLI e faz login sozinho. Para um agente que não pode usar um shell, conecte-o pelo MCP.
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 a versão 1 do endpoint. Consulte o preço atual antes de executar. Instale e faça login primeiro em Get Started.
Uma vez por Run:
IDEMPOTENCY_KEY=$(uuidgen)Execute e copie este mesmo bloco para enviá-lo novamente:
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}'Reutilize a mesma Idempotency-Key para enviar novamente: o segundo envio é uma leitura do primeiro Run. Uma nova chave cria um novo Run e um novo Charge. Usa a versão 1 do endpoint; consulte o preço atual antes de executar.
Etapa 2Experimente uma tarefa de exemplo específica
Quando você precisa encaminhar um chamado de suporte, pode classificá-lo como uma solicitação de cobrança, suporte técnico ou acesso à conta usando as definições de categoria da sua equipe.
Copie este prompt no seu agente para classificar um chamado de suporte.
Use typesafe:/v1/systemone on Glasser.
Classify this support ticket into billing, technical or account access using my category definitions.Estrutura do 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 não publica um esquema de saída. Você recebe o corpo da resposta do próprio provedor de dados, sem alterações — não garantimos um formato que não podemos assegurar.
Como funciona a cobrança
| Por 1M tokens de entrada | Com base nos tokens de entrada processados. Nenhuma cobrança quando nenhum dado é retornado. | $0.0462 |
|---|---|---|
| Máximo por Run | A cobrança total não excederá este valor. | $0.002957 |
| Erro do provedor de dados | O provedor de dados não conseguiu responder. | $0.00 |
| Tempo limite excedido | O Run excedeu seu limite de tempo. | $0.00 |
| Falha interna | Um erro interno impediu a conclusão. | $0.00 |