Slide 1

Slide 1 text

Chatbots, et si on passait la seconde ? Wassim Chegham | SFEIR | @manekinekko Guillaume Laforge | Google | @glaforge

Slide 2

Slide 2 text

Major shift in computing every 10 years Mainframe Desktop Internet Mobile AI/Assistants 2017 2007 1997 1987 1977

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Ready to help across 500M+ devices

Slide 5

Slide 5 text

Japanese German FR French CA French Korean UK English AU English CA English US English Italian Spanish BR Portuguese LATAM Spanish Hindi & IN English A growing audience: languages Swedish Danish Norwegian Indonesian Russian Thai Dutch

Slide 6

Slide 6 text

So what does this mean for a developer?

Slide 7

Slide 7 text

Devices with the Google Assistant built-in These include voice activated speakers like Google Home, Android phones, iPhones etc. The Google Assistant A conversation between you and Google that helps you get things done in your world. Actions on Google How developers can extend the assistant

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Ok Google, talk to Personal Chef Sure, here’s Personal Chef What are you in the mood for? What protein would you like to use? Speech to Text NLP Knowledge Graph ML Ranking User Profile Speech to Text Text to Speech ... Invoke Personal Chef action Parse query and generate response Well, it’s kind of cold outside, so I’d like... Text to Speech

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Well, it’s kind of cold outside, so I'd like something to warm me up, like a hot soup, and I want it fast.

Slide 12

Slide 12 text

Demo

Slide 13

Slide 13 text

“ Intent Matching — Match and categorize user utterances to an intent. Entity Extraction — Identify key words and phrases spoken by the user. @

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

Ok Google, talk to Personal Chef Sure, here’s Personal Chef What are you in the mood for? What protein would you like to use? Speech to Text NLP Knowledge Graph ML Ranking User Profile Speech to Text Text to Speech ... ... ... Trigger WELCOME event ... NLP: Intent Matching Entity Extraction Well, it’s kind of cold outside, so I’d like... Text to Speech

Slide 16

Slide 16 text

Demo

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

Intent name An Intent represents a mapping between what the user says and what action should be taken by your software. Each Action can have many intents, which will provide different experiences to the user.

Slide 19

Slide 19 text

Training Phrases Triggered via a series of “user says” phrases or platform based events Can collects entity values Matched at every turn of conversation

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Parameters Values that we are trying to capture from the user phrases Can specify a parameter name and a type of value Values can be optional Values can be a list of fixed values

Slide 22

Slide 22 text

Entities (slot-filling) Values that we are trying to capture from the user phrases Can specify a parameter name and a type of value Values can be optional Values can be a list of fixed values

Slide 23

Slide 23 text

● Time ● Date ● Time Period ● Number ● Cardinal ● Ordinal ● Temperature ● Speed ● Volume ● Weight ● Age ● Currency ● Country ● Location ● Language ● Artist ● Music ● …. System Entities

Slide 24

Slide 24 text

Developer Entities

Slide 25

Slide 25 text

Specify follow up questions if a user doesn’t specify certain values Read out in random order to make it more natural Prompts

Slide 26

Slide 26 text

Fulfillment

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Test Console Test your agent by entering text or voice requests. Voice testing is available in Chrome and Firefox browsers.

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

Creating a Magical Experience for your Users

Slide 31

Slide 31 text

g.co/dev/ActionsDesign

Slide 32

Slide 32 text

AUDIO_OUTPUT SCREEN_OUTPUT Support different surface capabilities https://developers.google.com/actions/assistant/surface-capabilities

Slide 33

Slide 33 text

const { dialogflow, Suggestions, SimpleResponse } = require('actions-on-google'); const app = dialogflow(); // Say a fact app.intent('tell_fact', (conv, {category}) => { conv.ask('Actions are easy to build!'); conv.ask(new Suggestions('Tell me more')); }); // The entry point to handle a http request exports.factsAboutGoogle = functions.https.onRequest(app); Node.js Client library https://github.com/actions-on-google/actions-on-google-nodejs

Slide 34

Slide 34 text

Demo

Slide 35

Slide 35 text

Support speech and display text https://developers.google.com/actions/assistant/responses conv.ask(new SimpleRespone({ speech: 'Howdy! I can tell you fun facts about ' + 'almost any number, like 42. What do you have in mind?', text: 'Howdy! I can tell you fun facts about ' + 'almost any number. What do you have in mind?' }));

Slide 36

Slide 36 text

Guide the user (suggestion chips) https://developers.google.com/actions/assistant/responses conv.ask(new SimpleRespone({ speech: 'Howdy! I can tell you fun facts about ' + 'almost any number, like 42. What do you have in mind?', text: 'Howdy! I can tell you fun facts about ' + 'almost any number. What do you have in mind?' })); conv.ask(new Suggestions(['0', '42', '100', 'Never mind']));

