Slide 1

Slide 1 text

3 Paths to Build a Conversational App And some building blocks too…! Elaine Dias Batista 07-dec-2017

Slide 2

Slide 2 text

Classic ways Noob ways (no code required) Non Google Assistant ways (but intelligent nonetheless!)

Slide 3

Slide 3 text

Classic ways

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Source: https://dialogflow.com/docs/agents

Slide 6

Slide 6 text

User Input + Device Output + Device(s) NLP / NLU Fulfillment

Slide 7

Slide 7 text

"Order a cheese pizza" "Pizza ordered" Intent: order Entity: cheese pizza Pizzeria backend Webhook

Slide 8

Slide 8 text

User Input + Device Output + Device(s) NLP / NLU Fulfillment

Slide 9

Slide 9 text

User Input + Device

Slide 10

Slide 10 text

NLP / NLU ➔ Intent detection ➔ Entity extraction "Order a cheese pizza" Intent: order Entity: cheese pizza →

Slide 11

Slide 11 text

NLP? / NLU? Actions SDK ➔ Intent detection ➔ Entity extraction One shot, done by the Google Assistant itself ➔ Custom NLP / NLU algorithm ➔ Library Just before your app is launched Inside your app

Slide 12

Slide 12 text

Fulfillment? ActionsSdkApp Conversation Request Conversation Response DialogflowApp Conversation Request Dialogflow Request Dialogflow Response Conversation Response

Slide 13

Slide 13 text

Noob ways (no code required)

Slide 14

Slide 14 text

if this then that (IFTTT)

Slide 15

Slide 15 text

https://ifttt.com/create/if-google_assistant?sid=3

Slide 16

Slide 16 text

IFTTT

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

Template

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

IFTTT / Template User Input + Device Output + Device(s)

Slide 26

Slide 26 text

Non Google Assistant ways (but intelligent nonetheless!)

Slide 27

Slide 27 text

https://www.tensorflow.org/mobile/tflite/ https://research.googleblog.com/2017/11/on-device-conversational-modeling-with.html

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

TensorFlow Lite / Dialogflow SDK User Input + Mobile Device Output + Mobile Device

Slide 30

Slide 30 text

Classic ways: . Actions SDK without TensorFlow . Actions SDK with TensorFlow . Dialogflow without webhook + Google Assistant integration . Dialogflow with webhook + Google Assistant integration Noob ways (no code required) . IFTTT . Templates Non Google Assistant ways (but intelligent nonetheless!) . Dialogflow SDK + mobile device, Slack, FB messenger... . TensorFlow Lite + mobile device Assistant SDK + Raspberry Pi

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

Which path to choose? - Do you need an app for yourself, for others? (IFTTT or not) - Do you want it to work on every possible device? (design for voice only or screen too) - Google Home (voice only) / Phone, wear, chromecast (voice + text, images) - Does your app require a natural conversation? - Automation, one shot stuff: no (IFTTT, Actions SDK) - Games, news and others: yes (Dialogflow, Actions SDK + TensorFlow) - Do you need information from your DB or an API? (Webhook) - Do you want to integrate the Assistant on your own device? (Assistant SDK) - Do you want to integrate a conversational experience on a Android or iOS app? On Slack? On Facebook messenger? (Dialogflow SDK)

Slide 33

Slide 33 text

Merci !

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

Building Blocks 1) Device that is going to detect the input a) Spoken voice (natural or not) b) Text (natural or not) c) Multiple choice Examples: Smart Speaker, Smartphone (screen), Computer (keyboard) 2) Input. If voice → Speech to Text ("voice recognition") provided by: Google, Siri, Cortana, Web stuff. (otherwise → text, button input). 3) If natural language → NLP / NLU - On device or Hosted 4) Webhook 5) Output. If voice → Text to Speech ("voice synthesis") Otherwise: text, image, cards...

Slide 39

Slide 39 text

Raspberry Pi 3 Android, iOS devices (app integration) Google Assistant devices (actions on google) Dialogflow + Google Assistant integration Actions SDK Assistant SDK IFTTT Dialogflow SDK TensorFlow Lite Templat e

Slide 40

Slide 40 text

Dialogflow + Google Assistant integration Actions SDK Assistant SDK IFTTT Dialogflow SDK TensorFlow Lite Templat e

Slide 41

Slide 41 text

Android, iOS devices (app integration) Google Assistant devices (actions on google) Dialogflow + Google Assistant integration Actions SDK Dialogflow SDK TensorFlow Lite Templat e

Slide 42

Slide 42 text

Why do you want an Assistant / Assistive app? Do you just want to surf on the Assistant wave? Does it have intelligence (NLP/NLU) or not? Do we care? Is a conversational experience important for your app? Is your public ready for it? Can we work in an "hybrid" experience? Does simple voice recognition suffice? (if you already have an app)

Slide 43

Slide 43 text

Intelligent apps can have an Assistant behaviour, but not necessarily all intelligent apps are assistant apps and vice versa.

Slide 44

Slide 44 text

Il est beau ce cube

Slide 45

Slide 45 text

Building blocks of an Assistant App And how to build apps with them Elaine Dias Batista 07-dec-2017

Slide 46

Slide 46 text

9 ways to build an Assistant App (not necessarily a Google Assistant app) Elaine Dias Batista 07-dec-2017

Slide 47

Slide 47 text

Tips to Build an Assistant App Elaine Dias Batista 07-dec-2017

Slide 48

Slide 48 text

X ways to build an Intelligent App Elaine Dias Batista 07-dec-2017

Slide 49

Slide 49 text

Assistant Apps vs. Intelligent Apps Elaine Dias Batista 07-dec-2017