xatkit

The simplest way to build all types of smart chatbots and digital assistants

https://github.com/xatkit-bot-platform/xatkit

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.7%) to scientific vocabulary

Keywords

bot chatbot-framework chatbots conversational-ai digital-assistant dsl low-code nlp no-code
Last synced: 4 months ago · JSON representation ·

Repository

The simplest way to build all types of smart chatbots and digital assistants

Basic Info
  • Host: GitHub
  • Owner: xatkit-bot-platform
  • License: epl-2.0
  • Default Branch: main
  • Homepage: https://xatkit.com
  • Size: 94.7 KB
Statistics
  • Stars: 178
  • Watchers: 23
  • Forks: 22
  • Open Issues: 7
  • Releases: 0
Topics
bot chatbot-framework chatbots conversational-ai digital-assistant dsl low-code nlp no-code
Created over 6 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License Citation

README.md

Xatkit - The easiest way to build powerful bots and chatbots

Wiki Badge Twitter GitHub forks GitHub Repo stars

Get your own smart chatbot. Design your bot once, deploy it everywhere.

Xatkit has been created to reduce boilerplate code, complex API understanding, and technical details to facilitate the definition and deployment of your bots. Xatkit helps you focus on what really matters: the conversation logic you want to embed in your chatbot.

To do so, we have baked a chatbot-specific definition language to specify user intentions, receive events (your bots can also be proactive!), and bind them to computable actions following powerful state machine semantics. Our chatbot language is implemented as a Java Fluent Interface combining the low-code benefits of using a dedicated chatbot Internal DSL with the full power of Java when you need to write complex bot behaviours.

This chatbot specification is then handled by the Xatkit Runtime Engine, which automatically manages its deployment and execution. Reuse the existing platforms (or add your own) to make your bot talk with external services (Slack, GitHub, Telegram, websites,...).

Xatkit's philosophy is not to reinvent the wheel. Look at Xatkit as a chatbot orchestration platform that will help you integrate the best NLP components in your ideal chatbot.

Xatkit is a java-based framework. If you're looking for a Python-based one that shares the same philosophy and similar arquitecture, check the BESSER Bot Framework

Quick Start

1- Build the latest version of Xatkit

2- Navigate to xatkit-examples/GreetingsBots/GreetingsBot and start the example digital assistant (a basic web-based bot that greets users)

bash mvn clean compile mvn exec:java -Dexec.mainClass="com.xatkit.example.GreetingsBot"

The console will log some initialization information, and after a few seconds you should see the following message:

bash You can test your chatbot here http://localhost:5000/admin (note that the bots behavior can be slightly different on the test page than when it is deployed on a server)

Open your browser and navigate to http://localhost:5000/admin to test your deployed web-based bot! Remember this bot is just a greetings bot to test your installation so beyond saying 'Hi', the bot will respond to everything else with the default answer!. Also, to simplify its configuration, this sample bot just uses regular expression to match your intent but you could easily configure it to use a real NLP such as DialogFlow.

You can see a more complete online demo by talking to our ecommerce chatbot demo, freely accessible from our home page.

Create your first bot

Congratulations, you just started your first Xatkit digital assistant!

You can now have a look at the tutorial to learn how bots are defined with the Xatkit language, or if you are already familiar with it you can take a look at the documentation for additional information on Xatkit capabilities.

You can also kickstart the process thanks to our pre-configured Xakit Bot Template.

What platforms are available in Xatkit?

Your bot will be able to use any of the over a dozen platforms (and counting) available in Xatkit such as Slack, Telegram, WhatsApp, Github, web ... You can find the full list of supported platform in our wiki.

Troubleshooting

If you experience any issue with Xatkit you can open an issue on our tracker and we will be happy to help you! Note that we may move your issue to a different repository based on the impacted components.

Contact

Feel free to reach out by mail or ping us in social media.

However, note that the project is not actively maintained as we are now investing our efforts on the BESSER Bot Framework

Website

Xatkit.com

Thanks for reading until the end! If you like what you see, don't forget to star/watch this repository, thanks!

Owner

  • Name: Xatkit Bot Platform
  • Login: xatkit-bot-platform
  • Kind: organization

A generic and extensible platform for bot and chatbot development (by @SOM-Research )

Citation (CITATION.cff)

cff-version: 1.2.0
message: "Please cite the following works when using this software."
authors:
  - family-names: "Daniel"
    given-names: "Gwendal"
  - family-names: "Cabot"
    given-names: "Jordi"
  - family-names: "Deruelle"
    given-names: "Laurent"
  - family-names: "Derras"
    given-names: "Mustapha"
title: "Xatkit: A Multimodal Low-Code Chatbot Development Framework"
version: 1.0.0
doi: 10.1109/ACCESS.2020.2966919
url: "http://dx.doi.org/10.1109/ACCESS.2020.2966919"

GitHub Events

Total
  • Watch event: 9
Last Year
  • Watch event: 9

Dependencies

pom.xml maven
  • org.projectlombok:lombok 1.18.12 provided
  • fr.inria.atlanmod.commons:commons-core 1.0.1
  • org.apache.logging.log4j:log4j-core 2.13.3
  • org.apache.logging.log4j:log4j-slf4j-impl 2.13.3
  • org.eclipse.emf:org.eclipse.emf.common 2.15.0
  • org.eclipse.emf:org.eclipse.emf.ecore 2.15.0
  • org.eclipse.emf:org.eclipse.emf.ecore.xmi 2.15.0
  • junit:junit 4.13.1 test
  • org.assertj:assertj-core 3.10.0 test
  • org.mockito:mockito-core 3.3.3 test