Slide 37

Slide 37 text

Display basic cards https://developers.google.com/actions/assistant/responses conv.ask('Math and prime numbers it is!') conv.ask(new BasicCard({ text: '42 is an even composite number. It is composed of three distinct prime ' + 'numbers multiplied together. It has a total of eight divisors. 42 is an ' + 'abundant number, because the sum of its proper divisors 54 is greater ' + 'than itself. To count from 1 to 42 would take you about twenty-one…', title: 'Math & prime numbers', buttons: new Button({ title: 'Read more', url: 'https://example.com', }), image: new Image({ url: 'https://example.google.com/42.png', alt: 'Image alternate text', }), }));

Slide 38

Slide 38 text

Used for easy selection <10 items Used for comparison <30 items Lists and carousels for selection https://developers.google.com/actions/assistant/responses

Slide 39

Slide 39 text

Google Home Mobile Device NAME Registered device user’s full name Registered device user’s full name DEVICE_COARSE_LOCATION Zip code and city N/A DEVICE_PRECISE_LOCATION Coordinates and street address Coordinates Q: "Recommend me a local bookstore" A: "To find bookstores near you, I'll just need to get your zip code from Google. Is that okay?" Ask for information https://developers.google.com/actions/assistant/helpers#user_information conv.ask(new Permission({ context: 'To find bookstores near you', permissions: 'DEVICE_COARSE_LOCATION', }));

Slide 40

Slide 40 text

Seamless account linking with Google Sign-in Link an account to your OAuth2 server https://developers.google.com/actions/identity/

Slide 41

Slide 41 text

• Build orders • Use Google provided payment instrument • Use your payment processor (Stripe, Braintree, Vantiv, more coming) • Update order statu Transact with the user https://developers.google.com/actions/transactions (check policies and guidelines for availability)

Slide 42

Slide 42 text

Transact with the user https://developers.google.com/actions/identity

Slide 43

Slide 43 text

Smart Home Device Integration developers.google.com/actions/smarthome/ Dim the lights in the living room a little bit. What lights are on in the living room? Make it warmer. Turn off all the lights. What is the temperature inside? How many lights are on?

Slide 44

Slide 44 text

Assistant SDK for devices developers.google.com/assistant/sdk

Slide 45

Slide 45 text

Templates get you up and running developers.google.com/actions/templates

Slide 46

Slide 46 text

Template features developers.google.com/actions/templates Create an Action within minutes Choose a pre-defined personality Build without code (Google Sheets) Expand to different languages (Trivia only)

Slide 47

Slide 47 text

Reach Users

Slide 48

Slide 48 text

Ok Google, ask Personal Chef for a hot soup recipe Trigger Phrase Action Name Developer Specified Action Preposition Action Phrase Developer Specified Working Examples: Let’s speak to Domino’s Ask Dr. Doggy if dogs can eat chocolate Ok Google, let’s talk to Personal Chef Trigger Phrase Action Name Developer Specified In Dialogue Discovery: Explicit Triggering

Slide 49

Slide 49 text

In Dialogue Discovery: Implicit Triggering Hey Google, I want to work out. Hey Google, I want to play a game. Hey Google, what’s the surf report? Hey Google, tell me a joke.

Slide 50

Slide 50 text

Discovery in the Google Assistant Directory

Slide 51

Slide 51 text

Link to your Action from anywhere developers.google.com/actions/console/publishing#linking_to_your_actions

Slide 52

Slide 52 text

Directory

Slide 53

Slide 53 text

Privacy Policy

Slide 54

Slide 54 text

Naming ✕ One-Word Names ✕ Common Phrases ✕ Generic Words ✕ Reserved words: OK, Google, Volume up, Game, Bot, Action, App

Slide 55

Slide 55 text

No content

Slide 56

Slide 56 text

Console bit.ly/buildactions-console Build with Templates developers.google.com/actions/templates Build with Dialogflow developers.google.com/actions/dialogflow Build with Actions SDK developers.google.com/actions/sdk Resources to get started and supported Documentation developers.google.com/actions Codelabs codelabs.developers.google.com Write and Deploy Functions bit.ly/firebase-get-started Deploy your fulfillment webhook using Cloud Functions for Firebase bit.ly/aog-cloud-functions

Slide 57

Slide 57 text

Actions on Google Community Program developers.google.com/actions/community You are automatically invited to the program with publishing your first Action and will receive a Cool T Shirt + $200 Cloud Credits per month for a year The Assistant team also recognizes milestones: Traction Engagements Globalization

Slide 58

Slide 58 text

Actions on Google Developer Community https://g.co/actionsdev Actions on Google Developers https://developers.google.com/actions Wassim Chegham SFEIR @manekinekko Actions on Google Twitter https://twitter.com/actionsongoogle #AoGDevs Guillaume Laforge Google @glaforge