SlideShare a Scribd company logo
1 of 44
The Software Challenges of Building
Smart Chatbots – ICSE’21 TB
@xatkit – xatkit.com
Context
Jordi Cabot - @JordiCabot Gwendal Daniel - g__daniel
Can you help us create a chatbot to help
newcomers to write good bug reports on GitHub?
Sure! It’s just a set of questions &
answers, this will be pretty simple!
Narrator It wasn’t.
Once upon a time in 2018 (we were
young and naïve)
We were asked to build a bot. We ended up
building a bot platform
But at least we’ve
learnt some things
along the way that
today we want to
share with you
3 times so far!
The plan for today
• THEORY (30’)
• HANDS-ON PRACTICE (1H45’)
• You can watch
• Better if you watch and try (installing included!)
• Ask questions on the chat at anytime, we’ll keep an eye on them
Why you all need to have
some bot building notions
And more predictions:
- Business Insider experts predict that by 2022, banks can automate up to 90% of their customer interaction using chatbots
- By 2024, consumer retail spend via chatbots worldwide will reach $142 billion—up from just $2.8 billion in 2019.
Chatbot market is worth over 1 Billion USD
Chatbots <-> Software engineers
• Software Engineers -> Chatbot
– Chatbots are a new type of software artefact that we’ll
need to consider in our dev projects (Multi-experience dev)
– Plenty of research opportunities to uncover
• Chatbot -> Software Engineering
– Bots are more and more playing a supportive role in many
SE tasks (e.g. in GH) so better to know how they work and
their limitations
Basic concepts
What is exactly a Chatbot?
• Bot are software components
• Chatbot = Bot + Chat interface
• Voicebot = Bot + Voice Interface
Voicebot
Chatbot
Bot
VoiceBot
• Alexa, Google Assistant ,…
• They hide a chatbot inside
1. Speech-to-text
2. Process the text as a
chatbot
3. Text-to-speech to reply
Chatbot vs LiveChat
• LiveChat: a person is behind
• They can be combined
– Bot  Person: when the bot doesn’t know how to
answer (or the visitor is specially “interesting”)
– Person  Bot: when no support person is available
or the client is not worth
Bots and NLP/NLU
• At the core, a NLU/NLP engine with two key
missions
– Classify the user utterance (i.e. input text) in
one of the intents (set of possible
questions/requests) defined in the bot
– Identify the parameters (called « entities »)
from the utterance
We ignore open-domain bots (e.g. LaMDA)
• They can chat about
everything but
– A complete black-box
– ``Useless’’ for a specific
business
– You could use them (or
QA systems) as a fallback
Why chatbot development
is so challenging?
Chatbots combine
all the complexity
of bots with the
complexity of NL
(including typos, trolls,
sentiment analysis…)
Many pieces to assemble
Input/Output
Messaging channels
External
Platforms
NLU Engine
Events!
Chatbots are complex software systems
Conversation Logic
Text Processing
External Services
Messaging
Platforms
Deployment
Evolution
Maintenance
Tests
Jordi Cabot¹, Loli Burgueño², Robert Clarisó², Gwendal Daniel², Jorge Perianez-Pascual³,and Roberto Rodriguez-Echeverria³
¹ICREA, Barcelona, Spain
²Open University of Catalonia, Barcelona, Spain
³University of Extremadura, Cáceres, Spain
Testing challenges for NLP-intensive
bots
BotSE ‘21
NLP for chatbots in 5 min
NLP in a chatbot implies
Parameters (entities)
I would like to order a medium pepperoni pizza
Intent
Input text (utterance)
• Understand what the user is trying to ask the bot
• Identify and gather the data in the request that the bot needs to construct
the response
NLU approaches
• Regular expressions
• Require an almost exact match. Not used
• Grammar-based approaches
• Useful for small domains with a very specific vocabulary and constructs
• E.g. Stanford Parser
• Neural Networks - Multiclass classifiers
1. You provide some training sentences for each intent (the "classes" ).
2. The classifier learns from these sentences
3. It assigns any new input text to one of the classes (with %confidence)
Example: bot that greets you, informs about
the schedule and lets you buy a pizza
Greetings
Hi
Good morning
Good afternoon
Hello
Morning!
I’d like to buy a
pizza
I want a pizza
Can I order a
pizza?
Buy
Are you open?
Is it open now?
What are your
opening hours?
At what time do
you start?
Schedule
If a user says, “I would like to order a pizza” what is the closest intent?
Not that easy when intents start to overlap (e.g. offering a job vs looking
for a job: “can I offer you a job?” vs “do you have any job offer”)
Entity recognition
• We need to understand the intent but also identify the entities
• Much easier if PizzaType is an enumeration ({ Pepperoni, Veggie, Hawaian ,…})
instead of the any string
ChooseYourPizza
I’d like a PizzaType pizza
I’m taking a PizzaType pizza
I think I’m going for a PizzaType
Common tricks in NLU Engines
• Tokenizers split the sentences into words
• Stemmers identify the lemma of the word (e.g. to focus on the verb, not on
the tense of the verb for matching purposes)
• Synonyms and paraphrasing are an automatic way to expand the training
sentences
• Entity augmentation also generalize training sentences
• E.g. What’s the weather in Barcelona -> What’s the weather in @city (the intent will
match no matter what city the user asks for, no need to train the classifier with all
the cities of the world as it will already know the list of cities itself).
• Augmentation is possible for a large number of data types and common concepts
(measures, countries, dates,…)
https://medium.com/@jseijas/how-to-build-your-own-nlp-for-chatbots-9b4c08eb03a9
Beyond intent classification
• Great bots go beyond providing the right answer, e.g.
they could show some empathy
• Several language models (for toxicity detection, for
sentiment analysis, language identification, emoji
support…) can be easily integrated in bots
PRO tip: Monitor your bots
• You will fail to predict:
• What users want to know
• How they express their intentions
• Careful with self-learning
• Filter out what the bot needs to add as training sentences to avoid strange
derivations
What bot building tool should I
use?
>100 bot platforms
• Rasa, BotPress, Chatfuel, Inbenta, Botsify,
Flow XO, Xatkit…
• And plenty NLP engines: DialogFlow, Lex,
LUIS, Watson, NLP.js
It all depends
• What are your priorities
– Open source?
– Free?
– Programming language of the bot?
– Natural languages (e.g. Catalan)
– Availability of connectors
– On-premises option?
– Plain textual bots or fully functional ones?
– Low-code/ no-code or tech skills?
– Possibility to migrate from one NLP engine to another?
– Monitoring dashboard / reports ?
– …
Building bots in Xatkit
Xatkit’s philosophy: Do not reinvent the wheel
Other solutions
Plenty of great NLU engines
and libraries, let’s not waste
our time building a new one
but take the best of breed
and focus on features to
help you create better bots
Xatkit is a chatbot orchestration platform
Another reason to avoid strong
coupling to specific NLU/NLP libraries
Xatkit architecture
Chatbot
Designer
Intent Recognition NLU Providers
(platform-specific)
Platform DSL / Libraries
Intent DSL
Xatkit DSL
Chatbot
User
Instant
Messaging
Platforms
Xatkit Runtime
Execution DSL
uses
uses
Platform-independent
chatbot definition
External
Services
Deployment
Configuration
Platform
Designer
Xatkit DSL
• Bots are created with the Xatkit DSL offering a chatbot-
specific syntax for creating:
– Intents the bot needs to match
– The behavior to execute in response to the matched intents
• Our DSL aims to combine the benefits of:
– Having a chatbot-specific DSL that facilitates the creation of chatbot
applications by providing higher-level chatbot modeling primitives
– The full power of a general programming language
In this scenario, Internal DSLs are the way to go (Martin Fowler)
Our DSL is implemented as a Java Fluent API
• Create bots using your preferred Java editor
– Benefit from all existing Java tooling when developing bots (e.g. debuggers)
– Reuse any Java library for complex bot behaviors
– Intuitive Fluent Interfaces to help you create advanced conversations
– Based on state machine semantics to build any type of bot
(there is also a no-code interface, e.g. using excel, for non-tech people)
I18n: Xatkit helps you build bots ready to be localized
Easy deployments
A Xatkit bot can be packaged as a single jar
with no external dependencies. Just execute
the jar to get the bot up and running
Via a simple configuration file you can
connect your bot with external services, e.g.
NLP Engines and communication channels
Xatkit is available on GitHub
To know more: xatkit.com /
info@xatkit.com
Xatkit is your best bet to sell more doing less
@xatkit – xatkit.com
Let’s play!!!

