https://szkolazpieklarodem.pl/
Pierwszym i najważniejszym zadaniem do wykonania podczas budowania chatbota przy użyciu stosu Rasa jest utworzenie pliku domeny. Zgodnie z dokumentacją Rasa „Domena definiuje wszechświat, w którym działa Twój bot. Określa intencje, elementy, miejsca i działania, o których powinien wiedzieć bot. Opcjonalnie może również zawierać szablony tego, co może powiedzieć Twój bot. Teraz wiesz, dlaczego musieliśmy być wcześniej przygotowani na tę sytuację, rozumiejąc podstawowe koncepcje Rasy.
Stwórzmy plik DefaultDomain z definicją YAML. Rasa używa plików .yml do zdefiniowania formatu domeny. Pierwotnie YAML miał rzekomo oznaczać Yet Another Markup Language, przedstawiając jego użycie jako języka znaczników, ale później zmieniono go tak, aby był rozumiany jako YAML Ain’t Markup Language, rekurencyjny akronim, aby rozróżnić jego cel jako zorientowany na dane, a nie znaczniki dokumentu język. Wróćmy teraz do naszego katalogu rasa-nlu Jupyter Notebook i zacznijmy tworzyć pliki. Pamiętaj, że możemy zapisać cały nasz kod w oddzielnych plikach za pomocą wiersza poleceń i edytować go za pomocą edytora. Uważam, że Jupyter Notebook jest bardziej interaktywny i łatwo dostępny do przeglądania plików. Niezależnie od tego, w czym czujesz się komfortowo, rób to, ale dobrze jest znać większość funkcji, które zapewnia Jupyter Notebook. Przejdź do głównego katalogu horoskop_bot i utwórz plik, nazwijmy go horoskop_domena.yml. Poniżej znajduje się zawartość pliku horoskop_domena.yml dla naszego bota:
slots:
horoscope_sign:
type: text
DD:
type: text
MM:
type: text
subscribe:
type: bool
intents:
– greeting
– get_horoscope
– subscription
– dob_intent
entities:
– horoscope_sign
– DD
– MM
– subscribe
– dob_intent
templates:
utter_greet:
– ‘Hello! How are you doing today?’
utter_ask_horoscope_sign:
– ‘What is your horoscope sign?’
utter_ask_dob:
– ‘What is your DOB in DD-MM format?’
utter_subscribe:
– ‘Do you want to subscribe for daily updates?’
actions:
– utter_greet
– utter_ask_horoscope_sign
– utter_ask_dob
– utter_subscribe
– get_todays_horoscope
– subscribe_user
Jak widać, plik domeny składa się z pięciu ważnych części: intencji, encji, slotów, szablonów i akcji, o których mówiliśmy wcześniej. Zauważ, że dla każdego szablonu zdefiniowana jest utterAction, taka jak utter_greet, utter_ask_horoskop_sign i utter_ask_dob. Musimy mieć zdefiniowany szablon w sekcji szablonów o tej samej nazwie. Jak widać w naszym przykładzie zdefiniowanych jest głównie pięć akcji, gdzie pierwsze trzy akcje służą jedynie do przekazania użytkownikowi tekstu szablonu, natomiast dwie ostatnie wymagają od nas albo pobrania danych z bazy danych, albo utworzenia API zadzwoń, aby uzyskać horoskop na dany dzień i zwrócić go użytkownikowi. Również w przypadku akcji subskrybuj_użytkownika należy wykonać operację polegającą na dodaniu aktualnego użytkownika do listy subskrybentów w bazie danych. Te akcje zdefiniowane przez użytkownika nazywane są akcjami niestandardowymi. Aby mieć takie niestandardowe akcje, musimy napisać, co bot ma zrobić, gdy te akcje zostaną uruchomione. W następnej sekcji nauczymy się pisać akcje niestandardowe.