Dialog systems become more complex as NLP field develops. The modular architecture allows to use a lot of different Natural Language Understanding (NLU) models for utterance annotations and Natural Language Generation (NLG) models for response generation that increases the resource consumption of each dialog system.
In Dream Platform we utilize modular architecture along with distribution-based approach. Each dialog system is created from presented components that are, mostly universal, building blocks. The main distribution assistants_dists/dream
utilizes dozens of components including Neural Networks-based (NN-based) ones that makes the distribution very resource consuming. Other distributions contain smaller number of components but still often utilize several NN-based components each.
Therefore, for the users’ convenience, we provide proxy. This proxy is available for free, but it is not providing any SLA and should be used for developer purposes only.
We deployed components from the main Dream distribution assistants_dists/dream
on our own servers and provide you an opportunity to use them. To maintain uniformity, the proxy components are accessed through locally deployed containers but the original containers defined in assistants_dists/dream/docker-compose.override.yml
(and other files like dev.yml
) are overwritten by the light-weight proxy containers in assistants_dists/dream/proxy.yml
.
For example, instead of the original NN-based container which requires GPU for fast inference, the proxy system allows deploying only light-weight container which re-direct input from your side to our servers and returns output from them. The disadvantages of proxy utilization are the following: the response time increases depending on your Internet connection, you can not see logs of the original containers (because the logs are a part of the container not proxy), and to make changes in the proxied component, you have to deploy it locally without proxy on your side.
The proxied containers usually correspond to main
branch (the latest release). The Release Notes could be found here.
Being in the early stages, sometimes we have to make breaking changes. Therefore, if you see your proxy containers return errors, update and merge the latest main
branch from the original repo to your branch in your custom fork of the repo.