Primitives de décision
Choisissez Choice, Score ou la probabilité yes-no pour le routage, le classement et les contrôles binaires — avec un exemple partagé.
Choisissez une primitive selon la réponse dont votre code a besoin : Choice sélectionne parmi des options nommées, Score note selon des niveaux ordonnés et Noul estime la probabilité du « oui ». Pour un même ticket de support, vous pouvez demander quelle équipe doit l’examiner, dans quelle mesure une brouillon de réponse y répond, et si le message signale un double débit. Ce sont trois jugements différents, pas des façons interchangeables de mesurer la confiance.
Prêt pour les questions
Q: Qu’est-ce que les primitives de décision de System One ?
A: System One fournit trois primitives : Choice (une option), Score (score ordonné) et Noul/yes-no (probabilité qu’un énoncé soit vrai).
Q: Qu’est-ce que Noul ?
A: Noul est la primitive yes-no : elle renvoie la probabilité qu’une condition soit vraie, pour contrôles de fin et portes binaires.
Prêt pour les questions
Quelles sont les primitives de décision de System One ? System One fournit trois primitives : Choice (une option), Score (score ordonné) et Noul/yes-no (probabilité qu’un énoncé soit vrai).
Qu’est-ce que Noul ? Noul est la primitive yes-no : elle renvoie la probabilité qu’une condition soit vraie, pour les contrôles de fin et les portes binaires.
Les trois primitives : Choice, Score et Noul
| Tâche applicative | Choisissez | Pourquoi | Quand ne pas l’utiliser |
|---|---|---|---|
| Router un ticket, classer une intention ou proposer une prochaine étape autorisée | Choice | Votre code a besoin d’une option nommée parmi un ensemble défini. | Pas pour renvoyer toutes les étiquettes applicables, générer un plan libre ou exécuter l’action choisie. |
| Noter la qualité d’une réponse ou classer des éléments selon un critère défini | Score | Votre code a besoin d’une position sur une échelle ordonnée. | Pas pour des catégories non ordonnées, un pourcentage universel de justesse ou des comparaisons entre échelles sans rapport. |
| Estimer si une condition donnée est remplie | Noul | Votre code a besoin de P(true) pour une proposition binaire. | Pas pour une confiance générale du modèle, pour choisir parmi plusieurs équipes, ni pour prouver qu’un événement a eu lieu. |
Utilisez Choice quand la distinction importante est quelle option, Score quand c’est combien selon cette échelle, et Noul quand c’est quelle est la probabilité que cet énoncé précis soit vrai. Une valeur Noul faible signifie que la condition est estimée improbable, pas que le modèle manque de confiance.
Choice : choisir une option nommée
import { choice } from '@system-one-ai/core';
const team = choice('Choose the team that should review this message.', {
billing: 'Payments and invoices',
support: 'Technical help',
review: 'Needs human review or more information',
});La fabrique préserve 'billing' | 'support' | 'review' comme type de la réponse. Voici un objet de réponse HTTP natif illustratif, pas un résultat enregistré ni l’enveloppe complète :
{
"type": "choice",
"choice": "review",
"probabilities": { "billing": 0.1, "support": 0.2, "review": 0.7 },
"confidence": 0.5
}confidence est une statistique rapportée distincte, pas nécessairement la probabilité de l’option sélectionnée. L’API hébergée autorise au plus 255 options de Choice.
Score : utiliser une échelle ordonnée
import { score } from '@system-one-ai/core';
const quality = score('Evaluate how completely this answer addresses the question.', [
'Does not address the question',
'Partially addresses the question',
'Fully addresses the question',
]);Les positions de l’échelle vont de 0 à niveaux - 1. L’API hébergée exige 2 à 10 niveaux ordonnés. La réponse Score native contient type, score, probabilities, confidence et legend. Le score est le résultat pondéré de l’échelle, pas nécessairement le niveau entier le plus probable :
score = somme(indexDeNiveau * probabiliteAuNiveau)
= (0 * 0.1) + (1 * 0.3) + (2 * 0.6)
= 1.5Un score de 1,5 ici n’est pas automatiquement 75 % de justesse, et ce n’est pas un score sur 10. Conservez l’échelle avec le résultat.
Noul : estimer P(true)
import { booleanQuestion } from '@system-one-ai/core';
const duplicate = booleanQuestion('Does this message report a duplicate charge?', {
true: 'The same order was charged more than once',
false: 'No duplicate charge is reported',
});Avec l’adaptateur HTTP, le SDK convertit cette question de boolean vers noul. Une réponse HTTP illustrative :
{ "type": "noul", "noul": 0.8 }La réponse core normalisée équivalente :
import type { BooleanAnswer } from '@system-one-ai/core';
const answer: BooleanAnswer = { type: 'boolean', probability: 0.8 };Les deux représentent P(true) entre 0 et 1. Une valeur de 0,8 est une probabilité estimée de 80 %, pas un fait confirmé, pas un booléen automatique et pas une confiance dans l’un des deux issues. Noul n’a pas de champ de confiance séparé ; votre application décide des seuils, de l’abstention et de la revue humaine.
Un ticket de support, trois jugements utiles
Utilisez ce contexte partagé pour les constructeurs et la requête combinée :
Message client : « J’ai été facturé deux fois pour la même commande. »
Brouillon de réponse : « Merci de nous envoyer votre numéro de commande pour que nous puissions vérifier les deux facturations. »
| Question nommée | Ce qu’elle évalue | Comment l’application peut utiliser la réponse |
|---|---|---|
team — Choice | Quelle équipe doit examiner le message : facturation, support technique ou revue humaine ? | Proposer une file, puis vérifier les règles d’accès et d’attribution avant le routage. |
quality — Score | Dans quelle mesure la réponse fournie répond-elle complètement au message du client, selon les trois niveaux ci-dessus ? | Signaler les réponses incomplètes pour révision, ou comparer des brouillons évalués sous la même échelle. |
duplicate — Noul | Le message signale-t-il un double débit ? | Signaler un possible problème de facturation pour investigation, sans approuver un remboursement. |
Ce tableau décrit la tâche, pas des résultats de modèle enregistrés. Existence de deux facturations réglées, éligibilité au remboursement : ces faits-là demandent les enregistrements de paiement et la politique applicable.
Quand utiliser laquelle
| Votre besoin | Primitive | Résultat lu comme |
|---|---|---|
| Une option parmi plusieurs noms | Choice | Une option, sa distribution de probabilités et la confiance |
| Une position sur une échelle ordonnée | Score | Un score pondéré, une distribution et la confiance |
| La probabilité d’une proposition binaire | Noul | P(true), entre 0 et 1 |
Si plusieurs étiquettes peuvent s’appliquer simultanément, définissez une question Noul distincte par condition plutôt que de forcer un seul Choice. Ces probabilités décrivent des propositions séparées ; elles ne constituent pas une distribution sur des catégories mutuellement exclusives et n’ont pas à sommer à un.
Pour un fait déjà connu de données applicatives faisant autorité, utilisez ces données directement plutôt que de demander à un modèle de l’inférer.
Esquisse TypeScript
import { defineQuestions } from '@system-one-ai/core';
import type { Answers } from '@system-one-ai/core';
const questions = defineQuestions({ team, quality, duplicate });
const result = await client.evaluate({
state: {
message: 'I was charged twice for the same order.',
answer: 'Please send your order number so we can review both charges.',
},
questions,
});
const answers: Answers<typeof questions> = result.answers;
console.log({
team: answers.team.choice,
quality: answers.quality.score,
duplicateProbability: answers.duplicate.probability,
});Sur le réseau, les mêmes réponses apparaissent sous la clé answers correspondante ; le type HTTP d’une question oui/non est noul et non boolean. Le résultat typé n’est pas le corps HTTP JSON d’origine : les distributions, la confiance ou les comptes de jetons absents restent inconnus. Core exige un state non nul et des instructions explicites ; le client TypeSafe officiel accepte un contrat plus large. Utilisez les référence API et répertoire des modèles pour décider ce que le modèle sélectionné accepte.
Les requêtes hébergées autorisent jusqu’à 32 questions, jusqu’à 255 options de Choice et 2 à 10 niveaux de Score. Une probabilité est une prédiction, pas une permission d’octroyer un remboursement, de modifier un accès ou d’envoyer un message : votre application possède l’autorisation, les listes d’actions autorisées et les confirmations requises.
Note de dénomination
Le produit est System One API. N’utilisez pas « Scoring API » comme nom de produit : le scoring est une capacité, pas le nom du service.
Liens internes : Référence API, Documentation du SDK, Intégration agent, Démarrer avec le SDK TypeScript.