More Related Content

What's hot

NLP & Machine Learning - An Introductory Talk
NLP & Machine Learning - An Introductory Talk NLP & Machine Learning - An Introductory Talk
NLP & Machine Learning - An Introductory Talk Vijay Ganti
 
Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Jordi Cabot
 
Bridging the virtual and the physical space : Kornelia - a chatbot for public...
Bridging the virtual and the physical space : Kornelia - a chatbot for public...Bridging the virtual and the physical space : Kornelia - a chatbot for public...
Bridging the virtual and the physical space : Kornelia - a chatbot for public...Jasmin Hügi
 
Vitalii Braslavskyi - Declarative engineering
Vitalii Braslavskyi - Declarative engineering Vitalii Braslavskyi - Declarative engineering
Vitalii Braslavskyi - Declarative engineering Grammarly
 
Thomas Wolf "An Introduction to Transfer Learning and Hugging Face"
Thomas Wolf "An Introduction to Transfer Learning and Hugging Face"Thomas Wolf "An Introduction to Transfer Learning and Hugging Face"
Thomas Wolf "An Introduction to Transfer Learning and Hugging Face"Fwdays
 
Java Memory Consistency Model - concepts and context
Java Memory Consistency Model - concepts and contextJava Memory Consistency Model - concepts and context
Java Memory Consistency Model - concepts and contextTomek Borek
 
