ebook img

Developing Bots with Microsoft Bots Framework: Create Intelligent Bots using MS Bot Framework and Azure Cognitive Services PDF

293 Pages·2018·11.94 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Developing Bots with Microsoft Bots Framework: Create Intelligent Bots using MS Bot Framework and Azure Cognitive Services

Developing Bots with Microsoft Bots Framework Create Intelligent Bots using MS Bot Framework and Azure Cognitive Services — Srikanth Machiraju Ritesh Modi Developing Bots with Microsoft Bots Framework Create Intelligent Bots using MS Bot Framework and Azure Cognitive Services Srikanth Machiraju Ritesh Modi Developing Bots with Microsoft Bots Framework Srikanth Machiraju Ritesh Modi Hyderabad, Andhra Pradesh, India Hyderabad, Andhra Pradesh, India ISBN-13 (pbk): 978-1-4842-3311-5 ISBN-13 (electronic): 978-1-4842-3312-2 https://doi.org/10.1007/978-1-4842-3312-2 Library of Congress Control Number: 2017962439 Copyright © 2018 by Srikanth Machiraju and Ritesh Modi This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Cover image by Freepik (www.freepik.com) Managing Director: Welmoed Spahr Editorial Director: Todd Green Acquisitions Editor: Nikhil Karkal Development Editor: James Markham Technical Reviewer: Puneet Jindal Coordinating Editor: Sanchita Mandal Copy Editor: April Rondeau Compositor: SPi Global Indexer: SPi Global Artist: SPi Global Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, email [email protected], or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please email [email protected], or visit http://www.apress.com/rights-permissions. Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales web page at http://www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the book’s product page, located at www.apress.com/ 978-1-4842-3311-5. For more detailed information, please visit http://www.apress.com/ source-code. Printed on acid-free paper Contents About the Authors �����������������������������������������������������������������������������ix About the Technical Reviewer ����������������������������������������������������������xi Introduction ������������������������������������������������������������������������������������xiii Target Audience �������������������������������������������������������������������������������xv ■ Chapter 1: Conversations as Platforms ������������������������������������������1 Types of User Interfaces ��������������������������������������������������������������������������2 Drawbacks of Conventional UI ����������������������������������������������������������������3 Conversations as Platform ����������������������������������������������������������������������5 Introduction to Microsoft Bot Framework �����������������������������������������������7 Meet a Few Bots �������������������������������������������������������������������������������������9 Summarize ���������������������������������������������������������������������������������������������������������������9 Your Face ����������������������������������������������������������������������������������������������������������������10 Azure Bot Service ����������������������������������������������������������������������������������11 LUIS Bot ������������������������������������������������������������������������������������������������������������������13 QnA Bot �������������������������������������������������������������������������������������������������������������������13 Proactive Bot ����������������������������������������������������������������������������������������������������������14 Direct Line ���������������������������������������������������������������������������������������������15 IOT and Bots ������������������������������������������������������������������������������������������16 Other Bot Frameworks ��������������������������������������������������������������������������16 Bot Abuse ����������������������������������������������������������������������������������������������17 Summary �����������������������������������������������������������������������������������������������17 iii ■ Contents ■ Chapter 2: Develop Bots Using �NET Core �������������������������������������19 Designing Bot Applications ��������������������������������������������������������������������20 Setting Up the Development Environment ��������������������������������������������23 Testing the Bot ��������������������������������������������������������������������������������������������������������26 Debugging the Bot Application �������������������������������������������������������������������������������27 Bot Application Life Cycle ����������������������������������������������������������������������28 Bot Architecture �������������������������������������������������������������������������������������31 Bot Authentication ���������������������������������������������������������������������������������32 Building a Bot ����������������������������������������������������������������������������������������33 Deploy Bot to Azure �������������������������������������������������������������������������������38 Register the Bot �������������������������������������������������������������������������������������42 Configure Channels �������������������������������������������������������������������������������45 Configuring Skype Bot ��������������������������������������������������������������������������������������������47 Configuring Web Chat ���������������������������������������������������������������������������������������������50 Summary �����������������������������������������������������������������������������������������������52 ■ Chapter 3: Develop Bots Using Node�js ����������������������������������������53 Setting Up a Development Environment ������������������������������������������������54 Build Hello World Bot Using VS Code �����������������������������������������������������54 Debugging Using VS Code ���������������������������������������������������������������������60 Building Bots with Conversations ����������������������������������������������������������61 Dialogs ��������������������������������������������������������������������������������������������������������������������61 Prompts ������������������������������������������������������������������������������������������������������������������62 Messages ���������������������������������������������������������������������������������������������������������������67 State �����������������������������������������������������������������������������������������������������������������������68 Deploying to Azure ��������������������������������������������������������������������������������69 Summary �����������������������������������������������������������������������������������������������73 iv ■ Contents ■ Chapter 4: Channels ���������������������������������������������������������������������75 Channels and Channel Data ������������������������������������������������������������������75 Channel Data ����������������������������������������������������������������������������������������������������������78 Build a Chat Bot Using an Email Client ��������������������������������������������������80 Build a Chat Bot Using Slack Channel and API ��������������������������������������87 Multi-dialog Bot Using Slack and Slack Channel Data �������������������������������������������89 Onboarding a Slack Bot ������������������������������������������������������������������������������������������95 Remote Debugging Slack Bot on Development Machine ���������������������������������������96 Summary �����������������������������������������������������������������������������������������������97 ■ Chapter 5: Bot Conversations �������������������������������������������������������99 Understanding Conversations �������������������������������������������������������������100 Messages �������������������������������������������������������������������������������������������������������������100 Activity ������������������������������������������������������������������������������������������������������������������101 Relationship Between Channels, Conversation, User, and Bot������������������������������102 Message Under the Hood �������������������������������������������������������������������������������������103 Conversation Under the Hood �������������������������������������������������������������������������������104 Building Bots with Conversations ��������������������������������������������������������105 Attachments ���������������������������������������������������������������������������������������������������������105 Hero Card ��������������������������������������������������������������������������������������������������������������111 Thumbnail Card ����������������������������������������������������������������������������������������������������113 Carousal ����������������������������������������������������������������������������������������������������������������114 Buttons �����������������������������������������������������������������������������������������������������������������116 Prompts ����������������������������������������������������������������������������������������������������������������116 Summary ���������������������������������������������������������������������������������������������121 v ■ Contents ■ Chapter 6: Skype Calling Bot ������������������������������������������������������123 Introducing Skype Calling Bots �����������������������������������������������������������124 Use Cases for Skype Calling Bots ��������������������������������������������������������124 Enabling Calling for Your Bot ���������������������������������������������������������������125 Building a Skype Calling Bot ���������������������������������������������������������������126 Sequence of Events �����������������������������������������������������������������������������130 Debugging Skype Calling Locally Using Ngrok ������������������������������������139 Speech-to-Text Using Bing Speech API �����������������������������������������������141 Summary ���������������������������������������������������������������������������������������������149 ■ Chapter 7: Storing State �������������������������������������������������������������151 Stores for Bot State �����������������������������������������������������������������������������152 State Service ���������������������������������������������������������������������������������������153 Storing and Retrieving State Using StateClient �����������������������������������155 Storing and Retrieving State with Dialogs�������������������������������������������158 More Control over State with Dialogs ��������������������������������������������������162 Custom State Data Store ���������������������������������������������������������������������165 Overview of Cosmos DB ���������������������������������������������������������������������������������������166 Cosmos DB as Custom State Data Store ��������������������������������������������������������������166 Table Storage as Custom State Data Store �����������������������������������������������������������173 Summary ���������������������������������������������������������������������������������������������180 ■ Chapter 8: Dialogs ����������������������������������������������������������������������181 The Dialog Model ���������������������������������������������������������������������������������181 IBotData ����������������������������������������������������������������������������������������������������������������182 IBotTouser �������������������������������������������������������������������������������������������������������������182 IDialogStack ����������������������������������������������������������������������������������������������������������182 IBotContext �����������������������������������������������������������������������������������������������������������183 vi ■ Contents Dialog Stack ����������������������������������������������������������������������������������������183 Dialog Context �������������������������������������������������������������������������������������183 Root Dialog ������������������������������������������������������������������������������������������183 Building a Simple Dialog Bot ���������������������������������������������������������������184 SimpleDialog�cs ����������������������������������������������������������������������������������������������������184 MessagesController�cs ������������������������������������������������������������������������������������������188 Creating Multi-Dialog Bots ������������������������������������������������������������������189 Scenario ���������������������������������������������������������������������������������������������������������������190 Solution�����������������������������������������������������������������������������������������������������������������191 RootDialog�cs ��������������������������������������������������������������������������������������������������������192 Synonym�cs ����������������������������������������������������������������������������������������������������������194 Antonym�cs �����������������������������������������������������������������������������������������������������������194 Support�cs ������������������������������������������������������������������������������������������������������������194 MessagesController�cs ������������������������������������������������������������������������������������������195 FormFlow ��������������������������������������������������������������������������������������������195 Building a Simple FormFlow Bot ��������������������������������������������������������������������������196 FormBuilder �����������������������������������������������������������������������������������������199 Customizing the Prompts �������������������������������������������������������������������������������������199 Customizing the Order of Prompts �����������������������������������������������������������������������200 Conditional Fields �������������������������������������������������������������������������������������������������200 Summary ���������������������������������������������������������������������������������������������202 ■ Chapter 9: Natural Language Processing �����������������������������������203 Cognitive Services �������������������������������������������������������������������������������204 LUIS �����������������������������������������������������������������������������������������������������204 Intents �������������������������������������������������������������������������������������������������������������������204 Entities ������������������������������������������������������������������������������������������������������������������205 Utterances ������������������������������������������������������������������������������������������������������������205 Features ����������������������������������������������������������������������������������������������������������������206 LUIS Development Lifecycle ���������������������������������������������������������������������������������206 vii ■ Contents Sample Application ������������������������������������������������������������������������������211 Creating Intelligent Bots ����������������������������������������������������������������������215 Creating Intelligent Bots Without Dialogs �������������������������������������������������������������215 Summary ���������������������������������������������������������������������������������������������232 ■ Chapter 10: Azure Cognitive Services ����������������������������������������233 Introduction to Microsoft Cognitive Services ��������������������������������������234 Getting Started ������������������������������������������������������������������������������������238 Building Smart Bots with Bing Web Search ����������������������������������������244 Query Parameters �������������������������������������������������������������������������������������������������247 Bing Search Request ��������������������������������������������������������������������������������������������249 Handling Errors �����������������������������������������������������������������������������������253 Optical Character Recognition with Computer Vision API �������������������������������������256 Summary ���������������������������������������������������������������������������������������������260 ■ Chapter 11: Bot Operations ��������������������������������������������������������261 Application Insights �����������������������������������������������������������������������������261 Getting Started ������������������������������������������������������������������������������������262 Enable Bot Analytics ����������������������������������������������������������������������������271 Advanced Analytics �����������������������������������������������������������������������������277 Summary ���������������������������������������������������������������������������������������������278 Index ����������������������������������������������������������������������������������������������279 viii About the Authors Srikanth Machiraju has over nine years of experience as a developer, architect, technical trainer, and community speaker. He is currently working with Microsoft Hyderabad designing and preaching modern application development using cutting-edge platforms and technologies. Prior to Microsoft, he worked with BrainScale as a corporate trainer and senior technical analyst on application design, development, and migration to cloud. He is a tech-savvy developer who is passionate about embracing new technologies and sharing his learning via blogs or community engagements. He has also authored Learned Windows Server Containers, blogs at https://vishwanathsrikanth.wordpress.com, and is active on LinkedIn at https://www.linkedin.com/in/vishsrik/. Ritesh Modi is an ex-Microsoft Commercial software engineering senior technology evangelist. He is an architect, senior evangelist, cloud architect, published author, speaker, and a leader known for his contributions to Datacenter, Azure, Bots, Blockchain, cognitive services, DevOps, artificial intelligence, and automation. Currently, he is working as principle consultant with Infront Consulting. He is the author of multiple books, including Azure for Architects and DevOps with Windows Server 2016— both available on Amazon and B&N. He co-authored another book titled Introducing Windows Server 2016 Technical Preview with the Windows Server team. He has spoken at more than 15 conferences, including TechEd and PowerShell Asia conference, and is a published author for MSDN magazine. He has more than a decade of experience in building and deploying enterprise solutions for customers. He has more than 25 technical certifications. His interests and hobbies include writing books, playing with his daughter, watching movies, and learning new technologies. His blog is available at https://automationnext.wordpress.com and his Twitter handle is @automationnext. He is based out of Hyderabad, India. ix

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.