Tutoriel
Tutoriel OpenAI Decisions API : votre premier appel de décision
Ce tutoriel vous mène d'un compte vide à un appel de décision fonctionnel sur l'endpoint decisions-1 de ce site — une alternative appelable à l'OpenAI Decisions API : une clé, un POST, des probabilités dans la réponse et un seuil pour la suite.
Mis à jour
Étape 1 — obtenir une clé
Ouvrez le bac à sable et appuyez sur Run une fois — une session invité, une clé API et 2 crédits offerts sont créés automatiquement. Pour la production, connectez-vous et créez une clé nommée dans le tableau de bord, sous API keys. Les clés s'envoient dans l'en-tête Authorization Bearer..
Gardez la clé côté serveur. Chaque requête qui la porte est facturée à votre solde : ne la mettez jamais dans du code navigateur ni dans un dépôt public.
Étape 2 — envoyer la première requête
Une requête de décision a trois champs : model (decisions-1 ou decisions-latest), state (le contexte lu par le modèle — une chaîne, un objet JSON ou un tableau de texte) et questions (une map de 1 à 6 ids de question). Écrivez la vraie question dans instructions — l'id n'est que l'étiquette sous laquelle la réponse revient.
Une question noul est un jugement oui/non : le champ de réponse noul est la probabilité que l'énoncé soit vrai.
cURL
curl https://decisions-api.net/api/v1/decisions \
-H "Authorization: Bearer $DECISIONS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "decisions-1",
"state": "I was charged twice for my subscription this morning.",
"questions": {
"refund": {
"type": "noul",
"instructions": "Is the customer asking for money back?"
}
}
}'Étape 3 — ajouter une question choice
Une question choice choisit une étiquette dans la liste que vous définissez. criteria est un objet de 2 à 8 ids d'options, chacun avec une courte description — c'est la description que lit le modèle, alors écrivez-la comme une règle de routage.
Une question score fonctionne pareil mais prend un tableau ordonné de 2 à 10 descriptions de niveaux, du plus bas au plus haut. Vous pouvez mélanger les trois types dans un appel, jusqu'à six questions.
JSON
{
"team": {
"type": "choice",
"instructions": "Which team should own this ticket?",
"criteria": {
"payments": "Checkout, billing, or payment processing.",
"frontend": "Rendering or browser behavior.",
"account": "Login, permissions, or profile."
}
}
}Étape 4 — lire les probabilités
Une réponse réussie contient model, answers indexées par vos ids de questions, usage et credits_used. Une réponse noul n'est que la probabilité. Une réponse choice inclut le choice gagnant, une probabilité par option et une valeur de confiance.
Le second compte autant que le gagnant. Deux options à environ 0.5 chacune, ce n'est pas 0.9 contre 0.1 — traitez les cas serrés comme des candidats à revue, pas comme des choix sûrs.
Réponse
{
"model": "decisions-1",
"answers": {
"refund": { "type": "noul", "noul": 0.98 }
},
"credits_used": 1
}Étape 5 — fixer un seuil et gérer les erreurs
Choisissez un seuil de confiance sur votre propre trafic : acceptez au-dessus, routez le reste vers une personne. Commencez haut (0,7–0,8) et ne baissez qu'après avoir revu les cas en dessous.
402 signifie solde épuisé ; 429 ou 502 signifient réessayer plus tard — les appels échoués ne sont pas facturés. 422 est une erreur de validation du corps et le message nomme le champ.
JavaScript
const res = await fetch('https://decisions-api.net/api/v1/decisions', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.DECISIONS_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify(body),
})
if (res.status === 402) { /* out of credits */ }
if (res.status === 429 || res.status === 502) { /* retry later */ }
const { answers } = await res.json()
const team = answers.team
if (team.type === 'choice' && team.confidence >= 0.7) {
routeTo(team.choice) // confident: auto-assign
} else {
queueForHuman(team) // low confidence or near-tie: review
}FAQ
Cela appelle-t-il la Decisions API d'OpenAI ?
Non. Cet endpoint sert decisions-1, le modèle de décision que ce site exploite. La Decisions API d'OpenAI est en aperçu limité sans schéma public ; le format de requête ici suit le même motif de décision.
Pourquoi la clé de ma réponse diffère-t-elle de celle envoyée ?
Elle ne diffère pas — answers revient indexé par les ids exacts envoyés dans la map questions. Si une clé manque, cette question a échoué à la validation et l'appel a renvoyé 422.
Puis-je recevoir la réponse en streaming ?
Non. Un appel de décision est un seul aller-retour qui renvoie l'objet answers complet. Cet endpoint n'a pas de mode streaming.
Que doit signifier la confiance pour mon seuil ?
La confiance résume à quel point les options sont séparées. Calibrez sur du trafic réel : consignez les probabilités de quelques centaines de cas, puis placez le seuil là où l'acceptation automatique cesse les erreurs qui comptent.
Essayez dans le bac à sable
Exécutez cette requête dans le navigateur — 2 appels offerts aux nouveaux visiteurs, sans configuration.