Ir al contenido

Jev: Clasificar

Clasifica un texto en una de las categorías que defines y devuelve la categoría, la confianza y las probabilidades de todas. Si la confianza queda por debajo del umbral, la categoría pasa a uncertain (o el texto que elijas) y la categoría original queda en raw_category: ideal para mandar esos casos a revisión humana.

El nodo tiene un puerto de salida por categoría (en el orden en que las defines) más Dudoso, para lo que quede por debajo del umbral: conecta cada puerto a su destino sin necesidad de un Switch. Si prefieres una sola salida, conecta solo la normal y enruta tú con un nodo Switch sobre \{\{jev.category\}\}.

Puedes añadir preguntas extra en paralelo (por ejemplo, urgencia o enfado) en la misma llamada; salen en jev.extra.

Describe cada categoría de forma contrastiva (qué cubre y qué no) y evita categorías solapadas: la calidad de la clasificación depende sobre todo de eso.

ParámetroTipoRequeridoDescripción
credentials_idcredentialsSíCredencial TypeSafe (API key).
modelselectSíModelo de Jev. jev-latest es un alias que cambia de modelo al publicarse versiones nuevas (hoy apunta a jev-1.13.0); en producción fija jev-1.13.0 o jev-1.14.0.
state_modeselectSíQué se evalúa: text (un texto), object (objeto con campos con nombre, lo recomendado) o all (todos los datos que llegan al nodo).
statetextareaNoTexto u objeto JSON a evaluar. Admite variables \{\{campo\}\}.
long_contextbooleanNoContexto largo (experimental): sube el límite del texto de 64k a 262k tokens. Es más lento y menos preciso; úsalo solo si el texto no cabe de otra forma.
output_keytextNoClave de los datos donde se guarda el resultado. Por defecto jev; el resto de los datos se conserva.
instructionstextareaNoQué se clasifica, p. ej. «Which team should handle this».
categoriesjsonSíMapa {nombre: descripción} o lista [{name, description}] (hasta 255). La descripción puede ser un objeto {covers, excludes, examples}.
min_confidencenumberNoConfianza mínima (0 a 1) para aceptar la categoría. Por defecto 0,5.
uncertain_labeltextNoCategoría a devolver si no se alcanza la confianza. Por defecto uncertain.
extra_questionsjsonNoPreguntas extra (mismo formato que Jev: Preguntar). No pueden llamarse category.

Se requiere una credencial TypeSafe (credentials_id) con la api_key de la consola de TypeSafe (variable TYPESAFE_API_KEY). La clave es de tu cuenta: TypeSafe factura el consumo, no Floogos. En la credencial, el botón Test llama a GET /v1/models (no gasta tokens).

El resultado se añade a los datos de entrada (no los reemplaza): el ticket o el formulario siguen disponibles aguas abajo. Se lee como \{\{jev.campo\}\}.

{
"nextModule": "next-node",
"data": {
"...": "datos de entrada, intactos",
"jev": {
"category": "technical",
"raw_category": "technical",
"confidence": 0.82,
"uncertain": false,
"probabilities": {
"billing": 0.09,
"technical": 0.82,
"sales": 0.09
},
"extra": {
"urgente": {
"type": "noul",
"probability": 0.9,
"confidence": 0.8,
"answer": "yes"
}
},
"model": "jev-1.13.0",
"usage": {
"input_tokens": 150,
"output_tokens": 6
},
"cost_usd": 0.000006
}
}
}

Puertos route_0 … route_N (uno por categoría, en el orden de categories) y route_uncertain. Si no conectas ningún puerto y usas la salida normal, el nodo sigue por ella (nextModule). jev.route dice por cuál salió.

Categorías:

{
"billing": { "covers": "Payments, invoices, refunds", "excludes": "Bugs in the invoicing screen" },
"technical": "Bugs, errors or integration problems",
"sales": "Pricing, plans or account questions"
}

El nodo muestra cuatro puertos: billing, technical, sales y Dudoso. Conecta cada uno al canal de su equipo y Dudoso a la revisión humana.

  • Privacidad: el texto que evalúas sale de Floogos hacia TypeSafe, un tercero. Según su documentación no se usa para entrenar y la retención cero solo existe en su plan empresarial. No envíes datos que no puedas compartir; filtra antes con el nodo Jev: Verificar reglas (pii) si hace falta.
  • Idioma: Jev rinde mejor en inglés; otros idiomas, incluido el español, funcionan con menor precisión. Prueba con tus propios datos antes de automatizar y escribe las instrucciones en inglés si el resultado no es fiable.
  • Variables: el motor sustituye \{\{campo\}\} en la configuración antes de ejecutar el nodo. El nodo no vuelve a sustituir, así que un texto de usuario que contenga llaves viaja tal cual.
  • Coste: 0,042 $ por millón de tokens de entrada; la salida no se cobra. jev.cost_usd es una estimación por ejecución.
  • Errores: missing_credentials, validation (configuración o 422), auth_error (401), rate_limited (429), overloaded (529), state_too_large, jev_error y connection_error. 429, 529, 5xx y los cortes de red se reintentan solos (hasta 3 veces con espera creciente); el resto no.
  • Confianza: confidence no es una garantía de acierto: calibra los umbrales con tus propios casos y empieza de forma conservadora. No automatices acciones destructivas.