Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Xatkit Bot Framework (CAiSE'19)


Published on

Slides introducing the Xatkit Bot Framework, presented at the CAiSE'19 conference.
This talk presents the motivation behind a (model-based) chatbot development framework, the key points of the developed languages, as well as the execution engine managing the deployment and execution of the modeled chatbot.
Learn more about the Xatkit project on github:

Published in: Technology
  • Login to see the comments

  • Be the first to like this

Xatkit Bot Framework (CAiSE'19)

  1. 1. Multi-Platform Chatbot Modeling and Deployment with the Jarvis Framework Gwendal Daniel, Jordi Cabot, Laurent Deruelle & Mustapha Derras Xatkit
  2. 2. ‘‘Chatbots are everywhere’’ - Some dude trying to get his startup funded Customer Service Education e-commerce Smart House
  3. 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
  4. 4. What went wrong? if(‘’ I have an issue’’) { return ‘’In which repository?’’ }
  5. 5. Chatbots are complex systems Conversation Logic Text Processing External Services Messaging Platforms Deployment Evolution Maintenance Tests
  6. 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. 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
  8. 8. Xatkit Framework Chatbot Designer Intent Recognition Providers (platform-specific) Platorm Package Intent Package Xatkit Modeling Language Chatbot User Instant Messaging Platforms Xatkit Runtime Execution Package uses uses Platform-independent chatbot definition External Services Deployment Configuration Platform Designer
  9. 9. Xatkit Framework • Intent language package Library Example intent OpenNewIssue { inputs { ‘’I want to create an issue’’ ‘’Open an issue’’ } } intent SpecifyRepository { inputs { ‘’In repository MyRepo’’ } creates context Repository { sets value name from fragment ‘’MyRepo’’ (entity any) } }
  10. 10. Xatkit Framework • Platform language package Abstract platform Chat actions { PostMessage(message, channel) Reply(message) } } Platform Slack extends Chat Platform Discord extends Chat Platform Github actions { OpenIssue(repository, title, content) } }
  11. 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))
  12. 12. Xatkit Framework Intent Recognition Providers (platform-specific) Platorm Package Intent Package Xatkit Modeling Language Instant Messaging Platforms Xatkit Runtime Execution Package uses uses Platform-independent chatbot definition External Services Deployment Configuration Chatbot Designer Chatbot User Platform Designer
  13. 13. Xatkit Framework • Runtime component • Generic event-based execution engine • Platform-specific connectors • Automatic deployment • Execution life-cycle • Inputs • Chatbot model (defined with the Xatkit modeling language) • Configuration file
  14. 14. Xatkit Framework • Runtime configuration • Provide deployment information • NLP engine to use • Credentials • Authentication tokens • Platform-specific properties (e.g. username, fallback urls, etc)
  15. 15. Xatkit Framework • Runtime configuration // Intent Recognition Provider Configuration xatkit.intent.recognition = DialogFlow xatkit.dialogflow.project = dialogflow_project_id xatkit.dialogflow.credentials = key.json // Platform configuration xatkit.slack.credentials = slack_oauth_token xatkit.discord.credentials = discord_credentials xatkit.github.credentials = github_oauth_token
  16. 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. 17. 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
  18. 18. Future Work • New platforms, actions, recognition engines … • Chatbot generation • From models, Web API, etc • Chatbot + SPL = • Generic events • Real world use case
  19. 19. 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