Lipstick on a Pig: Integrated Library Systems
Lipstick on a Pig: Integrated Library SystemsLipstick on a Pig: Integrated Library Systems
Lipstick on a Pig: Integrated Library SystemsDorothea Salo
 
Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...InfinIT - Innovationsnetværket for it
 
Natural Language Processing: L01 introduction
Natural Language Processing: L01 introductionNatural Language Processing: L01 introduction
Natural Language Processing: L01 introductionananth
 
How to get started in Open Source!
How to get started in Open Source!How to get started in Open Source!
How to get started in Open Source!Pradeep Singh
 
Welcome to the Brixton Library Technology Initiative
Welcome to the Brixton Library Technology InitiativeWelcome to the Brixton Library Technology Initiative
Welcome to the Brixton Library Technology InitiativeBasil Bibi
 
Scalable state of-the-art conversational AI
Scalable state of-the-art conversational AIScalable state of-the-art conversational AI
Scalable state of-the-art conversational AIDeep Learning Italia
 
Chatbots and Deep Learning
Chatbots and Deep LearningChatbots and Deep Learning
Chatbots and Deep LearningAndherson Maeda
 
Next-gen IDE v2 - OpenSlava 2013-10-11
Next-gen IDE v2 - OpenSlava 2013-10-11Next-gen IDE v2 - OpenSlava 2013-10-11
Next-gen IDE v2 - OpenSlava 2013-10-11Jorge Hidalgo
 
Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Jordi Cabot
 
Natural language processing
Natural language processingNatural language processing
Natural language processingHansi Thenuwara
 

What's hot (20)

Everything you need to know about chatbots
Everything you need to know about chatbotsEverything you need to know about chatbots
Everything you need to know about chatbots
 
Learning to code in 2020
Learning to code in 2020Learning to code in 2020
Learning to code in 2020
 
NLP & Machine Learning - An Introductory Talk
NLP & Machine Learning - An Introductory Talk NLP & Machine Learning - An Introductory Talk
NLP & Machine Learning - An Introductory Talk
 
Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?
 
2106 ACM DIS
2106 ACM DIS2106 ACM DIS
2106 ACM DIS
 
Bridging the virtual and the physical space : Kornelia - a chatbot for public...
Bridging the virtual and the physical space : Kornelia - a chatbot for public...Bridging the virtual and the physical space : Kornelia - a chatbot for public...
Bridging the virtual and the physical space : Kornelia - a chatbot for public...
 
Vitalii Braslavskyi - Declarative engineering
Vitalii Braslavskyi - Declarative engineering Vitalii Braslavskyi - Declarative engineering
Vitalii Braslavskyi - Declarative engineering
 
Thomas Wolf "An Introduction to Transfer Learning and Hugging Face"
Thomas Wolf "An Introduction to Transfer Learning and Hugging Face"Thomas Wolf "An Introduction to Transfer Learning and Hugging Face"
Thomas Wolf "An Introduction to Transfer Learning and Hugging Face"
 
Java Memory Consistency Model - concepts and context
Java Memory Consistency Model - concepts and contextJava Memory Consistency Model - concepts and context
Java Memory Consistency Model - concepts and context
 
2104 Talk @SSU
2104 Talk @SSU2104 Talk @SSU
2104 Talk @SSU
 
