Categories:
Aura Bot as a skill
aura-bot is Aura’s neuronal network in charge of core features in Aura Virtual Assistant. Find in the current documents the description of this component, its architecture, components and processes.
Aura Virtual Assistant component
Introduction
aura-bot is an HTTP server, based on Microsoft Bot Framework. It is built in Typescript using the node.js SDK of Bot Framework. As an HTTP server, it uses Express.js.
aura-bot is Aura’s neuronal network, where it can be considered as a Bot Development Platform itself. In the recent distributed architecture, aura-bot is the only skill on the system that handles all requests, although the new entry point to the system is now the root bot called aura-groot, that redirects all requests to the only skill in order to access Aura through diverse communication channels and interacts with every Aura system or component in order to provide Aura users with the intended answer or requested service.
The following flowchart shows the complete conversational process executed by aura-bot.
Aura Bot functionalities
The main functionalities in charge of aura-bot are users’ sign up, authentication validation process and conversational process.
Apart from them, there are other processes managed by aura-bot that can be executed in order to customize the bot, activate other components, etc.
Find here all the information related to Aura Bot processes.
Aura Bot components
aura-bot components can be classified into different categories:
- Aura Bot Platform components, which are components aura-bot has as a BotFramework bot: dialogs, middlewares, recognizers, Bot framework adapter, Activity Handler, etc.
- Other components that have been developed within aura-bot to provide it with a specific functionality, such as plugin manager or routing manager.
- Moreover, the databases used by aura-bot.
Find detailed information of all of them in Aura Bot components.
Aura Bot Platform repository
The repository aura-bot-platform has a folder layout inside the src folder, to organize the code according to functionality groups.
In the src root folder, only main files should be placed, such as index.ts, or main server file server.ts (it was app.ts in aura-bot).
src/bots
At the beginning, only the file aura-bot.ts is hold here, that is the main ActivityHandler (a kind of replace of previous UniversalBot).
In a near future, more Bot Builder adapters could be located here.
src/config
This folder contains files that load configurations and that are required in other places, such as channel configuration, environment variables, etc.
src/db
This folder contains files that manage and connect to databases, such as MongoDB.
src/events
The files handling events (such as ModuleObserver subclasses) should be placed in this folder.
src/dialogs
This folder contains the main dialog (main.ts) and custom prompts, as use case dialogs will be located in libraries, loaded as dependencies.
src/make
This folder contains the code related with joining all the library-specific data with global one during the make-up process.
src/middlewares
This folder contains abstract middleware base classes, and specific middleware implementation (final classes).
src/middlewares/recognizers
This folder contains all the recognizers, such as NLP recognizer, Aura Command recognizer, etc.
src/models
Files located within this folder will have exported types and interfaces required in different parts of the code (types and interfaces required only within a file could be self contained).
src/modules
This folder contains independent code blocks, that could be exported as a reusable packages if required in different components, such as cache manager, locale manager, etc.
src/plugin
This folder contains the modules in charge of loading plugins: charging dialogs, middlewares, delivery configuration for these components, etc.
src/routing
This folder contains the code related with intent-to-dialog routing, as this is not part of Bot Builder anymore.
src/utils
This folder contains utility classes and methods that are not part or any other block. We should maintain this folder organized and tidy, to avoid lots of unspecific files.