Dialog - QiChat
Last updated
Last updated
Link-uri de care avem nevoie:
Resurse în limba engleză:
Lista de animații:
Un Topic este o tema, o idee principală despre care vrem să vorbim cu robotul. Tehnic vorbind, un Topic este un script(fișier) care conține o regulă (Rule), despre care vorbim mai târziu. Antetul său conține obligatoriu numele și limba Topic-ului.
Sintaxă:
Exemplu:
Pentru a crea primul topic, vezi Creating Dialog boxes. Alte referințe: name, language
O regulă asociază un Human input (ce spune omul) cu un Robot ouptut (ce raspunde robotul) corespunzător. Delimitatorii (Delimiters), Caracterele speciale (Special characters) și Funcțiie si proprietățile regulilor( Rule functions and properties) dau posibilitatea de a crea reguli puternice, care conțin într-o linie mai multe cazuri.
Există 3 tipuri de reguli:
Human input (ce spune omul) este o parte a User rule sau User subrule delimitată de paranteze, care conține mesajul ce va fi recunoscut de către robot. Cand un Human input se potrivește, adică mesajul este recunoscut, o Regulă (Rule) este acționată (triggered). Cand o regula este acționată, se întâmplă următoarele:
Robot output se execută (spus și/sau făcut).
Focusul este setat pe Tema(Topicul) ce conține regulile.
Este o parte a User rule, User subrule, sau Proposal, ce conține ce va spune sau face robotul cand regula este acționată.
Conceptul este o listă de cuvinte și/sau fraze care se referă la o idee.
Exemple:
Exemple:
Sintaxă:
Pentru a declara un concept static:
unde:
word1 și word2 sunt cuvinte izolate
“word3 word4” este o frază, adică un grup de câteva cuvinte
name este numele conceptului static
Exemplu:
Execuție:
Pentru a declara un concept dinamic:
Notă: un concept dinamic poate conține doar o listă de cuvinte sau fraze într-un singur Choice (alegere), notată cu [ ].
Exemple:
Referințe: Choice: [ ], Optional part: { }, Funcții (^rand , ^first ), Variable: $, Conditions: == > <> <
Topics si Rules trebuie să fie activate pentru a fi nu fi ignorate de către Dialog engine (Motorul de dialog). Este posibil sa activezi sau dezactivezi doar o parte din ele, pentru a crea un context conversațional și/sau să reduci numărul de reguli administrate (managed) în memorie.
Activarea unui Topic
In Choregraphe, un Topic se activează sau dezactivează când Dialog topic box este încărcat(loaded) și descărcat (unloaded)
Într-un script, poți de asemenea să folosești:
```
ALDialogProxy::activateTopic()
ALDialogProxy::deactivateTopic()
```
Toate Regulile unui Topic dezactivat sunt dezactivate.
Toate Regulile unui Topic activat sunt activate, cu excepția situațiilor în care:
este un User subrule și nu este atașată de ultima regula activată
este un Proposal deja executat
conține o eticheta(tag) dezactivată
conține funcția ^private, iar Topic nu are Focusul.
Mai multe Topicuri pot fi activate simultan, dar numai unul poate avea Focus. Focusul este dat Topicului care conține ultima regula activata. Cu excepția situației în care Topicul conține proprietatea ^noStay. Daca în diferite topicuri sunt reguli similare, atunci prioritate are Topicul ce are Focus. Daca nici un topic nu are focus, atunci alegerea este random(aleatorie). În unele cazuri, Dialog engine poate decide singur să dea Focusul unei Reguli și să spună primul ei Proposal. Funcția ^noPick face ca această selecție automată să nu se întâmple. Funcții și proprietăți importante:
^noPick ,
^noStay ,
^resetOnFocus ,
^fallback .
Regulile plasate după secțiunea de restabilire au o prioritate mai mică. Sintaxă:
Exemplu:
Execuție:
Este posibil să salvezi o parte din Human input(ce spune omul) pentru a o folosi in răspunsul robotului (Robot output). Referințe: Input storing: _
ALDialog folosește ALMemory pentru a stoca și recupera datele. Orice date stocate pot fi văzute ca variabile sau evenimente. Referințe: variable , event
Un Skin este o meta regulă, ce definește transformările care vor fi aplicate pe Robot outputs deja definite. Un Skin poate fi plasat în orice Topic și este activat când un Robot output se potrivește. Referințe: Transformation rules
Website oficial:
Sintaxa:
QiDialog CheatSheet:
Limbi disponibile:
Tutorial YouTube:
1.Creează un program ce folosește Dialog și poate avea o discuție despre tipuri de mâncare 2.Transformă-l pe Frank într-o persoană foarte amabilă care lucrează la serviciul clientelă pentru un operator de telefonie. El poate răspunde la următoarele întrebări:
Câți bani am în cont?
Care este numărul meu de telefon?
La ce ora a fost ultimul apel?
*Nivel de dificultate:
Folosește valori prestabilile de la început(de ex. u:(întrebare):3, 4.5, 203)
Folosește delimitatorul choice și random să aleagă dintr-o listă de răspunsuri
Folosește boxele random int si random float*
3.Creează un program ce folosește Dialog, astfel încît să poți întreba roboțica ce este Choregraphe și despre ce boxe ați învățat până acum.
Conceptele pot fi utilizate atât la Human input, cât și la Robot output. Exista 2 tipuri de concepte: