首页 > 解决方案 > 无法让用户 facebook messager 进入 rasa 核心服务器

问题描述

我用 rasa core 和 nlu 构建了一个 slack 机器人,它工作正常。我可以轻松处理用户输入。但是,当我用 facebook 频道尝试相同的过程时,如果某些用户在 page messenger 中说任何话,我的 rasa facebook 应用程序没有响应。

我的 webhook 工作正常。

se 'load(stream, Loader=ruamel.yaml.Loader)' explicitly if that is OK.

或者在您的代码中包含以下内容:

导入警告 warnings.simplefilter('ignore', ruamel.yaml.error.UnsafeLoaderWarning)

在大多数其他情况下,您应该考虑使用 'safe_load(stream)' data = yaml.load(stream) 127.0.0.1 - - [2018-11-16 10:52:50] "GET /webhooks/slack/webhook?hub.模式=订阅& hub.challenge=343235800&hub.verify_token=rasa-bot HTTP/1.1" 404 342 0.005916 127.0.0.1 - - [2018-11-16 10:53:51] "GET /webhooks/facebook/webhook?hub.mode =subscribe&hub.challenge=923059630&hub.verify_token=rasa-bot HTTP/1.1" 200 124 0.001723

这是我的服务器脚本。

nlu_interpreter = RasaNLUInterpreter('./models/default/model_20181116-102101')
action_endpoint = EndpointConfig(url="http://localhost:5055/webhook")
agent = Agent.load('./models/dialogue', interpreter=nlu_interpreter, action_endpoint=action_endpoint)


credentials = yaml.load(open('./credentials.yml'))
fb_access_token = credentials['facebook']['verify']
fb_secret = credentials['facebook']['secret']
fb_verify = credentials['facebook']['verify']

input_channel = FacebookInput(fb_access_token=fb_access_token,fb_secret=fb_secret,  fb_verify=fb_verify)

logLevel = "DEBUG"
logfile = "log.txt"


utils.configure_colored_logging(logLevel)
utils.configure_file_logging(logLevel, logfile)

agent.handle_channels([input_channel], 5004, serve_forever=True)

我是否必须扩展导入某些类来处理用户消息。因为在 slack bot 期间,不需要它。我正在使用 rasa core 0.11.12 和最新的 rasa NLU。

我没有在我的 rasa 服务器中收到用户消息。

任何帮助的家伙。

谢谢

标签: pythonfacebookrasa-nlurasa-core

解决方案


换行

fb_access_token = credentials['facebook']['verify']

fb_access_token = credentials['facebook']['page-access-token']

一般来说,我建议从命令行使用 Rasa Core,而不是编写自定义代码。例如,您可以通过提供类似的凭证文件来指示 Core 将 Facebook 设置为频道

facebook:
  verify: "rasa-bot"
  secret: "1234"
  page-access-token: "3123020"

然后使用以下命令启动 Rasa Core:

python -m rasa_core.run -d models/dialogue \
   -u models/nlu/current \
   --credentials credentials.yml

这也记录在Rasa Core 文档中。


推荐阅读