Giter Site home page Giter Site logo

nbhusare / xatkit-runtime Goto Github PK

View Code? Open in Web Editor NEW

This project forked from xatkit-bot-platform/xatkit-runtime

0.0 2.0 0.0 3.49 MB

Core runtime engine of the Xatkit low-code bot platform. Easily create complex chatbots

Home Page: https://xatkit.com

License: Other

Java 99.37% Shell 0.63%

xatkit-runtime's Introduction

Xatkit - The easiest way to build complex digital assistants

License Badge Build Status codecov Codacy Badge BCH compliance Latest Javadoc Badge Gitter Badge Wiki Badge

Xatkit 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 Xatkit 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 / digital assistant application, connecting to the targeted platforms, and extract information from user inputs!

Overview

The figure below shows the overview of the Xatkit framework. A (chat)bot designer specifies the chatbot under construction using the Xatkit Modeling Language, that defines three packages:

  • Intent Package to describe the user intentions using training sentences, contextual information extraction, and matching conditions.
  • 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.
  • 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.

Xatkit Overview

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 Xatkit 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 Xatkit 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 Xatkit 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 Xatkit Runtime architecture can be easily extended to support new platform connections and computable actions. Learn more on custom platform and actions definition here.

You are now ready to start using Xatkit and create your first chatbot! You can also have a look at the installation instructions to get setup the Xatkit modeling environment.

Intent Recognition Providers

Xatkit 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.

Packaged Platforms

Xatkit provides a set of pre-packaged platforms that can be used in your execution models to compute actions and/or receive user intents. Some platforms are currently provided as part of the Xatkit core but you can find additional ones in the Xatkit organization. Examples of available platforms are GitHub, Slack, Discord, Logs, Generic Chats, React,....

xatkit-runtime's People

Contributors

gdaniel avatar jcabot avatar clkblu3 avatar nerlichman avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.