BACK | Who is Mona? | MentDB Weak |
#Create a bot; bot create "mona" "fr" 0 "mona" "payet" "cancel_key" "Désolé, je ne comprends pas. Je préviens l'administrateur..."; #Create a user for the bot mona; bot user_create "mona" "jim" "pwd" "{ \"[user_firstname]\": \"jimmitry\", \"[user_lastname]\": \"payet\" }" "*"; #Train the bot mona in MQL; json load "trigger" "[]"; json iarray "trigger" / "abandonnes l'affaire" STR; json iarray "trigger" / "abandonnes la tâche" STR; json iarray "trigger" / "annules la tâche en cours" STR; json iarray "trigger" / "tu peux abandonner l'affaire" STR; json iarray "trigger" / "tu peux abandonner la tâche" STR; json iarray "trigger" / "tu peux annuler la tâche en cours" STR; json iarray "trigger" / "laisses tomber l'affaire" STR; json iarray "trigger" / "tu peux laisser tomber l'affaire" STR; json iarray "trigger" / "reprends tout à zéro" STR; json iarray "trigger" / "tu peux reprendre tout à zéro" STR; json load "consciousness_done" "[]"; json iarray "consciousness_done" / "j'ai repris tout à zéro." STR; json iarray "consciousness_done" / "j'ai abandonné la tâche en cours." STR; json load "consciousness_think" "[]"; json iarray "consciousness_think" / "j'avais pensé que je devais reprendre tout à zéro." STR; json iarray "consciousness_think" / "j'avais pensé que je devais abandonner la tâche en cours." STR; json load "consciousness_understand" "[]"; json iarray "consciousness_understand" / "j'avais compris que je devais reprendre tout à zéro." STR; json iarray "consciousness_understand" / "j'avais compris que je devais abandonner la tâche en cours." STR; json load "consciousness_subject" "[]"; json iarray "consciousness_subject" / "il s'agissait de reprendre tout à zéro." STR; json iarray "consciousness_subject" / "il s'agissait d'abandonner la tâche en cours." STR; json load "consciousness" "{}"; json iobject "consciousness" / "done" (json doc "consciousness_done") ARRAY; json iobject "consciousness" / "think" (json doc "consciousness_think") ARRAY; json iobject "consciousness" / "understand" (json doc "consciousness_understand") ARRAY; json iobject "consciousness" / "subject" (json doc "consciousness_subject") ARRAY; bot training_merge "mona" "cancel_key" "task" "" "Annuler la tâche en cours" 100 (json doc "trigger") (mql { bot set_wait_replay [bot] [user] null; switch (math random 5) (0) {"D'accord."} (1) {"Ok."} (2) {"Okay."} (3) {"C'est d'accord."} {"Bien reçu."} ; }) (json doc "consciousness") ; json load "trigger" "[]"; json iarray "trigger" / "bonjour" STR; json iarray "trigger" / "salut" STR; json load "consciousness_done" "[]"; json iarray "consciousness_done" / "j'ai dis bonjour." STR; json iarray "consciousness_done" / "j'ai répondu salut." STR; json load "consciousness_think" "[]"; json iarray "consciousness_think" / "j'avais pensé que je devais dire bonjour." STR; json iarray "consciousness_think" / "j'avais pensé que je devais répondre salut." STR; json load "consciousness_understand" "[]"; json iarray "consciousness_understand" / "j'avais compris que je devais dire bonjour." STR; json iarray "consciousness_understand" / "j'avais compris que je devais répondre salut." STR; json load "consciousness_subject" "[]"; json iarray "consciousness_subject" / "il s'agissait de dire bonjour." STR; json iarray "consciousness_subject" / "il s'agissait de répondre salut." STR; json load "consciousness" "{}"; json iobject "consciousness" / "done" (json doc "consciousness_done") ARRAY; json iobject "consciousness" / "think" (json doc "consciousness_think") ARRAY; json iobject "consciousness" / "understand" (json doc "consciousness_understand") ARRAY; json iobject "consciousness" / "subject" (json doc "consciousness_subject") ARRAY; bot training_merge "mona" "dire_bonjour" "politesse" "" "Répondre à un bonjour de l'utilisateur" 100 (json doc "trigger") (mql { bot set_wait_replay [bot] [user] null; switch (math random 2) (0) {"Salut."} {"Bonjour."} ; }) (json doc "consciousness") ; json load "trigger" "[]"; json iarray "trigger" / "[1] + [2]" STR; json iarray "trigger" / "fait une addition avec les nombres [1] et [2]" STR; json load "consciousness_done" "[]"; json iarray "consciousness_done" / "j'ai fait une addition avec les nombres [1] et [2]." STR; json iarray "consciousness_done" / "j'ai additionné les nombres [1] et [2]." STR; json load "consciousness_think" "[]"; json iarray "consciousness_think" / "j'avais pensé que je devais faire une addition avec les nombres [1] et [2]." STR; json iarray "consciousness_think" / "j'avais pensé que je devais additionner les nombres [1] et [2]." STR; json load "consciousness_understand" "[]"; json iarray "consciousness_understand" / "j'avais compris que je devais faire une addition avec les nombres [1] et [2]." STR; json iarray "consciousness_understand" / "j'avais compris que je devais additionner les nombres [1] et [2]." STR; json load "consciousness_subject" "[]"; json iarray "consciousness_subject" / "il s'agissait de faire une addition avec les nombres [1] et [2]." STR; json iarray "consciousness_subject" / "il s'agissait d'additionner les nombres [1] et [2]." STR; json load "consciousness" "{}"; json iobject "consciousness" / "done" (json doc "consciousness_done") ARRAY; json iobject "consciousness" / "think" (json doc "consciousness_think") ARRAY; json iobject "consciousness" / "understand" (json doc "consciousness_understand") ARRAY; json iobject "consciousness" / "subject" (json doc "consciousness_subject") ARRAY; bot training_merge "mona" "faire_une_addition" "math" "" "Faire une addition avec 2 nombres" 100 (json doc "trigger") (mql { json load "vars" [user_variables]; if (and (== (json count "vars" /) 2) (and (not (is null or empty (json select "vars" "/[0]"))) (not (is null or empty (json select "vars" "/[1]"))))) { -> "[1]" (json select "vars" "/[0]"); -> "[2]" (json select "vars" "/[1]"); -> "[calc]" (+ [1] [2]); bot set_wait_replay [bot] [user] null; switch (math random 4) (0) {concat "Le résultat est " [calc] "."} (1) {concat "Le résultat de l'addition est " [calc] "."} (2) {concat [1] " + " [2] " = " [calc]} {[calc]} ; } { case (string starts_with (string lower [user_request]) "utilises le nombre") { json load "split" (string get_variable (string lower [user_request]) "utilises le nombre [1]"); if (and (== (json count "split" "/") 1) (type is_double (json select "split" "/[0]"))) { case (not (env exist var "[1]")) { -> "[1]" (json select "split" "/[0]"); } (not (env exist var "[2]")) { -> "[2]" (json select "split" "/[0]"); } ; }; } (string starts_with (string lower [user_request]) "utilises les nombres") { json load "split" (string get_variable (string lower [user_request]) "utilises les nombres [1] et [2]"); if (and (and (== (json count "split" "/") 2) (type is_double (json select "split" "/[0]"))) (type is_double (json select "split" "/[1]"))) { -> "[1]" (json select "split" "/[0]"); -> "[2]" (json select "split" "/[1]"); }; } ( json load "split" (string split (string lower [user_request]) " " -1); and (== (json count "split" "/") 2) (and (type is_double (json select "split" "/[0]")) (type is_double (json select "split" "/[1]"))) ) { -> "[1]" (json select "split" "/[0]"); -> "[2]" (json select "split" "/[1]"); } ( json load "split" (string split (string lower [user_request]) " " -1); and (== (json count "split" "/") 3) (and (equal (json select "split" "/[1]") "et") (and (type is_double (json select "split" "/[0]")) (type is_double (json select "split" "/[2]")))) ) { -> "[1]" (json select "split" "/[0]"); -> "[2]" (json select "split" "/[2]"); } ; if (and (not (env exist var "[1]")) (not (env exist var "[2]"))) { bot set_wait_replay [bot] [user] [training_key]; "Désolé, pour faire une addition il me faut 2 nombres."; } { if (or (not (env exist var "[1]")) (not (env exist var "[2]"))) { bot set_wait_replay [bot] [user] [training_key]; "Désolé, pour faire une addition il me faut encore un nombre."; } { bot set_wait_replay [bot] [user] null; -> "[calc]" (+ [1] [2]); switch (math random 4) (0) {concat "Le résultat est " [calc] "."} (1) {concat "Le résultat de l'addition est " [calc] "."} (2) {concat [1] " + " [2] " = " [calc]} {[calc]} ; }; }; }; }) (json doc "consciousness") ; json load "trigger" "[]"; json iarray "trigger" / "tu te trompes ce n'est pas ce que je voulais" STR; json iarray "trigger" / "tu te trompes ce n'est pas ce que j'attendais" STR; json load "consciousness_done" "[]"; json iarray "consciousness_done" / "j'ai comprenais que je m'étais trompé." STR; json load "consciousness_think" "[]"; json iarray "consciousness_think" / "j'avais pensé que je m'étais trompé." STR; json load "consciousness_understand" "[]"; json iarray "consciousness_understand" / "j'avais compris que je m'étais trompé." STR; json load "consciousness_subject" "[]"; json iarray "consciousness_subject" / "il s'agissait de comprendre que je m'étais trompé." STR; json load "consciousness" "{}"; json iobject "consciousness" / "done" (json doc "consciousness_done") ARRAY; json iobject "consciousness" / "think" (json doc "consciousness_think") ARRAY; json iobject "consciousness" / "understand" (json doc "consciousness_understand") ARRAY; json iobject "consciousness" / "subject" (json doc "consciousness_subject") ARRAY; bot training_merge "mona" "error_key" "task" "" "Remarquer que je me trompe" 100 (json doc "trigger") (mql { if (env exist var "[user_last_request]") { sql connect "session1" {cm get "MENTDB";}; sql dml "session1" (concat "INSERT INTO public.mona_not_found ( bot, login, input ) VALUES ( " (sql encode [bot]) " , " (sql encode [user]) " , " (sql encode [user_last_request]) " );"); sql disconnect "session1"; }; switch (math random 5) (0) {"D'accord, je préviens l'administrateur."} (1) {"Ok, je préviens l'administrateur."} (2) {"Okay, je préviens l'administrateur."} (3) {"C'est d'accord, je préviens l'administrateur."} {"Bien reçu, je préviens l'administrateur."} ; }) (json doc "consciousness") ; #Reload the bot mona in memory (required after train); bot reload "mona"; #execute some stimulations; bot execute "mona" "jim" "fait une addition"; bot execute "mona" "jim" "utilises les nombres 99 et 100"; bot execute "mona" "jim" "fait une addition"; bot execute "mona" "jim" "abandonnes la tâche"; bot execute "mona" "jim" "bonjour";