Chatbot z Pytonem : Działanie

https://szkolazpieklarodem.pl/

Jak sama nazwa wskazuje, jest to konkretne działanie, które można podjąć. Zgodnie z dokumentacją Rasa jest napisane: „Następna akcja, którą należy podjąć w odpowiedzi na stan okna dialogowego”. Przykładowo, jeśli użytkownik zapyta o horoskop na dzisiaj, nasz bot może wykonać akcję „GetTodaysHoroskop”. Zobaczmy jak wyglądałaby akcja „GetTodaysHoroskop” w formie kodu.

from rasa_core.actions import Action

from rasa_core.events import SlotSet

class GetTodaysHoroscope(Action):

def name(self):

return “get_todays_horoscope”

def run(self, dispatcher, tracker, domain):

# type: (Dispatcher, DialogueStateTracker, Domain) -> List[Event]

user_horoscope_sign = tracker.get_slot(‘horoscope_sign’)

“””Write your logic to get today’s horoscope details

for the given Horoscope sign based on some API calls

or retrieval from the database”””

return [SlotSet(“horoscope_sign”, user_horoscope_sign)]

Metoda name zwraca nazwę akcji, do której będziemy odnosić się w pliku domeny jako niestandardową nazwę metody.

Metoda run wykonuje główne zadanie polegające na wykonaniu akcji — to znaczy, że tutaj znajduje się podstawowa logika biznesowa. Jak widać, pobiera trzy parametry: wysyłkę, moduł śledzący i domenę. Przyjrzyjmy się kolejno tym parametrom:

  • dyspozytor: dyspozytor służy do wysyłania wiadomości do naszych użytkowników. Aby osiągnąć to samo, możemy użyć funkcji dipatcher.utter_message().
  • moduł śledzący: moduł śledzący stan bieżącego użytkownika. Dostęp do wartości slotów możemy uzyskać za pomocą tracker.get_slot(nazwa_slotu), a aby uzyskać najnowszą wiadomość użytkownika, możemy użyć tracker.latest_message.text.
  • domena: domena bota. Bardziej szczegółowo omówimy tę domenę w dalszej części rozdziału.

Uwaga: metoda run zwraca listę instancji zdarzeń.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *