Я прочитал этот ответ на Как закодировать приветственное сообщение в RASA, соответственно, я написал пользовательское действие, но оно не отображает сообщение, как только начинается сеанс, вместо этого оно отвечает после Пользователь отправил сообщение. Ниже приведен мой код для печати только приветственного сообщения. Я поместил это в мой файл "actions.py". Пожалуйста, помогите мне решить эту проблему.
На изображении ниже приведен пример того, как я хочу, чтобы мой бот запустился. Он запустится с общим сообщением, а затем предоставит опции, которые пользователь будет выбирать. Это то, чего я пытаюсь достичь в конечном итоге.
from typing import Text, List, Dict, Any
from rasa_sdk import Action, Tracker
from rasa_sdk.events import SlotSet, SessionStarted, ActionExecuted, EventType
from rasa_sdk.executor import CollectingDispatcher
class ActionSessionStart(Action):
def name(self) -> Text:
return "action_session_start"
@staticmethod
def fetch_slots(dispatcher: CollectingDispatcher, tracker: Tracker) -> List[EventType]:
"""Collect slots that contain the user's name and phone number."""
slots = []
return slots
async def run(
self,
dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any],
) -> List[EventType]:
# the session should begin with a `session_started` event
dispatcher.utter_message("Hi, I am Aayush Bot !!!")
events = [SessionStarted()]
# any slots that should be carried over should come after the
# `session_started` event
events.extend(self.fetch_slots(dispatcher, tracker))
# an `action_listen` should be added at the end as a user message follows
events.append(ActionExecuted("action_listen"))
return events