首页 > 解决方案 > 如何使用 gunicorn 在多线程模式下运行 RASA 服务器

问题描述

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

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

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

这给了我以下错误。

日志

请建议。

标签: rasa-nlurasa-core

解决方案


这不再可能,您指向的 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


推荐阅读