9. 999
• Software engineer, consultant and code Jedi
• Developing Software professionally since 2013
• Software Craftsmanship advocate
• Clean Coder
• OzCode Evangelist
@MoaidHathot
moaidh@codevalue.net
http://www.moaid.codes
About Me
10. 10
Cloud Computing
Advanced Mobile
Technologies
UI/UX & Graphic
Design
Cross Platform
Development
Advanced Web
Technologies
ALM & DevOps Software Architecture
IOT & Embedded
Software
Training & Mentoring
Development
Management &
Methodology
About CodeValue
11. 11
Debug like a wizard Quit debugging, spend more time writing brilliant software
Magic Glance / Figure out complex expressionsLINQ Debugging / Know the flow of your LINQ queries
Reveal / Focus on data that actually matterSearch/ Find that needle in a haystack of data
With our Visual Studio extension for C#, follow the road to a bug-free world
oz-code.com | @oz_code
14. Introduction to Chat Bots
Natural Language User Interface (NLUI)
Another form of UX/UI
The Hardest part is designing the conversation flow
14
15. Introduction to Chat Bots
A bot consist of several parts
Managing Conversational flow
Understanding user intent
State persistency
Connect to channels (Skype, Slack, Teams, Messager, etc…)
16. Introduction to Chat Bots
A bot consist of several parts
Managing Conversational flow
Understanding user intent
State persistency
Connect to channels (Skype, Slack, Teams, Messager, etc…)
All of the above can be done using:
Microsoft’s BotBuilder SDK
Azure Cognitive Services
17. Introduction to Chat Bots
A bot consist of several parts
Managing Conversational flow
Understanding user intent
State persistency
Connect to channels (Skype, Slack, Teams, Messager, etc…)
All of the above can be done using:
Microsoft’s BotBuilder SDK
Azure Cognitive Services
17
+ = Awesome!!!
20. Bot Framework
Key Concepts
Connector – A single REST API for communicating across multiple channels
Activity – A message for passing information between bot and user.
MessageActivity – passing messages
DeleteUserData
ConversationUpdate – member being added/removed
ContactRelationUpate – Bot being added/removed from a user Contact List
Typing – The user is typing.
Dialog – A dialog for a bot is like a screen for a Desktop app.
20
23. Dialogs
Dialogs
Stacked – BotBuilder SDK maintain and serialize dialogs as a stack.
Code continuations allow modeling a state machine.
Can be chained in a Linq-like API.
Can be generated with FormFlow and FormBuilder.
Various Prompts are available as dialogs.
Dialogs can be interrupted by Global message handlers using Scorables
23
Root Dialog
Help Dialog Order Dialog
24. Conversation Flow
The active dialog takes control of conversation flow
Using the SDK you can:
IDialogStack.Wait() – Suspect the current dialog until an event has been sent to the bot.
IDialogStack.Done() – Complete the current dialog and return a result to the parent dialog.
IDialogStack.Forward() – Call a child dialog, add it to the top of the stack and forward the
message.
IDialogStack.Call() – Call a child dialog and add it to the top of the stack
IDialogStack.Fail() – Fail the current dialog and return an exception to the parent dialog.
IDialogStack.Reset() – Resets the Stack.
IDialogStack.Post() – Post an event to the queue.
24
26. Bot State
Multiple level of State
User Data
Conversation specific data
Conversation specific data for specific user
Dialog data
Persisted and managed by the Bot Framework State Service
IBotStorage
In-memory data storage is available for testing and prototyping.
Custom Data Storage can be created. For example for
CosmoDB
Table Storage
26
29. LUIS
LUIS – Language Understanding Intelligent Service
Understand what a user wants in their own words.
Based on machine learning algorithms
Allows you to ‘train’ it under a few minutes according to your domain.
Key LUIS concepts
Intent – represents actions the user wants to perform.
Utterances – text input that LUIS extract Intents from.
Entities – detailed information in a relevant that LUIS can extract.
BotBuilder SDK can work with LUIS out of the box!
29
31. Summary
Chat bots are another form of UI (NLUI)
Microsoft Bot Framework makes it easier to write your bot
Standard connection to various channels
BotBuilder SDK
Integration with cognitive Services
The trickiest part is still designing the conversation
31
CodeValue is rooted in the Israeli High-tech ecosystem and expertise
Founded by a team of visionary technical experts and consultants in 2010
A team of 200 experts (over 30 leading architects), and growing…
Built around nurturing talents, hiring experts and developing potentials
Growing through a track record of solving complex technical challenges
Successfully implementing software development processes in companies of all scales
CodeValue is at the leading edge of advanced software development
Community of experts globally recognized by Microsoft, Google and Amazon
Early access to new technologies, hands-on practice at all levels
Decades of “real world” development experience
1 Microsoft MRD, 3 Microsoft MVP, 2 Google GDE & Mentors, AWS certified
CodeValue is rooted in the Israeli High-tech ecosystem and expertise
Founded by a team of visionary technical experts and consultants in 2010
A team of 200 experts (over 30 leading architects), and growing…
Built around nurturing talents, hiring experts and developing potentials
Growing through a track record of solving complex technical challenges
Successfully implementing software development processes in companies of all scales
CodeValue is at the leading edge of advanced software development
Community of experts globally recognized by Microsoft, Google and Amazon
Early access to new technologies, hands-on practice at all levels
Decades of “real world” development experience
1 Microsoft MRD, 3 Microsoft MVP, 2 Google GDE & Mentors, AWS certified