Lipstick on a Pig: Integrated Library Systems
Lipstick on a Pig: Integrated Library SystemsLipstick on a Pig: Integrated Library Systems
Lipstick on a Pig: Integrated Library Systems
 
Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...
 
Natural Language Processing: L01 introduction
Natural Language Processing: L01 introductionNatural Language Processing: L01 introduction
Natural Language Processing: L01 introduction
 
How to get started in Open Source!
How to get started in Open Source!How to get started in Open Source!
How to get started in Open Source!
 
Welcome to the Brixton Library Technology Initiative
Welcome to the Brixton Library Technology InitiativeWelcome to the Brixton Library Technology Initiative
Welcome to the Brixton Library Technology Initiative
 
Scalable state of-the-art conversational AI
Scalable state of-the-art conversational AIScalable state of-the-art conversational AI
Scalable state of-the-art conversational AI
 
Chatbots and Deep Learning
Chatbots and Deep LearningChatbots and Deep Learning
Chatbots and Deep Learning
 
Next-gen IDE v2 - OpenSlava 2013-10-11
Next-gen IDE v2 - OpenSlava 2013-10-11Next-gen IDE v2 - OpenSlava 2013-10-11
Next-gen IDE v2 - OpenSlava 2013-10-11
 
Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?
 
Natural language processing
Natural language processingNatural language processing
Natural language processing
 

Similar to The Software Challenges of Building Smart Chatbots - ICSE'21

Cómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intentoCómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intentoFacultad de Informática UCM
 
Using Chatbots in Extension Programming
Using Chatbots in Extension ProgrammingUsing Chatbots in Extension Programming
Using Chatbots in Extension ProgrammingAmy Cole
 
Applications-of-Artificial intelligence-Chatbot.pdf
Applications-of-Artificial intelligence-Chatbot.pdfApplications-of-Artificial intelligence-Chatbot.pdf
Applications-of-Artificial intelligence-Chatbot.pdfyuguzeva
 
IRJET - A Study on Building a Web based Chatbot from Scratch
IRJET - A Study on Building a Web based Chatbot from ScratchIRJET - A Study on Building a Web based Chatbot from Scratch
IRJET - A Study on Building a Web based Chatbot from ScratchIRJET Journal
 
UXPA2019 Not Your Average Chatbot: Using Cognitive Intercept to Improve Infor...
UXPA2019 Not Your Average Chatbot: Using Cognitive Intercept to Improve Infor...UXPA2019 Not Your Average Chatbot: Using Cognitive Intercept to Improve Infor...
UXPA2019 Not Your Average Chatbot: Using Cognitive Intercept to Improve Infor...UXPA International
 
Workshop: Chatbot in a box - Introduction to conversation design and conducti...
Workshop: Chatbot in a box - Introduction to conversation design and conducti...Workshop: Chatbot in a box - Introduction to conversation design and conducti...
Workshop: Chatbot in a box - Introduction to conversation design and conducti...Jon Temple
 
Chatbot and Virtual AI Assistant Implementation in Natural Language Processing
Chatbot and Virtual AI Assistant Implementation in Natural Language Processing Chatbot and Virtual AI Assistant Implementation in Natural Language Processing
Chatbot and Virtual AI Assistant Implementation in Natural Language Processing Shrutika Oswal
 
Student information chatbot final report
Student information chatbot  final report Student information chatbot  final report
Student information chatbot final report jaysavani5
 
Introduction to Chatbots
Introduction to ChatbotsIntroduction to Chatbots
Introduction to ChatbotsPriyab Satoshi
 
Artificial Intelligence Virtual Assistants & Chatbots
Artificial Intelligence Virtual Assistants & ChatbotsArtificial Intelligence Virtual Assistants & Chatbots
Artificial Intelligence Virtual Assistants & ChatbotsaNumak & Company
 
How to create a chatbot
How to create a chatbotHow to create a chatbot
How to create a chatbotRaj Vignesh K
 
Ai chatbot ppt.pptx
Ai chatbot ppt.pptxAi chatbot ppt.pptx
Ai chatbot ppt.pptxaashnareddy1
 
Chatbots Workshop by WideBot
Chatbots Workshop by WideBotChatbots Workshop by WideBot
Chatbots Workshop by WideBotBasant Medhat
 

Similar to The Software Challenges of Building Smart Chatbots - ICSE'21 (20)

Cómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intentoCómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intento
 
