1

在与 Rasa 1.* 命令行方式的 Slack 集成中面临问题。

遵循的步骤是:

  • 创建了一个工作区(“DataHacksConf2019”)、一个频道(“#rasachatbot”)和一个应用程序(“rasachatbotdemo”)。

  • 记下 Bot 用户 OAuth(以 xoxb-XXXXXXXXXXXXXXXXXXXX 开头)

  • 打开事件订阅。订阅工作区事件:message.channel、message.groups、message.im 和 message.mpim

  • 重新安装了应用程序

  • 使用 Slack 聊天机器人 OAuth 令牌更改了 credentials.yml 文件(以 xoxb 开头)

  • 所以,我的 credentials.yml 只有以下两行:

    slack:
      slack_token: "xoxb-XXXXXXXXXXXXXXXXXXXXXXXX"
  • Ngrok 在 5002 端口上启动到 Internet:
    C:\Temp\ngrok.exe http 5002
  • 记下不同的 ngrok 令牌,375d7c95,在下面使用

  • 所以,我的 endpoints.yml 只有以下两行

        action_endpoint:
         url: "http://375d7c95.ngrok.io:5002/webhook"

上面的设置是正确的还是应该如下?

        action_endpoint:
         url: "http://localhost:5055/webhook"
  • Ran rasa 操作服务器由
python -W ignore -m rasa run actions
  • 所以,我的操作服务器运行在 5055

  • 在另一个窗口中,在另一个端口 5002(与 ngrok 相同的端口)上激活了 rasa 环境,启动了 rasa 服务器

    python -W ignore -m rasa run --connector slack --port 5002 --cors *
  • 开始在 Slack 中聊天

该消息似乎在 5002 上从 Slack 发送到 ngrok(说状态正常 200),但从那里它没有出现在 5002 上运行的 rasa 服务器中

我错过了什么吗?

所有必要的文件都在https://github.com/yogeshhk/TeachingDataScience/tree/master/Jupyter/iplbot/cli_version

4

1 回答 1

0

endpoints.yml 应如下所示:

action_endpoint:
  url: "http://localhost:5055/webhook"

因为 action_endpoint 用于操作,而不是其他任何东西,它可以在默认端口 5055 上运行。

Slack -> ngrok -> Rasa server 是主要的消息流路径。因此,在 rasa 服务器和 ngrok 之间,端口必须相同,例如 5004。然后在 ngrok 和 slack 之间,url 令牌必须相同。这就是链接/绑定的完成方式。

另一个观察:首先需要在 5004 上启动 rasa 服务器,然后在 5004 上启动 ngrok http,然后获取 ngrok url 令牌,将其放入 Slack 验证中,然后仅验证正常,否则会出错。顺序似乎很重要

于 2019-10-17T18:14:54.217 回答