TokenLab

Guides essentiels

Décisions

Obtenez des probabilités, des choix et des scores typés à partir d'un modèle de décision

POST /v1/systemone évalue un state par rapport à des questions nommées et renvoie une réponse typée par question. La réponse est un JSON synchrone : une probabilité, un nom d'option ou un score que votre code peut comparer et utiliser pour des branchements. Il ne renvoie pas de texte généré.

Décisions ou chat

Utilisez les décisions quandUtilisez le chat quand
Votre code a besoin d'un nombre ou d'une étiquette pour agirUne personne ou un autre modèle lit la réponse
Vous routez, classifiez ou filtrez une requête : remboursement ou non, quelle équipe, quel degré d'urgenceVous avez besoin d'explications, de résumés ou de texte rédigé
Vous posez plusieurs questions fixes sur la même entrée en un seul appelVous avez besoin d'outils, de streaming, d'images ou de messages multi-tours

Le endpoint de décision n'accepte pas messages, tools, stream ou d'autres contrôles de chat, et il n'est pas disponible en mode Batch. Gardez votre modèle de chat principal configuré séparément.

Choisir un modèle

curl "https://api.tokenlab.sh/v1/models?recommended_for=decision" \
  -H "Authorization: Bearer sk-your-api-key"

Vous pouvez également filtrer avec category=decision. Lisez GET /v1/models/{model} pour le modèle sélectionné avant d'envoyer des requêtes, et envoyez explicitement l'ID du modèle. Les exemples sur cette page utilisent jev-1.13.

Structure de la requête

ChampTypeNotes
modelstringID du modèle de décision
statestring, JSON object, or JSON arrayL'entrée à évaluer, telle qu'un ticket, une transcription ou un enregistrement
questionsobjectAu moins une question. Chaque clé est le nom de votre question ; chaque valeur possède type, instructions et criteria

instructions et chaque critère acceptent également une chaîne, un objet JSON ou un tableau JSON. La requête rejette les champs inconnus.

typecriteriaRéponse
noulOptionnel. Un objet avec des conseils pour true et falsenoul : une probabilité de 0 à 1 que l'affirmation soit vraie
choiceRequis. Un objet de 1 à 255 noms d'options, chacun mappé à des conseils ou nullchoice : l'un de vos noms d'options. Peut inclure probabilities et confidence
scoreRequis. Un tableau ordonné de 2 à 10 descriptions de niveauxscore : un nombre de 0 au dernier index du tableau ; il peut être fractionnaire. Peut inclure legend, probabilities et confidence

Évaluer un ticket

curl https://api.tokenlab.sh/v1/systemone \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev-1.13",
    "state": "I was charged twice. Please refund the duplicate payment.",
    "questions": {
      "refund_requested": {"type": "noul", "instructions": "Is a refund requested?"},
      "department": {
        "type": "choice", "instructions": "Which team should handle this?",
        "criteria": {"refunds": "Charges and refunds", "technical": "Software bugs"}
      },
      "urgency": {
        "type": "score", "instructions": "Rate urgency",
        "criteria": ["Routine enquiry", "Money affected", "Safety emergency"]
      }
    }
  }'

La réponse conserve les noms de vos questions sous answers. Les valeurs ci-dessous sont illustratives :

{
  "model": "jev-1.13",
  "answers": {
    "refund_requested": {"type": "noul", "noul": 0.97},
    "department": {"type": "choice", "choice": "refunds"},
    "urgency": {"type": "score", "score": 1}
  },
  "usage": {"input_tokens": 96, "output_tokens": 12}
}

Utiliser les réponses

  • Chaque question reçoit une réponse du même type, sous le même nom.
  • Une réponse noul est une probabilité, pas un booléen. Choisissez votre propre seuil pour chaque action.
  • Une réponse choice est toujours l'un des noms d'options que vous avez envoyés.
  • Une réponse score indexe votre tableau criteria : 1 ci-dessus signifie "Money affected".
  • Testez les décisions par rapport à vos propres cas étiquetés avant qu'elles ne déclenchent des remboursements, des escalades ou d'autres actions.

Utiliser depuis MCP

Le serveur MCP TokenLab expose evaluate_decisions dans les profils core et full. Appelez d'abord list_models avec {"category":"decision"} et get_model, puis passez les mêmes model, state et questions en tant qu'arguments d'outil. Lisez structuredContent.answers et structuredContent.usage à partir du résultat. L'outil renvoie un résultat synchrone et n'utilise pas de polling de tâche asynchrone.

Utiliser depuis les SDK

Le SDK JavaScript TokenLab 0.1.2+ fournit evaluateDecisions(body) ; le SDK Python 0.1.2+ fournit evaluate_decisions(body). Le corps est le même JSON que la requête HTTP. Les deux préservent les réponses typées et l'usage, et ne rejouent pas automatiquement une requête échouée. Voir SDKs.

Coût et tentatives

  • Les décisions sont facturées par tokens, à partir de usage.input_tokens et usage.output_tokens dans la réponse, aux prix actuels des tokens du modèle.
  • Les prix peuvent changer. Lisez les détails de tarification du modèle ou l'API de tarification au lieu de coder un prix en dur.
  • Un modèle peut rapporter des tokens de sortie même lorsque son prix de sortie est nul.
  • Les requêtes suivent votre option de livraison. Voir Facturation et tarification.
  • Un délai d'attente (timeout) laisse le résultat incertain. Vérifiez la requête dans vos logs ou votre Console avant d'envoyer à nouveau une requête payante.

Erreurs courantes

SymptômeCause probableCorrection
400 sur un champ tel que messages ou streamLes champs de chat ne font pas partie de ce endpointEnvoyez uniquement model, state et questions
400 sur criteriaUn choice a 0 ou plus de 255 options, un score a moins de 2 ou plus de 10 niveaux, ou un objet noul manque de true ou falseCorrigez la définition de la question
Les actions se déclenchent sur des signaux faiblesUne probabilité noul a été traitée comme vraie ou fausseComparez par rapport à un seuil que vous avez testé

Référence API

SujetRéférence
Évaluer les décisionsÉvaluer les décisions
Lister les modèlesLister les modèles
TarificationAPI de tarification
Facturation et tarificationFacturation et tarification

Sur cette page