Using Chatbots in Extension Programming
Using Chatbots in Extension ProgrammingUsing Chatbots in Extension Programming
Using Chatbots in Extension Programming
 
Applications-of-Artificial intelligence-Chatbot.pdf
Applications-of-Artificial intelligence-Chatbot.pdfApplications-of-Artificial intelligence-Chatbot.pdf
Applications-of-Artificial intelligence-Chatbot.pdf
 
IRJET - A Study on Building a Web based Chatbot from Scratch
IRJET - A Study on Building a Web based Chatbot from ScratchIRJET - A Study on Building a Web based Chatbot from Scratch
IRJET - A Study on Building a Web based Chatbot from Scratch
 
UXPA2019 Not Your Average Chatbot: Using Cognitive Intercept to Improve Infor...
UXPA2019 Not Your Average Chatbot: Using Cognitive Intercept to Improve Infor...UXPA2019 Not Your Average Chatbot: Using Cognitive Intercept to Improve Infor...
UXPA2019 Not Your Average Chatbot: Using Cognitive Intercept to Improve Infor...
 
Chatbot
ChatbotChatbot
Chatbot
 
Workshop: Chatbot in a box - Introduction to conversation design and conducti...
Workshop: Chatbot in a box - Introduction to conversation design and conducti...Workshop: Chatbot in a box - Introduction to conversation design and conducti...
Workshop: Chatbot in a box - Introduction to conversation design and conducti...
 
Chat bots
Chat botsChat bots
Chat bots
 
Chatbot Technology
Chatbot TechnologyChatbot Technology
Chatbot Technology
 
Realizing AI Conversational Bot
Realizing AI Conversational BotRealizing AI Conversational Bot
Realizing AI Conversational Bot
 
Chatbot
ChatbotChatbot
Chatbot
 
Chatbot and Virtual AI Assistant Implementation in Natural Language Processing
Chatbot and Virtual AI Assistant Implementation in Natural Language Processing Chatbot and Virtual AI Assistant Implementation in Natural Language Processing
Chatbot and Virtual AI Assistant Implementation in Natural Language Processing
 
Student information chatbot final report
Student information chatbot  final report Student information chatbot  final report
Student information chatbot final report
 
Final presentation on chatbot
Final presentation on chatbotFinal presentation on chatbot
Final presentation on chatbot
 
Introduction to Chatbots
Introduction to ChatbotsIntroduction to Chatbots
Introduction to Chatbots
 
Artificial Intelligence Virtual Assistants & Chatbots
Artificial Intelligence Virtual Assistants & ChatbotsArtificial Intelligence Virtual Assistants & Chatbots
Artificial Intelligence Virtual Assistants & Chatbots
 
CHATBOT PPT-2.pptx
CHATBOT PPT-2.pptxCHATBOT PPT-2.pptx
CHATBOT PPT-2.pptx
 
How to create a chatbot
How to create a chatbotHow to create a chatbot
How to create a chatbot
 
Ai chatbot ppt.pptx
Ai chatbot ppt.pptxAi chatbot ppt.pptx
Ai chatbot ppt.pptx
 
Chatbots Workshop by WideBot
Chatbots Workshop by WideBotChatbots Workshop by WideBot
Chatbots Workshop by WideBot
 

More from Jordi Cabot

AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?Jordi Cabot
 
Model-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesModel-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesJordi Cabot
 
Smart modeling of smart software
Smart modeling of smart softwareSmart modeling of smart software
Smart modeling of smart softwareJordi Cabot
 
Modeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineModeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineJordi Cabot
 
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...Jordi Cabot
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortJordi Cabot
 
All Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursAll Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursJordi Cabot
 
Low-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringLow-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringJordi Cabot
 
Future Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingFuture Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingJordi Cabot
 
Ingeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulosIngeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulosJordi Cabot
 
An LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsAn LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsJordi Cabot
 
WAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsWAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsJordi Cabot
 
Temporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformTemporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformJordi Cabot
 
UMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL DatabasesUMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL DatabasesJordi Cabot
 
Multi-Platform Chatbot Modeling and Deployment with the Xatkit Framework
Multi-Platform Chatbot Modeling and Deployment with the Xatkit FrameworkMulti-Platform Chatbot Modeling and Deployment with the Xatkit Framework
Multi-Platform Chatbot Modeling and Deployment with the Xatkit FrameworkJordi Cabot
 
