如何使用Gunicorn在多线程模式下运行RASA Server

时间:2018-08-01 23:04:25

标签: rasa-nlu rasa-core

Rasa服务器在使用单线程的服务器上运行良好。 python -m rasa_nlu.server-路径项目-模拟dialogflow --response_log日志

我正在尝试在服务器上运行它,并希望启用多线程。 根据RASA文档,(https://nlu.rasa.com/0.8.12/http.html) 我正在尝试在命令下运行。

gunicorn -w 4-线程12 -k gevent -b 127.0.0.1:5000 rasa_nlu.wsgi

这给了我下面的错误。

Log

请提出建议。

1 个答案:

答案 0 :(得分:2)

这不再可能,您指向的Rasa文档是针对0.8版本的,它们现在位于0.12版本中。造成这种影响的原因有几个,其中主要是:

  • 语言模型的内存使用率高
  • 从Flask移至Klein进行异步培训

这是Github问题,其中包含更多信息:https://github.com/RasaHQ/rasa_nlu/issues/793

如果要获得更高的/parse请求的总吞吐量,则建议将Docker与nginx结合使用以在同一服务器上运行多个实例-如果服务器足够大以处理它-或运行多个较小的实例,但仍带有Nginx反向代理。

请注意,培训已经转移到单独的过程中。可以使用--max_training_processes参数设置可用于训练的进程数。另外,Rasa管道的某些组件支持多个线程。这些管道组件可用的线程数可以通过--num_threads参数设置。