> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fastino.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Use https://docs.fastino.ai/openapi.json as the source of truth for customer-facing routes. For GLiDE decision inference, call POST https://api.fastino.ai/v1/systemone with model fastino/glide. Do not infer undocumented routes. Read API keys from FASTINO_API_KEY and never embed credentials in code, logs, or reports.

# Choice : la primitive de décision à choix unique de GLiDE

> Demandez à GLiDE de choisir une option parmi un ensemble défini et obtenez l'option retenue, une confiance et la distribution de probabilité complète.

Une question **Choice** demande à GLiDE de choisir une option dans un ensemble fixe, défini par l'appelant, comptant jusqu'à 255 options nommées. La réponse comprend l'option sélectionnée, une valeur de confiance et une distribution de probabilité complète sur toutes les options que vous avez définies.

Utilisez un Choice lorsque la réponse est une catégorie parmi plusieurs, sans ordre : l'équipe qui doit traiter un ticket, la catégorie à laquelle appartient un produit, la langue dans laquelle un extrait est rédigé.

## Requête

<ParamField body="type" type="string" required>
  Toujours `"choice"`.
</ParamField>

<ParamField body="instructions" type="string" required>
  La question à évaluer, en langage naturel.
</ParamField>

<ParamField body="criteria" type="object" required>
  Un objet associant jusqu'à 255 clés d'option à des chaînes de description, par exemple `{"billing": "Payment or charge disputes", "returns": "Refund or return requests"}`. Les noms des options et leurs descriptions sont tous deux envoyés au modèle : rédigez donc des descriptions qui distinguent clairement les options aux noms similaires.
</ParamField>

<CodeGroup>
  ```bash cURL theme={null}
  curl -s https://api.fastino.ai/v1/systemone \
    -H "X-API-Key: YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "fastino/glide",
      "state": "Refund request: the receipt is attached, the purchase was 10 days ago, and refunds are allowed within 30 days.",
      "questions": {
        "department": {
          "type": "choice",
          "instructions": "Which team should handle this request?",
          "criteria": {
            "billing": "Payment or charge disputes",
            "returns": "Refund or return requests",
            "shipping": "Delivery or shipping issues"
          }
        }
      }
    }'
  ```
</CodeGroup>

## Réponse

```json theme={null}
{
  "department": {
    "type": "choice",
    "choice": "returns",
    "confidence": 0.9983415574354015,
    "probabilities": {
      "billing": 0.000576420510560337,
      "returns": 0.9989179779459618,
      "shipping": 0.0005056015434779647
    }
  }
}
```

* `choice` : l'option ayant la probabilité la plus élevée.
* `probabilities` : la distribution complète sur toutes les options que vous avez définies. Les clés correspondent à vos clés `criteria` et leur somme vaut environ 1.
* `confidence` : `top1 − top2`, l'écart de probabilité entre la meilleure et la deuxième meilleure option, de `0` (deux options à égalité) à `1` (une option concentre la quasi-totalité de la masse de probabilité). Consultez [Confiance](/fr/concepts/decision-models#confiance) pour savoir comment l'exploiter.

## Utilisation du résultat

```python theme={null}
answer = response["answers"]["department"]

queue_map = {"billing": "billing-team", "returns": "returns-desk", "shipping": "logistics"}
target_queue = queue_map[answer["choice"]]

if answer["confidence"] < 0.5:
    notify("routing uncertain — runner-up may also apply")
```

## Posez toutes vos questions en un seul appel

Évaluez plusieurs questions Choice sur le même `state` en une seule requête plutôt qu'en une requête par question. Elles reçoivent des réponses indépendantes : ajouter une question coûte des tokens mais modifie à peine la latence. Un appel de triage du support peut demander `department`, `urgency` et `tone` ensemble au lieu de faire trois allers-retours ; votre code peut agir sur `department` et ignorer le reste jusqu'à ce qu'il en ait besoin. Consultez [Combiner plusieurs questions](/fr/concepts/decision-models#combiner-plusieurs-questions) pour un exemple complet.

Fournissez au modèle la liste complète des options réelles plutôt qu'une présélection : une question Choice accepte jusqu'à 255 options, et chacune ne coûte que quelques tokens. Ajoutez une option `other` ou `none of the above` lorsque l'entrée risque de ne pas couvrir tous les cas : GLiDE peut ainsi y placer la masse de probabilité au lieu d'imposer une mauvaise correspondance avec l'une de vos options nommées.

## Voir aussi

* [Noul](/fr/concepts/glide-noul) : une décision oui/non avec une probabilité
* [Score](/fr/concepts/glide-score) : évaluer sur une échelle ordonnée
* [Modèles de décision](/fr/concepts/decision-models) : vue d'ensemble des primitives, limites et contrat de requête complet
* [GLiDE](/fr/concepts/glide) : ce qu'est GLiDE et quand l'utiliser