Model-driven Round-trip Engineering of REST APIs
Model-driven Round-trip Engineering of REST APIsModel-driven Round-trip Engineering of REST APIs
Model-driven Round-trip Engineering of REST APIsJordi Cabot
 
Robust Hashing for software models
Robust Hashing for software models Robust Hashing for software models
Robust Hashing for software models Jordi Cabot
 
Cognifying model-driven software engineering
Cognifying model-driven software engineeringCognifying model-driven software engineering
Cognifying model-driven software engineeringJordi Cabot
 
The secret life of rules in Software Engineering
The secret life of rules in Software EngineeringThe secret life of rules in Software Engineering
The secret life of rules in Software EngineeringJordi Cabot
 
Automatic discovery of Web API Specifications: an example-driven approach
Automatic discovery of Web API Specifications: an example-driven approachAutomatic discovery of Web API Specifications: an example-driven approach
Automatic discovery of Web API Specifications: an example-driven approachJordi Cabot
 

More from Jordi Cabot (20)

AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?
 
Model-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesModel-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architectures
 
Smart modeling of smart software
Smart modeling of smart softwareSmart modeling of smart software
Smart modeling of smart software
 
Modeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineModeling should be an independent scientific discipline
Modeling should be an independent scientific discipline
 
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effort
 
All Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursAll Researchers Should Become Entrepreneurs
All Researchers Should Become Entrepreneurs
 
Low-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringLow-code vs Model-Driven Engineering
Low-code vs Model-Driven Engineering
 
Future Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingFuture Trends on Software and Systems Modeling
Future Trends on Software and Systems Modeling
 
Ingeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulosIngeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulos
 
An LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsAn LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model Transformations
 
WAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsWAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIs
 
Temporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformTemporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platform
 
UMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL DatabasesUMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL Databases
 
Multi-Platform Chatbot Modeling and Deployment with the Xatkit Framework
Multi-Platform Chatbot Modeling and Deployment with the Xatkit FrameworkMulti-Platform Chatbot Modeling and Deployment with the Xatkit Framework
Multi-Platform Chatbot Modeling and Deployment with the Xatkit Framework
 
Model-driven Round-trip Engineering of REST APIs
Model-driven Round-trip Engineering of REST APIsModel-driven Round-trip Engineering of REST APIs
Model-driven Round-trip Engineering of REST APIs
 
Robust Hashing for software models
Robust Hashing for software models Robust Hashing for software models
Robust Hashing for software models
 
Cognifying model-driven software engineering
Cognifying model-driven software engineeringCognifying model-driven software engineering
Cognifying model-driven software engineering
 
The secret life of rules in Software Engineering
The secret life of rules in Software EngineeringThe secret life of rules in Software Engineering
The secret life of rules in Software Engineering
 
Automatic discovery of Web API Specifications: an example-driven approach
Automatic discovery of Web API Specifications: an example-driven approachAutomatic discovery of Web API Specifications: an example-driven approach
Automatic discovery of Web API Specifications: an example-driven approach
 

Recently uploaded

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 

Recently uploaded (20)

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 

