Conversations as a Platform

Post on 15-Apr-2017

126 views 0 download

Transcript of Conversations as a Platform

Conversations as a PlatformJoshua.Drew@Microsoft.com

“BOTS are like new APPLICATIONS that you can CONVERSE with”

Conversations as a Platform

- Satya Nadella

Conversationsas a Platform

People

Digital assistants

Bots

Conversationsas a Platform

Human language is the new UIConversationsas a Platform Bots are the new apps;

digital assistants are meta appsIntelligence infused into all interactions

People

Digital assistants

Bots

Your bots - wherever your users are talking.Build and connect intelligent bots to interact with your users naturally wherever they are, from text/sms to Skype, Slack, Office 365 mail and other popular services

Bot Framework

• Build & connect intelligent bots• Interact naturally wherever your

users are talking:• Text/SMS• Skype• Facebook• Slack• Email• GroupMe• Telegram• Web Chat• etc.

Microsoft Bot Framework

• Bot Framework is a Microsoft-operated service and an SDK

• Bot Framework is one of many tools Microsoft offers for building a complete bot

• Others include: LUIS, Speech APIs, Microsoft Azure, and more

Microsoft Bot Framework

Your conversation logic

Logic

Web Service

Your Bot

Bot Builder SDK

(Node.js + C#)

LUIS

• Build with C# or Node.js• You host your bot• Dialogs to model a

conversation• Many types of

dialog• Natural Language

Understanding (LUIS)

Your Bot

Bot Connector

DEMO

• Install Bot Framework Template - http://aka.ms/bf-bc-vstemplate

• Install Bot Framework Emulator - https://aka.ms/bf-bc-emulator

• Register your Bot with the Bot Connector – http://dev.botframework.com

• Add AppId and AppPassword to your web.config• Publish to the web (not needed if using emulator)

Bot Framework: Getting Started

Bot Framework: ApiController [BotAuthentication]public class MessagesController : ApiController{

public async Task<HttpResponseMessage> Post([FromBody]Activity activity){

ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));if (activity.Type == ActivityTypes.Message){

int length = (activity.Text ?? string.Empty).Length;Activity reply = activity.CreateReply($"You sent {activity.Text} which was {length} characters");await connector.Conversations.ReplyToActivityAsync(reply);

}else{

HandleSystemMessage(activity);}

var response = Request.CreateResponse(HttpStatusCode.OK);return response;

}}

Bot Framework: Dialog [Serializable]public class DemoDialog : IDialog<IMessageActivity>

{public async Task StartAsync(IDialogContext context)

{ context.Wait(ConversationStartedAsync); }

public async Task ConversationStartedAsync(IDialogContext context, IAwaitable<IMessageActivity> argument) { IMessageActivity message = await argument; await context.PostAsync(message.Text);

PromptDialog.Text( context: context, resume: ResumeAndPromptMethodAsync, prompt: "Hi there I am a bot. What can I help with?", retry: "I didn't understand. Please try again."); }

Put intelligence APIs to workTap into the power of machine learning with easy-to-use REST APIs.

Cognitive Services

13 APIs + 7 BING APIs• Vision – face, emotion• Speech - Recognition• Language – Spell Check, Understanding• Knowledge - Academic• Search – News, web

Formerly Known as Project Oxford

Emotion Speaker Recognition

Speech

Custom Recognition

Computer Vision

Face

Video

SearchSpeech Languag

eKnowledge

Vision

Linguistic AnalysisLanguage Understanding

Bing Spell Check

Entity Linking

Knowledge Exploration

Academic Knowledge

Bing Image SearchBing Video Search

Bing Web Search

WebLM

Text Analytics Recommendations

Bing Autosuggest

Bing News SearchTranslator

Connectors for Outlook Office 365 Connectors are a great way to get useful information and content into your Office 365 Group.

Office 365 Connectors

Get information and content into your Outlook GroupSubscribe to your teams progress or follow important changesCurrently over 50 connectors

Outlook Group Connectors

OGC: Get Started• //dev.outlook.com and Register your OGC• Grab your OGC Web Hook URL• Post to the Web Hook your OGC Cards and Sections

Message message = new Message()                {                    summary = "This is the subject for the sent message to an outlook group",                    title = msg                };                message.AddSection(nSec1);                message.AddFacts("Facts", facts);                message.AddImages("Images", images);                message.AddAction("check details here", "http://dev.outlook.com");

                var result = await message.Send(webhookUrl);

OGC: Get Started

Resources

• Bot Framework Home Page• https://dev.botframework.com/

• Bot Builder SDK on GitHub• https://github.com/Microsoft/BotBuilder

• Bot Framework Blog• https://blog.botframework.com/

• Building a Conversational Bot: From 0 to 60• https://channel9.msdn.com/Events/Build/2016/B821

Bot Framework: Resources

• Microsoft Cognitive Services• https://www.microsoft.com/cognitive-services

• Microsoft Cognitive Services Samples & SDK • https://www.microsoft.com/cognitive-services/en-us/SDK-Sample

• Microsoft Cognitive Services: Give Your Apps a Human Side• https://channel9.msdn.com/Events/Build/2016/B878

• Microsoft Cognitive Services: Build smarter and more engaging experiences• https://channel9.msdn.com/Events/Build/2016/B855

Cognitive Services: Resources

• Outlook Group Connector• https://dev.outlook.com/Connectors

• Outlook Developer Portal• http://dev.outlook.com/

• Outlook Group Connector API Sample• https://github.com/jdruid/OutlookGroupConnectorAPI

Office 365 Connector: Resources

Joshua DrewJoshua.Drew@Microsoft.com//Drew5.net//jdruid.github.io@jdruid