model y messages con dos detalles específicos:
- Añade un
schemade nivel superior que describa la extracción, la clasificación, los registros estructurados o las relaciones. - Analiza la cadena JSON de
choices[0].message.content.
Skill de agente Fastino GLiNER
Instala el skill de GLiNER en Cursor, Claude Code o Codex.
Ver el contrato de la API
Todos los campos de solicitud y respuesta.
Recetas de GLiNER
Solicitudes probadas para entidades, clasificación y relaciones.
Configura tu API key
Establece tu clave como una variable de entorno para que los ejemplos siguientes funcionen tal cual:Solicitud
Un ID de modelo base con capacidad de inferencia o el UUID de un trabajo de entrenamiento
de Fastino completado y desplegable.
Una lista de mensajes no vacía. Para la inferencia GLiNER, coloca el texto a analizar en
el
content de un mensaje de usuario.Define tareas personalizadas del codificador. Para la extracción y la clasificación clásicas,
proporciona un diccionario que contenga una o varias de las claves
entities,
classifications, structures o relations. Para la clasificación con restricciones,
proporciona la forma nativa con version, tasks y constraints que se documenta más
abajo. Omite schema solo cuando el modelo seleccionado tenga una tarea predeterminada
configurada. Cada entrada de classifications clásico requiere al menos dos etiquetas.Una lista plana de etiquetas de entidad está obsoleta. Utiliza siempre la forma de diccionario.Umbral de confianza de
0 a 1. Los valores más bajos favorecen la exhaustividad; los más
altos favorecen la precisión.Incluye los desplazamientos de caracteres semiabiertos (
start, end) en los resultados
de entidades.Para los modelos de codificador, recorta el texto que supere el
max_input_tokens del modelo en lugar de devolver input_too_long. Úsalo
solo cuando sea aceptable descartar el final de la entrada.x_fastino.truncated es true y no se
devuelven las entidades situadas después del corte. El uso sigue contabilizando
todo el texto enviado. Las entradas de más de 50.000 caracteres se rechazan antes
del truncamiento. La opción se aplica a los modelos de codificador base, LoRA y
con fine-tuning completo.
Esquema de entidades
Utiliza definiciones de entidades descriptivas cuando sea posible:Esquema de clasificación
task, labels, multi_label, cls_threshold y top_k. En GLiNER-2.5-Decide, labels debe ser una lista de cadenas y top_k actualmente no tiene efecto; consulta Clasificación de GLiNER 2.5 Decide.
Esquema de clasificación con restricciones
GLiNER2.5 Multi puede decodificar de forma conjunta tareas de clasificación relacionadas bajo restricciones estrictas. Antes de usar este esquema, confirma que el modelo seleccionado indicaconstrained_classification en encoder_features en la respuesta de GET /v1/base-models.
Las tareas usan campos de cardinalidad y de orden:
- Respuesta única:
min_labels: 1ymax_labels: 1 - Varias respuestas: usa
min_labelsy, opcionalmente,max_labels - Ordinal: cardinalidad de respuesta única más
ordered: true; las etiquetas se ordenan de menor a mayor
labels puede ser un array de cadenas o un objeto que asigna a cada respuesta su descripción. Una tarea también puede incluir instruction y examples, donde cada ejemplo es un par [text, answer].
Las expresiones de restricción admitidas incluyen Implies, Excludes, Cardinality, AtLevel, MinLevel y MaxLevel. Los nombres de tipo de restricción distinguen entre mayúsculas y minúsculas. Las restricciones ordinales usan estas formas JSON:
exact_level, minimum_level, maximum_level y bounded_range del ejemplo anterior son etiquetas explicativas, no campos de restricción. Coloca el objeto de restricción correspondiente directamente dentro del array constraints del esquema. Un rango acotado es un And que contiene MinLevel y MaxLevel. No existe ningún tipo BetweenLevel en el formato de la solicitud.
La siguiente solicitud combina tareas de respuesta única, de varias respuestas y ordinales:
choices[0].message.content, el resultado con restricciones tiene esta forma (los valores de probabilidad varían según la entrada y el checkpoint):
safe, pero seleccionar prompt_injection invalida esa respuesta. Por eso, el decodificador con restricciones selecciona la respuesta unsafe, de menor probabilidad, y una gravedad de al menos high. Las restricciones garantizan un resultado conjunto válido; no aumentan ni recalibran las probabilidades subyacentes ni la confianza.
Comprueba siempre _meta.feasible. Un resultado puede ser de mejor esfuerzo en lugar de totalmente factible cuando el esquema es contradictorio o ninguna asignación candidata conservada cumple todas las reglas.
Esquema de extracción estructurada
Los campos de estructura usan especificacionesfield::type::description:
Esquema de relaciones
El esquema de relaciones más simple es una lista plana de nombres de relación:Esquema combinado
Ejecuta varias tareas sobre el mismo texto combinando claves:task ni task_type.
Ejemplo
model debe soportar actualmente la inferencia alojada. Usa el catálogo de modelos
en vivo en lugar de asumir que todos los checkpoints de Hugging Face están disponibles:
Respuesta
El endpoint devuelve un envoltorio de chat completion. El resultado GLiNER se serializa como una cadena JSON enchoices[0].message.content:
choices[0].message.content como JSON antes de leer los resultados de la tarea. Cuando
store=true, x_fastino.inference_id identifica la inferencia persistida.
x_fastino.default_schema_applied es true cuando una solicitud de codificador omite tanto
schema como response_format y Fastino usa la configuración predeterminada del catálogo para el modelo seleccionado. Comprueba
x_fastino.truncated antes de considerar completa una extracción.
Trabajos asíncronos para entradas muy grandes
Usa la interfaz asíncrona de GLiNER cuando una solicitud supere un millón de tokens y pueda exceder el tiempo de espera síncrono. Envía la carga útil nativa de GLiNER a:text y schema; también acepta threshold, include_confidence
e include_spans. Un envío correcto devuelve HTTP 202 con job_id, status,
estimated_tokens y message.
Consulta el ID del trabajo devuelto hasta que status sea complete o error:
result y token_usage. Los trabajos están limitados al
usuario autenticado, así que usa la misma API key para el envío y la consulta.
Entradas repetidas
El endpoint acepta una conversación por solicitud. No soporta la forma de lotetext: string[]
del endpoint nativo eliminado. Envía solicitudes separadas de forma concurrente cuando proceses
varias entradas.
Errores
Consulta Arranques en frío y reintentos para ver el
patrón de reintentos compartido.