The Software Challenges of Building Smart Chatbots - ICSE'21

  • 1. The Software Challenges of Building Smart Chatbots – ICSE’21 TB @xatkit – xatkit.com
  • 3. Jordi Cabot - @JordiCabot Gwendal Daniel - g__daniel
  • 4. Can you help us create a chatbot to help newcomers to write good bug reports on GitHub? Sure! It’s just a set of questions & answers, this will be pretty simple! Narrator It wasn’t. Once upon a time in 2018 (we were young and naïve)
  • 5. We were asked to build a bot. We ended up building a bot platform But at least we’ve learnt some things along the way that today we want to share with you 3 times so far!
  • 6. The plan for today • THEORY (30’) • HANDS-ON PRACTICE (1H45’) • You can watch • Better if you watch and try (installing included!) • Ask questions on the chat at anytime, we’ll keep an eye on them
  • 7. Why you all need to have some bot building notions
  • 8.
  • 9. And more predictions: - Business Insider experts predict that by 2022, banks can automate up to 90% of their customer interaction using chatbots - By 2024, consumer retail spend via chatbots worldwide will reach $142 billion—up from just $2.8 billion in 2019. Chatbot market is worth over 1 Billion USD
  • 10.
  • 11. Chatbots <-> Software engineers • Software Engineers -> Chatbot – Chatbots are a new type of software artefact that we’ll need to consider in our dev projects (Multi-experience dev) – Plenty of research opportunities to uncover • Chatbot -> Software Engineering – Bots are more and more playing a supportive role in many SE tasks (e.g. in GH) so better to know how they work and their limitations
  • 13. What is exactly a Chatbot? • Bot are software components • Chatbot = Bot + Chat interface • Voicebot = Bot + Voice Interface Voicebot Chatbot Bot
  • 14. VoiceBot • Alexa, Google Assistant ,… • They hide a chatbot inside 1. Speech-to-text 2. Process the text as a chatbot 3. Text-to-speech to reply
  • 15. Chatbot vs LiveChat • LiveChat: a person is behind • They can be combined – Bot  Person: when the bot doesn’t know how to answer (or the visitor is specially “interesting”) – Person  Bot: when no support person is available or the client is not worth
  • 16. Bots and NLP/NLU • At the core, a NLU/NLP engine with two key missions – Classify the user utterance (i.e. input text) in one of the intents (set of possible questions/requests) defined in the bot – Identify the parameters (called « entities ») from the utterance
  • 17. We ignore open-domain bots (e.g. LaMDA) • They can chat about everything but – A complete black-box – ``Useless’’ for a specific business – You could use them (or QA systems) as a fallback
  • 18. Why chatbot development is so challenging?
  • 19. Chatbots combine all the complexity of bots with the complexity of NL (including typos, trolls, sentiment analysis…)
  • 20. Many pieces to assemble Input/Output Messaging channels External Platforms NLU Engine Events!
  • 21. Chatbots are complex software systems Conversation Logic Text Processing External Services Messaging Platforms Deployment Evolution Maintenance Tests
  • 22. Jordi Cabot¹, Loli Burgueño², Robert Clarisó², Gwendal Daniel², Jorge Perianez-Pascual³,and Roberto Rodriguez-Echeverria³ ¹ICREA, Barcelona, Spain ²Open University of Catalonia, Barcelona, Spain ³University of Extremadura, Cáceres, Spain Testing challenges for NLP-intensive bots BotSE ‘21
  • 23. NLP for chatbots in 5 min
  • 24. NLP in a chatbot implies Parameters (entities) I would like to order a medium pepperoni pizza Intent Input text (utterance) • Understand what the user is trying to ask the bot • Identify and gather the data in the request that the bot needs to construct the response
  • 25. NLU approaches • Regular expressions • Require an almost exact match. Not used • Grammar-based approaches • Useful for small domains with a very specific vocabulary and constructs • E.g. Stanford Parser • Neural Networks - Multiclass classifiers 1. You provide some training sentences for each intent (the "classes" ). 2. The classifier learns from these sentences 3. It assigns any new input text to one of the classes (with %confidence)
  • 26. Example: bot that greets you, informs about the schedule and lets you buy a pizza Greetings Hi Good morning Good afternoon Hello Morning! I’d like to buy a pizza I want a pizza Can I order a pizza? Buy Are you open? Is it open now? What are your opening hours? At what time do you start? Schedule If a user says, “I would like to order a pizza” what is the closest intent? Not that easy when intents start to overlap (e.g. offering a job vs looking for a job: “can I offer you a job?” vs “do you have any job offer”)
  • 27. Entity recognition • We need to understand the intent but also identify the entities • Much easier if PizzaType is an enumeration ({ Pepperoni, Veggie, Hawaian ,…}) instead of the any string ChooseYourPizza I’d like a PizzaType pizza I’m taking a PizzaType pizza I think I’m going for a PizzaType
  • 28. Common tricks in NLU Engines • Tokenizers split the sentences into words • Stemmers identify the lemma of the word (e.g. to focus on the verb, not on the tense of the verb for matching purposes) • Synonyms and paraphrasing are an automatic way to expand the training sentences • Entity augmentation also generalize training sentences • E.g. What’s the weather in Barcelona -> What’s the weather in @city (the intent will match no matter what city the user asks for, no need to train the classifier with all the cities of the world as it will already know the list of cities itself). • Augmentation is possible for a large number of data types and common concepts (measures, countries, dates,…) https://medium.com/@jseijas/how-to-build-your-own-nlp-for-chatbots-9b4c08eb03a9
  • 29. Beyond intent classification • Great bots go beyond providing the right answer, e.g. they could show some empathy • Several language models (for toxicity detection, for sentiment analysis, language identification, emoji support…) can be easily integrated in bots
  • 30. PRO tip: Monitor your bots • You will fail to predict: • What users want to know • How they express their intentions • Careful with self-learning • Filter out what the bot needs to add as training sentences to avoid strange derivations
  • 31. What bot building tool should I use?
  • 32. >100 bot platforms • Rasa, BotPress, Chatfuel, Inbenta, Botsify, Flow XO, Xatkit… • And plenty NLP engines: DialogFlow, Lex, LUIS, Watson, NLP.js
  • 33. It all depends • What are your priorities – Open source? – Free? – Programming language of the bot? – Natural languages (e.g. Catalan) – Availability of connectors – On-premises option? – Plain textual bots or fully functional ones? – Low-code/ no-code or tech skills? – Possibility to migrate from one NLP engine to another? – Monitoring dashboard / reports ? – …
  • 35. Xatkit’s philosophy: Do not reinvent the wheel Other solutions Plenty of great NLU engines and libraries, let’s not waste our time building a new one but take the best of breed and focus on features to help you create better bots Xatkit is a chatbot orchestration platform
  • 36. Another reason to avoid strong coupling to specific NLU/NLP libraries
  • 37. Xatkit architecture Chatbot Designer Intent Recognition NLU Providers (platform-specific) Platform DSL / Libraries Intent DSL Xatkit DSL Chatbot User Instant Messaging Platforms Xatkit Runtime Execution DSL uses uses Platform-independent chatbot definition External Services Deployment Configuration Platform Designer
  • 38. Xatkit DSL • Bots are created with the Xatkit DSL offering a chatbot- specific syntax for creating: – Intents the bot needs to match – The behavior to execute in response to the matched intents • Our DSL aims to combine the benefits of: – Having a chatbot-specific DSL that facilitates the creation of chatbot applications by providing higher-level chatbot modeling primitives – The full power of a general programming language In this scenario, Internal DSLs are the way to go (Martin Fowler)
  • 39. Our DSL is implemented as a Java Fluent API • Create bots using your preferred Java editor – Benefit from all existing Java tooling when developing bots (e.g. debuggers) – Reuse any Java library for complex bot behaviors – Intuitive Fluent Interfaces to help you create advanced conversations – Based on state machine semantics to build any type of bot (there is also a no-code interface, e.g. using excel, for non-tech people)
  • 40. I18n: Xatkit helps you build bots ready to be localized
  • 41. Easy deployments A Xatkit bot can be packaged as a single jar with no external dependencies. Just execute the jar to get the bot up and running Via a simple configuration file you can connect your bot with external services, e.g. NLP Engines and communication channels
  • 42. Xatkit is available on GitHub
  • 43. To know more: xatkit.com / info@xatkit.com Xatkit is your best bet to sell more doing less @xatkit – xatkit.com

