After the first chapter my imagination was stimulated and I couldn't wait to get more details.
"Hello, I'm Ginger, your virtual representative. How can I help you today?"
"I'm sorry you aren't feeling well today, George. Do you need to schedule a sick day?"
"Choosing an engagement ring is an exciting event! Let me help you find the perfect diamond."
Welcome to the chatbot revolution! Nowadays, chatbots are talking you through your taxes, recommending suitable places to eat out, and even helping diagnose medical conditions. Chatbots can be interesting, fun, and challenging beasts to develop, and Building Chatbots with Microsoft Bot Framework and Node.js is your guide to the latest ideas and technologies for making virtual conversational companions that get the job done.
Part 1: First Steps
1. Introduction to Chatbots
1.1. Understanding Chatbots
1.2. Chatbots vs Websites & Mobile Applications
1.2.1. Evolution of chatbots
1.2.2. Why Chatbots?
1.2.3. Sample use cases for chatbots
1.2.4. Different types of Chatbots
1.3. How do chatbots work?
1.3.1. Inside the Chatbot Server
1.4. Introduction to Microsoft Bot Framework
1.4.1. Why Bot Framework?
1.4.2. The core parts of Microsoft bot framework
1.4.3. Node.js vs .NET
1.4.4. Why Node?
1.5. Building a simple echo chatbot
1.5.1. Setting up our ES2015 project
1.5.2. Coding our bot
1.6. Looking Ahead
2. Conversational Design
2.1. Understanding conversational design
2.2. Why is conversational design important?
2.3. Guiding principles of conversational design
2.3.1. Start with the purpose
2.3.2. Understand your users
2.3.3. Handle generic conversations
2.3.4. Designing the Conversational Flow for “Stay Fit”
2.4. Applying the design principles
2.4.1. Defining the purpose for “Stay Fit”
2.4.2. Target users for “Stay Fit”
2.4.3. Designing the conversational flow for “Stay Fit”
2.4.4. Implementing the conversational flow with code
2.4.5. Testing our bot
2.5. An overview of what’s next
2.5.1. Understanding the user intent
2.5.2. Extracting required information from the user messages
2.5.3. Implementing conversational flows
2.5.4. Remembering context
2.5.5. Replying with Cards, Images and Menus
2.6.1. important steps of conversational design
2.6.2. The guiding principles for building chatbots
Part 2: Building a Health Assistant
3. Recognizing Intent from the User Query
3.1. What is intent?
3.1.1. Designing our Intents
3.2. Intent Recognition with simple string matching
3.2.1. Implementing string matching in our chatbot
3.2.2. Problems with simple string matching
3.3. Intent recognition with AIML
3.3.1. Creating a chatbot with AIML
3.4. Intent recognition with NLP
3.4.1. What is NLP?
3.4.2. Natural Language Understanding (NLU)
3.4.3. Natural Language Generation (NLG)
3.5. A deeper look into Intent Recognition using NLP
3.6. LUIS overview
3.6.1. Creating a LUIS application
3.6.2. Adding intents
3.7. Integrating Luis into our bot
3.7.1. Testing the endpoint
3.7.2. How does Luis pass intents?
3.7.3. Adding Luis recognizer to our code
3.7.4. Testing our bot
3.8. Alternatives to Luis
3.8.3. AWS Lex and IBM Watson
4. Recognizing Entities
4.1. Understanding and Using Entities in our Chatbot
4.1.1. Intents vs Entities
4.1.2. Entity Recognition
4.2. Using LUIS for Entity Recognition
4.2.1. Defining our entities
4.2.2. Testing the Entity Recognition service
4.2.3. Different Entity types in LUIS
4.3. Using Entities inside our chatbot
4.3.1. Testing our bot
5. Managing Conversational Flow with Dialog Management
5.1. What is Dialog management
5.2. Why we need Dialog Management
5.2.1. Filling incomplete information
5.2.2. Acknowledging the user request
5.2.3. Getting confirmations
5.3. Loops inside the conversational flow
5.4. Exploring the dialog class in Microsoft Bot Framework
5.4.1. Implementing a simple dialog
5.4.2. Dialogs invoking other dialogs
5.4.3. Filling incomplete information using prompts
5.5. Using replaceDialog to loop for the right input
5.6. Different prompt types
5.6.1. Prompts Text
5.6.2. Prompts Confirm
5.6.3. Prompts Number
5.6.4. Prompts Time
5.6.5. Prompts Attachment
5.6.6. Prompts Choice
6. Managing State Data
6.1. Storage Containers
6.1.5. Data Persistence
6.2. Using in-memory data storage
6.3. Using Table Storage
6.3.1. Create Azure account
6.3.2. Setup Azure Table Storage
6.3.3. Using the Azure table storage inside our bot
6.4. Using Cosmos DB DocumentDB
6.4.1. Create Azure account
6.4.2. Setup Azure Cosmos DB
6.4.3. Using Cosmos DB inside our bot
6.5. Developing our own storage adapter
6.6. Making our bot contextual using state data
7. Using Images, Cards, Carousels and Buttons
Part 3: Out in the wild
8. Connecting to an External DB
9. Using External API
10. Setting up Analytics
11. Deploying the Bot
12. Connecting to Messaging Applications
About the TechnologyWith so many flesh-and-blood humans needing support, digital assistants can offer a valuable service finding out what users need and improving the basic process of online data gathering. With more and more chatbots being deployed, it's increasingly important to learn the best practices and the right development tools. Microsoft Bot Framework offers a fast track to building great chatbots you can deploy on websites or via SMS, Slack, Skype, and beyond. It offers a comfortable development environment that uses C# or Node so you can apply the dev skills you already have to this exciting new frontier.
About the bookBuilding Chatbots with Microsoft Bot Framework and Node.js walks you concept-by-concept through the process of building your own capable chatbot. With this in-depth, practical book you'll learn the basics of chatbot design, development, and deployment by building a virtual health assistant. After getting started with the incredibly helpful Microsoft Bot Framework, you'll lay down the foundations for the health assistant bot. Then, you'll introduce natural language processing to mimic human speech patterns so your bot can understand and engage in conversations. Through practical examples and tutorials, you'll master conversation flow principles and apply prompts and waterfall dialogs to get your bot talking smoothly as it gathers data. You'll also master adding an external database, analytics, and the ability for your bot to respond to images and buttons. Finally, you'll learn how to deploy your finished chatbot on Slack, Facebook, and Skype so it can interact with the world!
- Understanding Microsoft Bot Framework
- Using NLP for natural conversations
- Working with prompts and dialogs
- Maintaining context with databags
- Connecting to external databases
- Setting up analytics
- Deploying your finished bot
About the readerWritten for developers with basic knowledge of HTTP and Node. No prior experience with chatbots is needed.
About the authorG Akshay Kulkarni is the founder of ozz.ai which is a NLP tool for chatbots. Prior to this he worked at Microsoft for 2 years, building several chatbots and training other employees to do the same during his time there. He is also the creator of several open source projects, including Flask Wizard, a python framework for building chatbots, and Api.ai Recognizer, which lets you use api.ai alongside Microsoft Bot Framework.
An excellent introduction to chatbots in general.
This book gives an excellent introduction to using a range of Microsoft technologies to build your own working chatbots.