# Il tuo primo intent
Un intent è un'intenzione dell'utente ("chiede l'orario", "saluta"). Per farne rispondere uno servono tre file YAML e un riaddestramento.
1. Gli esempi (`intents/`)
# knowledge/intents/my_intents.yaml
nlu:
intents:
- intent: ask_opening_hours
examples:
- a che ora aprite
- quali sono i vostri orari
- siete aperti il sabato
- fino a che ora state apertiScrivi frasi diverse tra loro, con lessico e lunghezza vari. Il dataset di base usa tra 20 e 25 esempi per intent: meno esempi significano un riconoscimento più fragile.
2. La regola (`rules/`)
# knowledge/rules/my_rules.yaml
rules:
ask_opening_hours:
default: ask_opening_hours_responseIl nome della regola deve coincidere con quello dell'intent.
3. La risposta (`responses/`)
# knowledge/responses/my_responses.yaml
responses:
ask_opening_hours_response:
- "Siamo aperti dal lunedì al venerdì, dalle 9 alle 18."
- "Gli orari sono 9-18, dal lunedì al venerdì."Con più varianti il bot sceglie una risposta diversa a ogni turno.
4. Allena
python -m pipelineLa pipeline valida i dati, riaddestra l'embedding, il classifier e la dialogue policy. Vedi [Allenare e validare i modelli](/guides/training-e-validazione).
5. Prova
python -m agent.agentScrivi "a che ora aprite" e controlla che risponda con il testo atteso.
Errori comuni
- Esempio già presente in un altro intent: il validatore lo segnala e blocca il training.
- Regola senza risposta, o con nome sbagliato: il bot ricade sul fallback.
- Pochi esempi: l'intent viene confuso con altri vicini. Aggiungi frasi.
Prossimo passo: [Raccogliere informazioni con gli slot](/guides/slot).