Editor's Notes

  1. We’re still young 
  2. We believe we had good arguments to decide that the world needed another chatbot development platform
  3. This is really designed to be a hands-on tutorial. We’ll start by installing Xatkit
  4. AI and Virtual assistants are everywhere
  5. And the chatbot market is growing non-stop
  6. Typically, this voice interface ends up being a speech-to-text component so a voicebot is a chatbot plus this speech-to-text and text-to-speech layer on top
  7. Google on Tuesday unveiled its latest language breakthrough, the development of a conversational language model called LaMDA (Language Model for Dialogue Applications). Google discussed the new model during the keynote address at its I/O conference.  Like other recently-developed language models, including BERT and GPT-3, LaMDA is built on Transformer, the neural network architecture that Google Research invented and open-sourced in 2017.  However, unlike other language models, Google's LaMDA was trained on dialogue, teaching it how to engage in free-flowing conversations. This training taught LaMDA to deliver responses that not only make sense given the context but are specific. 
  8. By complexity of NL, I mean that beyond intent classification, you’ve plenty of additional issues to deal with in NL: trolls, typos, sentiment analysis
  9. When you start looking at what you need to build this bot you realize there are many more components involved Event webhooks
  10. We´ll assume you’re familiar with other complications such as APIs, webhooks,…
  11. The network uses synonyms and stemming and lemmatization to classify the intent Sometimes we may need to help the Engine by putting close questions in different paths
  12. Hay mucho “graciosillo” suelto, no queremos que el bot aprenda palaborats
  13. La diferencia entre un motor NLP y una plataforma es que el motor NLP está especializado en clasificar el texto del usuario, no tanto en lo qué el bot deber hacer con ella.