无法连接到小鸭 http 服务器。确保小鸭服务器是 运行 并且在配置中设置了正确的主机和端口

Failed to connect to duckling http server. Make sure the duckling server is running and the proper host and port are set in the configuration

我已经在 slack 上创建了 workplace 并在那里注册了应用程序,我从那里获得了必要的东西,如 slack 令牌和通道,以将其放入 rasa 的 credentials.yml 文件中。获得所有凭据后,我尝试使用以下命令在 rasa bot 和 slack 之间进行连接:

rasa run

我的 credentials.yml 包含:

松弛:

  slack_token: "xoxb-****************************************"
  slack_channel: "#ghale"

在这里,我使用 ngrok 将本地计算机上的 Web 服务器 运行 公开到互联网

但出现错误:

rasa.nlu.extractors.duckling_http_extractor - Failed to connect to duckling http server. Make sure the duckling server is running and the proper host and port are set in the configuration. More information on how to run the server can be found on github: https://github.com/facebook/duckling#quickstart Error: HTTPConnectionPool(host='localhost', port=8000): Max retries exceeded with url: /parse (Caused by NewConnectionError(': Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it',))

您在使用 Duckling 吗? Duckling 是一个基于规则的组件来提取实体(docs).

如果您不使用它,您可以将它从您的 NLU 流水线中移除。 如果你想使用它,最简单的方法是使用 docker:

docker run -p 8000:8000 rasa/duckling

上面的命令将 运行 duckling 并将其暴露在主机的端口 8000 上。

只是添加到@Tobias 的回答中;

如果您运行在端口 8000 上连接一些其他服务,那么您可以将任何其他端口与容器的端口绑定,并在您的管道配置中指定。

示例: docker run -p <Desired Port, ex- 1000>:8000 rasa/duckling

更改配置文件以反映这一点。您的管道应包括

- name: DucklingHTTPExtractor
# https://rasa.com/docs/rasa/nlu/components/#ducklinghttpextractor
  url: http://localhost:<Desired Port, 1000>

使用更改后的配置重新训练您的模型。 训练结束后,只需 运行: rasa 运行

如果您正在进行数字提取(例如 6 到 6 等),我认为这将有助于在 Rasa 上填写表格 - 您需要安装 docker 然后在端口 8000 上公开 duckling

首先,安装docker(假定为 Fedora,但您可以查找其他发行版)

sudo dnf install docker

其次,激活docker

sudo systemctl start docker

最后,激活Rasa的docker

docker run -p 8000:8000 rasa/duckling

您的回复应该是 - 状态:“已下载更新的图像 docker.io/rasa/duckling:最新收听 http://0.0.0.0:8000"