1

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

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

我知道如何让用户先写,但我不知道如何反过来。我一直在寻找信息并看到这个链接:https ://forum.rasa.com/t/how-to-let-bot-start-the-conversation/20866/5但它仍然取决于用户写第一的

我有这个:

故事.yml:

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

动作.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()]

域.yml:

actions:
  - action_utter_supply_greet_user

怎么了?我该怎么做?

谢谢!

4

3 回答 3

0

使用/execute rasa 端点。或者,如果您要将机器人连接到消息传递通道,请尝试使用这些API。为 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')

于 2021-11-30T23:44:16.207 回答
0

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

于 2021-11-30T15:01:36.843 回答
0

Rasa Docs 中有一个专门的部分是关于与用户联系的,我相信你还没有咨询过(如果我错了,请纠正我)。看看,如果您遇到任何问题,请在 Rasa 论坛上发帖。

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

于 2021-11-29T08:17:21.113 回答