Для ядра Rasa и Rasa nlu, как должна быть надежная инфраструктура?

Мое REST-приложение разрабатывается с использованием Python и Flask, я также использую Rasa Core и Rasa NLU. В настоящее время все является одним локальным сервером разработки. Хотите знать, какие идеальные рекомендации для производства?

Сценарий, который я себе представил: обработать все REST-пламя и структуру базы данных на одном сервере, сохранить Rasa Core и вместе с "микро" -приложением Python на другом сервере и Rasa NLU на третьем сервере.

Но вопрос в том, что все пользователи в конечном итоге будут запрашивать 3 каскадных сервера, поэтому я думаю, что все серверы подвергаются одному и тому же узкому месту запросов.


И какие будут идеальные настройки, если вы оставите 1 сервер со всеми или 3 серверами? (для AWS)

1 ответ

Решение

Чтобы быть максимально масштабируемым, вы можете использовать контейнерное решение с балансировкой нагрузки.

  1. Rasa NLU имеет общедоступный докер-контейнер (или вы можете создать свой
    своя). Используйте docker & kubernetes, чтобы масштабировать NLU настолько, насколько вам нужна ваша база
  2. Создайте отдельные док-контейнеры для вашего ядра rasa, подключившись к балансировщику нагрузки NLU для трансляции NLU. Используйте балансировщик нагрузки здесь, если вам нужно.
  3. Сделайте то же самое для вашего приложения REST, подключившись к балансировщику нагрузки №2

Это решение позволит вам масштабировать ваш NLU и ядро ​​по отдельности, однако вам нужно так же, как и вашему REST-приложению, если вам нужно сделать это отдельно.

Я написал учебник по этому вопросу, если вы заинтересованы здесь:

Другие вопросы по тегам