Multi-lingual Bot Framework V4

Check the code  github During my work at Microsoft Research Lab in Cairo , i was lucky to work on bot framework project to support multiple languages. This project gave me a detailed knowledge of bot framework v4 and the terminologies used in the training of chat bot systems.

Motivation

The goal of this project was to make it easier on the users of Bot framework to support multiple languages in any bot without the need of creating train data for each language they support, even more they don’t need to know the language itself. Now the bot can support multiple languages Machine translation will automatically detect user language or the developer will give the language to the translator User messages will be translated to the app’s (QnA or Luis) language App output will be then translated back to user’s language. Also the developer can easily define a mapping for specific vocab, this mapping will be used to customize machine translation system output based on the alignment information.

Technical Details

Project UML
Project UML

Locale Converter

Middleware added to support conversion between date and time Supports multiple locales including

Getting User Language

You can use Microsoft translator detect Api to automatically get user language. The developer can define function to get user language and to check if the user changed his language. \newline Snippet link  github

To User Language

The developer can set a flag toUserLanguage in the translation Middleware to translate to user language captured from the user at the start of the conversation.

Sample Live Usage

Conclusion

During this work, I was able to learn more about chat bots, Luis, Qna and bot framework in depth. Contributing to an open source project gave me more knowledge in the process of a public professional code style, commenting and documentation.

Sample Code

Sample  github

References