The simple way to build complex chatbots (and in general any kind of bot). Use a Domain-Specific Language to define the bot conversation and actions and deploy it whatever you want.
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Multi-Platform Chatbot Modeling and Deployment with the Xatkit Framework
1. Multi-Platform Chatbot
Modeling and Deployment with
the Jarvis Framework
Gwendal Daniel, Jordi Cabot, Laurent Deruelle & Mustapha Derras
Xatkit
2. ‘‘Chatbots are everywhere’’
- Some dude trying to get his startup funded
Customer Service
Education e-commerce Smart House
3. Let’s create a chatbot to help
newcomers to write issues on Github!
Alright! It’s just a set of questions &
answers, this will be pretty simple!
Narrator It wasn’t.
Once upon a time
5. Chatbots are complex systems
Conversation Logic
Text Processing
External Services
Messaging
Platforms
Deployment
Evolution
Maintenance
Tests
6. Chatbot applications
In the end what do we really want to do?
User Intent
Action Parameters
If the User Wants To Open Issue
Reply « In which repository? » on Slack
Platform
7. Xatkit Framework
• Raise the level of abstraction at what chatbots are defined
• Focus on the core logic of the chatbot
• Conversation and user interactions
• Action computations
• Independent from specific implementation technologies
• Automatize the deployment and execution of the modeled chatbot
• Deploy over multiple platforms
• Execute the chatbot logic
11. Xatkit Framework
• Execution language package
Import library Example
Import platform Slack
Import platform Discord
Import platform Github
Listen to Slack
on intent OpenNewIssue do
Slack.Reply(‘’Sure, I’ll help you to write
your issue! Which repository would you
like to report an issue for?’’)
on intent SpecifyRepository do
Slack.Reply(‘’Alright, your issue is related to
repository’’ + context(Repository).get(name))
[…]
Github.OpenIssue(context(Repository).get(name),
context(Issue).get(title),
context(Issue).get(content))
Discord.PostMessage(‘’A new issue has been opened in ’’
context(Repository).get(name))
16. Tool Support
• Tooling
• Open source project (EPL v2)
• Available on Github
• Under development (~600 commits)
• Test-driven development (~350 tests)
• Forks and contributions more than welcome!
• Supported Platforms
• Github, Giphy, UML
• Slack, Discord, Web-based
• Intent recognition
• DialogFlow
• RegExp (To Extend)
17.
18. Applications
• Chatbots to explain process models
• From Process Models to Chatbots - Anselmo López-Cuenca, Josep Carmona, Lluís Padró and Josep
Sànchez-Ferreres
• (Chat)bots to automatize existing processes
• Interactive FAQ for newcomers
• Develop research prototypes
Your amazing
tool
Xatkit Users
19. Future Work
• New platforms, actions, recognition engines …
• Chatbot generation
• From models, Web API, etc
• Chatbot + SPL =
• Generic events
• Real world use case
20. Summary
• An extensible framework to define and deploy chatbots
• DSL to specify intents, platforms, and execution models
• Automatic deployment over NLP engines and messaging platforms
• Chatbot execution management
https://github.com/xatkit-bot-platform