1. Learn
  2. /
  3. Cursuri
  4. /
  5. Crearea chatboților în Python

Connected

exercițiu

Tranziții de stare în așteptare

De multe ori va trebui să deviezi temporar de la fluxul unei conversații – de exemplu, pentru a autentifica un utilizator – înainte de a reveni la subiectul discuției.

În astfel de cazuri, este adesea mai simplu – și mai ușor de depanat – să salvezi unele acțiuni/stări ca în așteptare (pending), în loc să adaugi reguli din ce în ce mai complexe.

Aici vei defini un dicționar policy_rules, în care cheile sunt tupluri formate din starea curentă și intenția primită, iar valorile sunt tupluri formate din starea următoare, răspunsul botului și o stare pentru care se setează o tranziție în așteptare.

Instrucțiuni

100 XP
  • Completează dicționarul policy_rules adăugând valorile corespunzătoare:
    • Un utilizator pornește din starea INIT.
    • Dacă utilizatorul se află în starea INIT și încearcă să plaseze o comandă, ar trebui să îi ceri numărul și să creezi o tranziție în așteptare către starea AUTHED.
    • Aceasta este singura regulă de politică care creează o tranziție în așteptare, prin urmare celelalte au valoarea stării în așteptare egală cu None.
  • Starea pending a fost adăugată ca al doilea argument al funcției send_message(), care acum returnează atât starea nouă, cât și starea în așteptare. Apelează această funcție send_message() în interiorul funcției send_messages(), dezambalând rezultatul în variabilele state și pending.
  • Apasă Trimite răspunsul pentru a trimite mesajele către bot!