Skip to content
dilyararimovna edited this page Feb 9, 2023 · 1 revision

Proxy

Dialogue 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 dialogue system.

In Dream Platform we utilize modular architecture along with distribution-based approach. Each dialogue 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 utilization. We lifted components from the main distribution assistants_dists/dream on our own servers and provide you an opportunity to utilize them. To maintain uniformity, the proxy components are lifted as local containers but the original containers which are 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 lifting 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 lift it locally without proxy on your side.

Important Note! The proxied containers are 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.