# Capire perché un intent viene sbagliato
Il bot ha risposto a una domanda con l'intent sbagliato (o con il fallback). Ecco come ragionare, dal più probabile al meno.
1. Guarda intent e confidenza
La risposta dell'API include intent e confidence. In locale, python -m agent.agent ti permette di provare le frasi una dopo l'altra.
- Confidenza bassa (sotto
MIN_INTENT_CONFIDENCE, 0.20 inconfig.py): il bot ricade sul fallback. Mancano esempi simili alla frase. - Confidenza alta ma intent sbagliato: due intent hanno esempi troppo vicini.
2. Cerca la frase nel dataset
Cerca nei file YAML degli intent parole chiave della frase: spesso trovi l'intent "concorrente" con una frase quasi uguale. Il validatore blocca i duplicati esatti, ma non le frasi molto simili.
3. Cosa fare
| Sintomo | Rimedio |
|---|---|
| Intent giusto con pochi esempi | aggiungi 5-10 frasi diverse |
| Due intent che si confondono | rendi gli esempi più distinti o unisci gli intent |
| Entità non riconosciuta | annota più esempi con `[valore](TIPO)` |
| Frasi con punti o simboli (es. nomi di dominio) | verifica che il valore dell'entità sia ricostruito dal testo originale |
Dopo ogni modifica: [riaddestra](/guides/training-e-validazione).
4. Regressioni inspiegabili
Se frasi che non hai toccato cambiano comportamento dopo un training:
- confronta con il training precedente: l'inizializzazione dei pesi è fissata (seed 42), quindi la differenza viene dal dataset;
- controlla se hai aggiunto frasi che "rubano" esempi a un intent esistente;
- ricorda che cambiare embedding (
USE_FASTTEXT) cambia tutto il modello.
5. Intent che non devono mai fallire
Per le frasi critiche (per esempio richieste di aiuto urgenti) non basta il classifier: un filtro deterministico a parole chiave, controllato prima del modello, garantisce che un training sfortunato non le perda.
Torna all'[elenco delle guide](/guides).