I went through various documentation to setup Rasa NLU on my ubuntu server. And they have a docker container which has to be run
docker run -p 5000:5000 rasa/rasa_nlu:latest-full
So I setup a model and few training data and restarted docker instance. And it is not able to find my model when I go to /status
in the url and also it returns project not found
in the response . I believe I need to setup up project path and models path when running the docker container. But I am not sure how to do it.
I am new to docker as well as Rasa NLU. If someone can point me out to right direction, it would be of great help!
The command which you provided, starts the NLU server.
As your status is project not found
it seems that you have not yet provided a trained model.
You can either mount a directory, which contains the trained model, as Docker volume, e.g.:
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`
The other option is to start the server with command from your question and then start a training on the server by sending the training data via POST request to the server (make sure your header specifies Content-Type: application/x-yml
). To do so, specify a file config_train_server.yml
which contains the configuration of your NLU pipeline and your training data, e.g.:
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
Then you can send the content of the file via POST request to the server, e.g.:
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