model et messages compatible OpenAI avec deux
particularités :
- Ajoutez un
schemade premier niveau décrivant l’extraction, la classification, les enregistrements structurés ou les relations. - Analysez la chaîne JSON dans
choices[0].message.content.
Skill d'agent Fastino GLiNER
Installez le skill GLiNER dans Cursor, Claude Code ou Codex.
Voir le contrat d'API
Tous les champs de requête et de réponse.
Recettes GLiNER
Requêtes testées pour les entités, la classification et les relations.
Configurez votre clé d’API
Définissez votre clé comme variable d’environnement afin que les exemples ci-dessous fonctionnent tels quels :Requête
Un identifiant de modèle de base compatible avec l’inférence ou l’UUID d’une tâche
d’entraînement Fastino terminée et déployable.
Une liste de messages non vide. Pour l’inférence GLiNER, placez le texte à analyser dans le
content d’un message utilisateur.Définit des tâches d’encodeur personnalisées. Pour l’extraction et la classification classiques,
fournissez un dictionnaire contenant une ou plusieurs des clés
entities, classifications,
structures ou relations. Pour la classification contrainte, fournissez la forme native
version, tasks et constraints documentée ci-dessous. N’omettez schema que lorsque le
modèle sélectionné a une tâche par défaut configurée. Chaque entrée de classifications
classique nécessite au moins deux étiquettes.Un tableau plat d’étiquettes d’entités est déprécié. Utilisez toujours la forme dictionnaire.Seuil de confiance de
0 à 1. Les valeurs plus basses favorisent le rappel ; les plus
élevées favorisent la précision.Inclut les décalages de caractères en intervalle semi-ouvert (
start, end) dans les
résultats d’entités.Pour les modèles d’encodeur, tronque le texte qui dépasse le
max_input_tokens
du modèle au lieu de renvoyer input_too_long. N’utilisez cette option que
lorsque la perte de la fin de l’entrée est acceptable.x_fastino.truncated vaut true et les entités
situées au-delà de la coupure ne sont pas renvoyées. L’usage compte toujours
l’intégralité du texte soumis. Les entrées de plus de 50 000 caractères sont
rejetées avant la troncature. L’option s’applique aux modèles d’encodeur de base,
LoRA et entièrement fine-tunés.
Schéma d’entités
Utilisez des définitions d’entités descriptives lorsque c’est possible :Schéma de classification
task, labels, multi_label, cls_threshold et top_k. Sur GLiNER-2.5-Decide, labels doit être une liste de chaînes et top_k n’a actuellement aucun effet ; voir Classification.
Schéma de classification contrainte
GLiNER2.5 Multi peut décoder conjointement des tâches de classification liées sous des contraintes strictes. Avant d’utiliser ce schéma, vérifiez que le modèle sélectionné indiqueconstrained_classification dans encoder_features via GET /v1/base-models.
Les tâches utilisent des champs de cardinalité et d’ordre :
- Réponse unique :
min_labels: 1etmax_labels: 1 - Réponses multiples : utilisez
min_labelset, éventuellement,max_labels - Ordinale : cardinalité de réponse unique plus
ordered: true; les étiquettes sont ordonnées de la plus basse à la plus haute
labels peut être un tableau de chaînes ou un objet associant chaque réponse à sa description. Une tâche peut également inclure instruction et examples, où chaque exemple est une paire [text, answer].
Les expressions de contrainte prises en charge incluent Implies, Excludes, Cardinality, AtLevel, MinLevel et MaxLevel. Les noms de types de contrainte sont sensibles à la casse. Les contraintes ordinales utilisent ces formes JSON :
exact_level, minimum_level, maximum_level et bounded_range ci-dessus sont des libellés explicatifs, et non des champs de contrainte. Placez l’objet de contrainte correspondant directement dans le tableau constraints du schéma. Une plage bornée est un And contenant MinLevel et MaxLevel ; il n’existe pas de type BetweenLevel dans le format de transmission.
La requête suivante combine des tâches à réponse unique, à réponses multiples et ordinales :
choices[0].message.content, le résultat contraint a la forme suivante (les valeurs de probabilité varient selon l’entrée et le checkpoint) :
safe, mais la sélection de prompt_injection rend cette réponse invalide. Le décodeur contraint sélectionne donc la réponse unsafe, moins probable, ainsi qu’une gravité d’au moins high. Les contraintes imposent un résultat conjoint valide ; elles n’augmentent ni ne recalibrent les probabilités sous-jacentes ou la confiance.
Vérifiez toujours _meta.feasible. Un résultat peut être une meilleure approximation plutôt qu’un résultat entièrement réalisable lorsque le schéma est contradictoire ou qu’aucune affectation candidate retenue ne satisfait toutes les règles.
Schéma d’extraction structurée
Les champs de structure utilisent des spécificationsfield::type::description :
Schéma de relations
Le schéma de relations le plus simple est une liste plate de noms de relations :Schéma combiné
Exécutez plusieurs tâches sur le même texte en combinant les clés :task ni task_type.
Exemple
model doit actuellement prendre en charge l’inférence hébergée. Utilisez le
catalogue de modèles en direct plutôt que de supposer que chaque checkpoint Hugging Face est
disponible :
Réponse
Le endpoint renvoie une enveloppe de chat completion. Le résultat GLiNER est sérialisé sous forme de chaîne JSON danschoices[0].message.content :
choices[0].message.content comme JSON avant de lire les résultats de la tâche.
Lorsque store=true, x_fastino.inference_id identifie l’inférence persistée.
x_fastino.default_schema_applied vaut true lorsqu’une requête d’encodeur omet à la fois
schema et response_format et que Fastino utilise la valeur par défaut du catalogue pour le modèle sélectionné. Vérifiez
x_fastino.truncated avant de considérer une extraction comme complète.
Tâches asynchrones pour les entrées très volumineuses
Utilisez l’interface GLiNER asynchrone lorsqu’une requête dépasse un million de tokens et risque de dépasser le délai d’expiration synchrone. Soumettez la charge utile GLiNER native à :text et schema ; elle accepte également threshold,
include_confidence et include_spans. Une soumission réussie renvoie HTTP 202 avec
job_id, status, estimated_tokens et message.
Interrogez l’ID de tâche renvoyé jusqu’à ce que status soit complete ou error :
result et token_usage. Les tâches sont limitées à
l’utilisateur authentifié. Utilisez donc la même clé d’API pour la soumission et
l’interrogation.
Entrées répétées
Le endpoint accepte une conversation par requête. Il ne prend pas en charge la forme de lottext: string[] de l’endpoint natif supprimé. Envoyez des requêtes séparées en simultané
lors du traitement de plusieurs entrées.
Erreurs
Consultez Démarrages à froid et nouvelles tentatives pour le schéma de nouvelles tentatives commun.

