Для ядра Rasa и Rasa nlu, как должна быть надежная инфраструктура?
Мое REST-приложение разрабатывается с использованием Python и Flask, я также использую Rasa Core и Rasa NLU. В настоящее время все является одним локальным сервером разработки. Хотите знать, какие идеальные рекомендации для производства?
Сценарий, который я себе представил: обработать все REST-пламя и структуру базы данных на одном сервере, сохранить Rasa Core и вместе с "микро" -приложением Python на другом сервере и Rasa NLU на третьем сервере.
Но вопрос в том, что все пользователи в конечном итоге будут запрашивать 3 каскадных сервера, поэтому я думаю, что все серверы подвергаются одному и тому же узкому месту запросов.
И какие будут идеальные настройки, если вы оставите 1 сервер со всеми или 3 серверами? (для AWS)
1 ответ
Чтобы быть максимально масштабируемым, вы можете использовать контейнерное решение с балансировкой нагрузки.
- Rasa NLU имеет общедоступный докер-контейнер (или вы можете создать свой
своя). Используйте docker & kubernetes, чтобы масштабировать NLU настолько, насколько вам нужна ваша база - Создайте отдельные док-контейнеры для вашего ядра rasa, подключившись к балансировщику нагрузки NLU для трансляции NLU. Используйте балансировщик нагрузки здесь, если вам нужно.
- Сделайте то же самое для вашего приложения REST, подключившись к балансировщику нагрузки №2
Это решение позволит вам масштабировать ваш NLU и ядро по отдельности, однако вам нужно так же, как и вашему REST-приложению, если вам нужно сделать это отдельно.
Я написал учебник по этому вопросу, если вы заинтересованы здесь: