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')
我从 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')