Jarvis is a generic bot platform that embeds a dedicated chatbot-specific modeling language to specify user intentions and received events, and bind them to computable actions. The modeled chatbot definition is handled by the Jarvis Runtime Engine, which automatically manages its deployment and execution.
Spend more time on your conversation design, and let the framework manage the tedious work of deploying the chatbot application, connecting to the targeted platforms, and extract information from user inputs!
The figure below shows the overview of the Jarvis framework. A chatbot designer specifies the chatbot under construction using the Jarvis Modeling Language, that defines three packages:
- Intent Package to describe the user intentions using training sentences, contextual information extraction, and matching conditions (learn more).
- Platform Package to specify the possible actions available in the potential target platforms, including those existing only on specific environments, e.g. posting a message on a Slack channel, opening an issue on Github, etc (learn more).
- Execution Package to bind user intentions to actions as part of the chatbot behavior definition, e.g. sending a welcome message to the user when he intents to initiate the conversation (learn more).
These models are complemented with a Deployment Configuration file, that specifies the intent recognition provider platform to use (e.g. DialogFlow, IBM Watson Assistant, or Amazon Lex), platform-specific configuration (e.g. Slack credentials), as well as custom execution properties.
These assets constitute the input of the Jarvis Runtime component that starts by deploying the created chatbot. This implies registering the user intents to the selected intent recognition provider, connecting to instant messaging platforms, and starting the external services specified in the execution model. Then, when a user input is received, the runtime forwards it to the intent recognition provider, gets back the recognized intent and perform the required actions based on the chatbot execution model.
There are several benefits in using this modular architecture to specify chatbots:
- The Jarvis Modeling Language packages decouple the different dimensions of a chatbot definition, facilitating the reuse of each dimension across several chatbots. As an example, the Slack platform definition (that provides actions to send messages on specific Slack channels) can be reused in all chatbots interacting with Slack.
- Each sub-language is totally independent of the concrete intent recognition provider, and Jarvis allows to define messaging actions that are independent of the targeted messaging platforms (more information here, easing the maintenance and evolution of the chatbot.
- The Jarvis Runtime architecture can be easily extended to support new platform connections and computable actions. Learn more on custom platform and actions definition here.
Custom Intent Recognition Providers
Jarvis relies on intent recognition providers to translate user inputs into intents that can be used by the runtime component to trigger actions. Note that the runtime itself embeds a DialogFlow connector that can be used out of the box to match user intents, but the engine's architecture is generic and can be extended to support new alternatives such as IBM Watson Assistant or Amazon Lex.
Jarvis provides a set of pre-packaged platforms that can be used in your execution models to compute actions and/or receive user intents (you don't know what is a Jarvis platform? You can have a look at this section to have an overview of the framework!).
The table below shows the current platforms embedded with the framework, whether they define a provider, as well as their development status. Note that each platform has a specific issue label on our issue tracker, use them if you have a question related to a specific platform!
|Generic_Chat||yes***** (intents)||Under development|
|Github||yes (events)||Under development|
[*] The Generic_Chat platform provides a special EventProvider that is set at runtime using the Jarvis configuration. More information on this platform available here.