Chatbot rasa 初始化对话

Chatbot rasa init conversation

我从 rasa 开始,我想制作一个在用户之前开始说话的聊天机器人,我附上一个例子:

Bot: Hello, how can I help you?
User: Hello, what time is it?
Bot: It's 5:23 p.m.

我知道如何让用户先写,但我不知道如何反过来做。一直在找资料看到这个link:https://forum.rasa.com/t/how-to-let-bot-start-the-conversation/20866/5不过还是要用户先写

我有这个:

stories.yml:

- story: greet
  steps:
  - action: action_utter_supply_greet_user
  - intention: greet
.... (continues)

actions.py:

class ActionGreetUser(Action):
    def name(self) -> Text:
        return "action_utter_supply_greet_user"
    def run(self, dispatcher: CollectingDispatcher,
            tracker: Tracker,
            domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
        dispatcher.utter_message("Hello! How can I help you?")
        return[UserUtternanceReverted()]

domain.yml:

actions:
  - action_utter_supply_greet_user

怎么了?我该怎么做?

谢谢!

在 Rasa 文档中有一个关于 reaching out to the user which, I believe, you haven't consulted yet (please, correct me if I'm wrong). Take a look and, if you encounter any issues, please, post on the Rasa forum 的专门部分。

关于您的设置以及为什么它没有达到您想要的效果:Rasa 故事描述了机器人应该采取什么行动以响应用户消息,以及(如果适用)先前的对话历史记录。 Rasa 模型从这些故事中“学习”如何在上下文中做出反应。当一个故事以机器人动作开始时,模型无法从这样的故事中学习,因为它不清楚上下文是什么——应该在哪个用户消息之后预测该动作?如果你问“怎么不清楚?故事说我的行动应该开始对话!”,那么重要的是要意识到故事不一定从一开始就描述对话——它也可以代表只是谈话的一部分,也许只是结束。同样,如果您有任何后续问题,请查看我们的文档并在论坛上提问 :-)

@Pau 如果你能分享 config.py 就太好了,请在其他地方检查你的 config.py 是否被评论,在政策范围内,取消对 MemoizationPolicy 的评论。比较记忆你提到的故事很有必要

使用/execute rasa endpoint. Or, if you will connect your bot to messaging channel, then try to use those APIs。 为 Facebook Messenger 频道设置问候消息的示例:

from fbmessenger import BaseMessenger
from fbmessenger.thread_settings import GreetingText, GetStartedButton

APP_SECRET = os.environ['APP_SECRET']
PAGE_ACCESS_TOKEN = os.environ['PAGE_ACCESS_TOKEN']

messenger = BaseMessenger(page_access_token=PAGE_ACCESS_TOKEN, app_secret=APP_SECRET)
greeting_text = GreetingText('Hi! how can I help you?')
get_started = GetStartedButton(payload='/get_started')