Upload
develcz
View
71
Download
0
Embed Size (px)
Citation preview
@deeedx
Co je potřeba vyřešit?
1. Proč bot a proč botem??
2. Jak se neztratit v konverzaci
3. Jak udělat bota chytřejšího
4. Kde hostovat
Užitečný bot
Užitečný bot
Bot přímo k věci
AzureBot pro správu cloudu
Bot přímo k věci
AzureBot pro správu cloudu
Bot přímo k věci
AzureBot pro správu cloudu
Bot přímo k věci
AzureBot pro správu cloudu
Proč bot? A proč je to cool?
Protože zůstává i na mobilu...
Žádný další login
Žádná synchronizace aplikací
Multiplatformní
Legrační (ale chytrý) bot
Murphy
Legrační (ale chytrý) bot
Murphy
Legrační (ale chytrý) bot
Murphy
Legrační (ale chytrý) bot
Emogram
Bot
Entity
ExtractionSpeech
Bot
Clipboard w
entities
Natural
LanguageTranslation
+ Intelligent Services
Bing
Knowledge
User
Preferences
Image
Intelligence
…
Message input <> output
State Management
Bot Connector Service
………
Další služby, API,
databáze, Azure Machine
Learning, Azure Search,
atdc…
Bot Builder SDK
Web Chat
Direct Line…
GroupMe
Kik
Skype
Slack
Telegram
Twilio (SMS)
Bot Builder SDK
Tady je váš kód
Případ 1: Emogram
https://github.com/msimecek/SellerNotesBot
Případ 2: SellerNotesBot
Případ 3: E-shop Bot
private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result)
{
ShowOptions(context);
}
private void ShowOptions(IDialogContext context)
{
var choices = new List<string>() {
Tasks.LocateStore,
Tasks.OrderStatus,
Tasks.QnA,
Tasks.Service
};
PromptDialog.Choice(context,
AfterTaskSelected,
choices,
"What can I help you with?",
promptStyle: PromptStyle.Keyboard,
attempts: 99
);
}
private async Task AfterTaskSelected(IDialogContext context, IAwaitable<string> result)
{
var res = await result;
switch (res)
{
case Tasks.LocateStore:
context.Call(new LocateStoreDialog(), AfterTaskCompleted);
break;
case Tasks.QnA:
context.Call(new QnaDialog(), AfterTaskCompleted);
break;
case Tasks.Service:
context.Call(new ServiceDialog(), AfterTaskCompleted);
break;
case Tasks.OrderStatus:
context.Call(new OrderStatusDialog(), AfterTaskCompleted);
break;
}
}
Případ 4: Přepínání kontextu
IScorablepublic class GlobalMessageHandlersBotModule : Module
{
protected override void Load(ContainerBuilder builder)
{
base.Load(builder);
builder
.Register(c => new SettingsScorable(c.Resolve<IDialogTask>()))
.As<IScorable<IActivity, double>>()
.InstancePerLifetimeScope();
builder
.Register(c => new CancelScorable(c.Resolve<IDialogTask>()))
.As<IScorable<IActivity, double>>()
.InstancePerLifetimeScope();
}
}
No C# or Node? No problem!
Testujeme lokálně
Umí i tlačítka
JSON zprávy
Bot Framework Emulator
https://aka.ms/bf-bc-emulator
Cognitive Services
Emogram Bot používá Emotion API
Další boti třeba LUIS
https://www.microsoft.com/cognitive-services/en-us/emotion-api
Emotion API
https://www.microsoft.com/cognitive-services/en-us/computer-vision-api
Computer Vision API
Face API
VisionLUIS
Language Understanding
Intelligent Service
Intent: TextToSpeechContent: NewsHeadlines
Read me the headlines
Play yesterday’sDaily Show
Intent: PauseDeviceDateTime.duration: 5 Minutes
Pause for5 minutes
Intent: PlayEpisodeContent: Daily ShowDateTime.date: T-1 Day
Hostování bota
Bot je vlastně webové API
Přijme zprávu (POST), zpracuje a odešle odpověď
=> dá se hostovat kdekoliv
Azure Functions
Kde co je?
Bot Frameworkhttps://dev.botframework.com/
Azure Bot Servicehttps://azure.microsoft.com/en-us/services/bot-service/
Cognitive Serviceshttps://www.microsoft.com/cognitive-services
@deeedx