需要帮助以 docker 设置 Rasa NLU 服务器

Need help to setup Rasa NLU server with docker

我查阅了各种文档以在我的 ubuntu 服务器上设置 Rasa NLU。他们有一个 docker 容器,必须是 运行

docker run -p 5000:5000 rasa/rasa_nlu:latest-full

所以我设置了一个模型和少量训练数据并重新启动了 docker 个实例。当我转到 url 中的 /status 以及响应中的 returns project not found 时,它无法找到我的模型。我相信我需要在 运行 连接 docker 容器时设置项目路径和模型路径。但是我不知道该怎么做。

我是 docker 和 Rasa NLU 的新手。如果有人能指出我正确的方向,那将有很大帮助!

您提供的命令启动了 NLU 服务器。 由于您的状态是project not found,看来您还没有提供经过训练的模型。

您可以将包含训练模型的目录挂载为 Docker 卷,例如:

docker run 
  -v nlu-models:/app/nlu-models \ # mounts the directory `nlu-models` in the container to `/app/nlu-models`
  -p 5000:5000 \ # maps the container port 5000 to port 5000 of your host
  rasa/rasa_nlu:latest-full \ # the Docker image
  start --path /app/nlu-models # starts the NLU server and points it to the directory with the trained models`

另一种选择是使用您问题中的命令启动服务器,然后通过 sending the training data via POST request to the server 在服务器上开始训练(确保您的 header 指定 Content-Type: application/x-yml)。为此,请指定一个包含 NLU 管道配置和训练数据的文件 config_train_server.yml,例如:

language: "en"

pipeline: "spacy_sklearn"

# data contains the same md, as described in the training data section
data: |
  ## intent:affirm
  - yes
  - yep

  ## intent:goodbye
  - bye
  - goodbye

然后就可以通过POST请求向服务器发送文件内容,例如:

curl -XPOST \ # POST request
  -H "Content-Type: application/x-yml" \ # content header localhost:5000/train?project=my_project \
  -d @config_train_server.yml # pipeline config and training data as body of the POST request