Jev
TypeSafe Jev es un modelo de decisión: no genera texto y solo responde a preguntas definidas de antemano. La petición incluye el contenido que se debe evaluar y un conjunto de preguntas; el modelo devuelve para cada pregunta una respuesta estructurada junto con su probabilidad, a partir de la cual el programa puede ejecutar directamente su lógica de ramificación.
Casos de uso
Adecuado para:
- Clasificación y enrutamiento: equipo responsable de un ticket, categoría de intención del usuario.
- Decisiones de sí o no: si contiene datos personales, si se trata de una solicitud de reembolso, si es una inyección de prompt.
- Puntuación y ordenación: grado de urgencia, relevancia, intensidad del sentimiento y filtrado de resultados de búsqueda.
- Control de calidad de las salidas de LLM: si la respuesta es pertinente, si infringe las normas.
No adecuado para:
- La generación de texto, resúmenes, traducciones o código.
- Las decisiones sobre imágenes (Jev solo admite texto y JSON como entrada; para imágenes, use GPT-6 Luna).
- Las preguntas abiertas cuyas respuestas no puedan definirse de antemano como opciones o niveles.
Comparación con el enfoque «modelo de chat + salida JSON»:
Inicio rápido
1. Preparar los datos de conexión: cree una API Key en la consola de OfoxAI y utilice los datos siguientes:
https://api.ofox.ai/v1typesafe/jev-latestTambién puede escribirse jev-latest/v1/decisionsPOST, no /v1/chat/completions2. Instalar el SDK: para realizar la llamada con el SDK oficial de Python de OpenAI, instale una versión que incluya client.decisions:
pip install -U openaiAttributeError: 'OpenAI' object has no attribute 'decisions', la versión del SDK es demasiado antigua; ejecute el comando anterior para actualizarla (versión openai 3.31.0 verificada). Sin el SDK, la llamada también puede realizarse con el comando cURL siguiente.3. Realizar la llamada:
Python
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.ofox.ai/v1", api_key=os.environ["OFOX_API_KEY"])
r = client.decisions.create(
model="typesafe/jev-latest",
input="Customer message: I was charged twice, nobody has answered my two emails, and I need a refund today.",
questions=[{"type": "predicate", "name": "is_frustrated", "instructions": "Is the customer frustrated?"}],
)
print(r.answers[0].probability) # 0.98Ejemplo de respuesta:
{
"model": "typesafe/jev-latest",
"answers": [{ "type": "predicate", "name": "is_frustrated", "probability": 0.98 }],
"usage": { "prompt_tokens": 302, "completion_tokens": 23, "total_tokens": 325 }
}probability indica la probabilidad de que la respuesta sea «sí»; un valor de 0.98 significa que el modelo considera muy probable que el cliente esté insatisfecho. Para aplicarlo a su propio caso de uso, sustituya input por el contenido real y questions por las preguntas reales.
Tipos de pregunta
Seleccione el tipo de pregunta según la forma del resultado requerido:
Ejemplos: «¿Se trata de una solicitud de reembolso?» corresponde a predicate; «¿Qué equipo debe atender el ticket?», a choice; «¿Cuál es el grado de urgencia?», a score. Las tres preguntas pueden incluirse en la misma petición, que devuelve todas las respuestas a la vez.
Una vez determinado el tipo de pregunta, revise las preguntas y las opciones conforme a Diseño de preguntas.
Errores frecuentes
La lista completa de errores figura en Decisions API · Errores frecuentes.
Documentación oficial
Preguntas frecuentes
¿Qué diferencia hay entre Jev y un LLM que genera JSON?
Jev responde únicamente dentro de las opciones y niveles proporcionados y no devuelve valores fuera de ese ámbito; cada respuesta incluye una probabilidad, y choice y score incluyen además la confianza, que puede utilizarse directamente para configurar umbrales. El JSON generado por un LLM requiere validación adicional y normalmente no ofrece probabilidades utilizables.
¿Se debe utilizar /v1/decisions o /typesafe/v1/systemone?
Para proyectos nuevos se recomienda /v1/decisions, que puede llamarse directamente con el SDK de OpenAI. Los proyectos que ya utilizan el SDK de TypeSafe o su código de ejemplo oficial pueden utilizar /typesafe/v1/systemone modificando únicamente la URL base.
¿Cómo se factura Jev?
Solo se facturan los tokens de entrada; la salida no se factura. Los precios figuran en la página del modelo. Las preguntas de una misma petición comparten la misma entrada, por lo que agruparlas en una sola petición permite reducir costes.
¿Una confianza alta implica que la respuesta sea necesariamente correcta?
No necesariamente. Cuando las opciones no cubren la situación real, el modelo elige igualmente una de las opciones existentes, posiblemente con una confianza alta. Por ello, las preguntas choice deben incluir una opción de reserva como «ninguna de las anteriores», y los resultados deben validarse con muestras etiquetadas manualmente.
¿Qué significa un score de 1.43?
El score es un valor ponderado por la probabilidad de cada nivel, y los niveles se numeran a partir de 0. El valor 1.43 se sitúa entre el nivel 1 y el nivel 2, más cerca del nivel 1; la probabilidad de cada nivel figura en probabilities.
¿Se admiten contenidos en idiomas distintos del inglés?
Sí. En las pruebas, un contenido en chino se procesó correctamente con preguntas redactadas tanto en chino como en inglés.
¿Jev admite imágenes?
No. Jev solo acepta texto y JSON. Para decisiones sobre imágenes, utilice GPT-6 Luna (openai/gpt-6-luna), que admite imágenes como entrada, con el mismo formato de petición.