How to gracefully stop the NLU server in production?

In Dev environment, we can simply use Ctrl+C to stop the server. What should be the best way to stop the server in production?

I mean depends how you’re running it in production, we usually run in docke, so just with docker stop. You probably don’t want to really be stopping it much in production though right?

1 Like

Agreed. Or, how about running the server process as a background service (deamon) then it can be controlled by systemctl?

Currently I am actually running it as daemon. I was wondering if there is a better option than simply killing the process.

I restart the server for training to get reflected. Is there a way to train without restarting the server. I am using rasa_nlu_trainer to train the data which require restarting the server for changes to get reflected.

I am using Rasa NLU as a HTTP server. Every time, I want to train a new model I call the API /train to upload my new training data and I see the new training model is got affected (don’t need to restart the server). For example:

curl --request POST --header 'content-type: application/x-yml' \
            --data-binary @rasa_nlu_training_data.yaml \
            --url 'rasa-nlu:5000/train?project=myprojec&model=nlu'

Do you mean, to load the newly trained model in memory?

If so, if you call the /parse api with project=XYZ&model=model_222222222 (where the model is the correct model ID you just created), it will load this one in memory and will become the default if it is the most recent.

This is from my observation in playing around with Rasa for a few days.

Do you need to load the whole dataset? Is there any way of updating the model with a few new examples? Thanks

1 Like