SlideShare uma empresa Scribd logo
1 de 72
Baixar para ler offline
CONSTRUINDO PROJETOS PARA
O GOOGLE ASSISTANT
Alvaro Viebrantz
aviebrantz.com
@alvaroviebrantz
Alvaro Viebrantz
@alvaroviebrantz
aviebrantz.com
Google Developer Expert for IoT
Product Engineer @ Leverege
Organizador do GDG Cuiabá e DevMT
Um número
crescente de
dispositivos
COMO ISSO FUNCIONA?
Design Develop Discover
Google Home/Mobile device — A superfície para interagir com
o Google Assistant.
The Google Assistant — Uma conversa entre você e o Google
que te ajuda a realizar uma atividade no seu dia a dia.
Actions on Google — Como desenvolvedores podem extender
o Google Assistant (com Assistant apps)
COMO FALAR COM PLANTAS

🌱🛠🗣
How are you feeling ?
How is the weather ?
Turn on the water.
Turn on the light.
Ok Google, talk
to Personal
Chef
Well, it’s kind of
cold outside, so
I’d like...
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
Text to Speech
Speech to Text
Text to Speech
...
Invoke Personal
Chef action
Parse query and
generate
response
How are you feeling ?
How is the weather ?
Turn on the water.
Turn on the light.
Are you ok ? Do you need something ?
Are you feeling a positive vibe around you ?
It’s time to drink some water.
You can take a sun bath.
“
Intent Matching — Relacione e categorize o que o
usuário diz com alguma intenção.
Entity Extraction — Identificar palavras chaves e
frases ditas pelo usuário.@
Ok Google, talk
to Personal
Chef
Well, it’s kind of
cold outside, so
I’d like...
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
BRAÇO ROBÓTICO

🤖💪🗣
Mover 30 graus na base.
Colocar base em 30 graus.
Abrir garra.
Fechar garra. Pegar objeto.
Mover para frente.
Mover 30 graus na base.
Colocar ombro em 100 graus.
Abrir garra.
Fechar garra. Pegar objeto.
Mover para frente.
● Time
● Date
● Time Period
● Number
● Cardinal
● Ordinal
● Temperature
● Speed
● Volume
● Weight
● Age
● Currency
● Country
● Location
● Language
● Artist
● Music
● ….
Entidades de sistema
Respostas
Fulfillments
!32
!33
PROCESSAMENTO DA CONVERSA
Assistant
app
{ conversation
api request }
{ conversation
api response }
Entrada do
usuário
Resposta
do app
PROGRAMAÇÃO
ORIENTADA A EVENTOS
NODEJS
PYTHON
GOLANG
QUALQUER COISA
( DOCKER )
40
41
42
43
DE UM APP PARA UMA EXPERIÊNCIA
Preserve e reforce sua personalidade
ao se relacionar com o usuário como
se fosse algo separado do Google
Assistant.
Tome conta do
fluxo.
Hey! This is ___
Welcome to ___
Ready to play ____
Hi! ___ here.
Hello. I’m ___
Greetings, human.
Welcome back to ___
Hey again. ___
Let’s play ___
Here’s your ___
Brought to you by ___
Hi there, ___
Let’s get started.
Ready for your ___
___, here to…
Live from ___
This is ___
What’s up, ___
and more...
<speak> <!-- Must be at the start of the string -->
<say-as interpret-as="characters">SSML</say-as>
<break time="3s"/>.
<audio src="https://example.com/file.mp3"></
audio>
<say-as interpret-as="cardinal">10</say-as>.
<say-as interpret-as="ordinal">10</say-as>
<say-as interpret-as="characters">10</say-as>.
<sub alias="World Wide Web">WWW</sub>.
<p><s>This is one.</s><s>This is two.</s></p>
</speak> <!-- Must be at the end of the string -->
“S S M L”
[3 second pause]
[audio file plays]

“Ten”
“Tenth”
“One Oh”
World Wide Web
[two sentences]
Reforce com SSML: Speech Synthesis Markup Language
https://developers.google.com/actions/reference/ssml
function welcome (app) {

return isPreviousUser(app.getUser().userId).then((userHasVisited) => {

if (userHasVisited) {

app.ask(`Welcome to Number Genie!...`, NO_INPUT_PROMPTS);

} else {

app.ask(`Hey you're back...`, NO_INPUT_PROMPTS);

}

});

}
Reforce com armazenamento e memória do seu Assistant App
developers.google.com/actions/assistant/best-practices
DESENHE PARA MÚLTIPLAS SUPERFÍCIES
AUDIO_OUTPUT SCREEN_OUTPUT
Dê suporte a múltiplas superfícies
developers.google.com/actions/assistant/surface-capabilities
function simpleResponse (app) {

app.ask({

speech: 'Howdy! I can tell you fun facts about ' +

'almost any number, like 42. What do you have in
mind?',

displayText: 'Howdy! I can tell you fun facts about ' +

'almost any number. What do you have in mind?'

});

}
O texto deve ser um subconjunto do audio
Suporte a voz e texto
developers.google.com/actions/assistant/responses
function suggestionChips (app) {

app.ask(app.buildRichResponse()

.addSimpleResponse({

speech: 'Howdy! I can tell you fun facts about ' +

'almost any number like 0, 42, or 100. What number do you have '
+

'in mind?',

displayText: 'Howdy! I can tell you fun facts about almost any ' +

'number. What number do you have in mind?'

})

.addSuggestions(['0', '42', '100', 'Never mind'])

);

}
Guie o usuário (chips de sugestão)
developers.google.com/actions/assistant/responses
function basicCard (app) {

app.ask(app.buildRichResponse()

.addSimpleResponse('Math and prime numbers it is!')

.addBasicCard(

app.buildBasicCard(`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…`)

.setTitle('Math & prime numbers')

.addButton('Read more')

.setImage('https://example.google.com/42.png', 'Image alternate text')

)

);

}
Mostre cards básicos
developers.google.com/actions/assistant/responses
Usado para seleção fácil
<10 items
Usado para comparação
<30 items
Listas e Carrosséis para seleção
developers.google.com/actions/assistant/responses
CONHEÇA O USUÁRIO
Peça informações
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?"
conv.ask(new Permission({

context: 'To find bookstores near you',
permissions: 'DEVICE_COARSE_LOCATION',
}));
developers.google.com/actions/assistant/helpers#user_information
Integração transparente com Google Sign-in
Associe uma conta de usuário com seu backend com OAuth2
developers.google.com/actions/identity/
Account Linking
developers.google.com/actions/identity/
Multi plataforma
Google Sign In + OAuth linking
Assistant apenas
Google Sign In apenas
•Monte pedidos
•Use meios de pagamento
fornecidos pelo Google
•Use seu próprio processador de
pagamentos (Stripe, Braintree,
Vantiv, e mais por vir)
•Atualize o status do seu pedido
Transações com o usuário
developers.google.com/actions/identity/
What is the temperature
inside?
Turn off all the lights.
What lights are on in the
living room?
Make it warmer.
How many lights are on?
Smart Home
developers.google.com/actions/smarthome/
Execution path for
home automation
Dim the lights in the
living room a little bit.
condições
do dia a
dia do
usuário
{
“Eu não te entendi”
Quando um então chamado “erro” ocorrer
em uma conversa, ele deve ser tratado
simplesmente como um novo turno no
dialogo, mas com palavras e condições
diferentes.
Usuários tem
intenções e objetivos
COMO COMEÇAR ?
g.co/dev/ActionsDesign
developers.google.com/actions
OBRIGADO
Alvaro Viebrantz
aviebrantz.com
@alvaroviebrantz

Mais conteúdo relacionado

Semelhante a Construindo projetos para o Google Assistant - I/O 2019 Recap São Paulo

Create An Amazing Apps For The Google Assistant!
Create An Amazing Apps For The Google Assistant!Create An Amazing Apps For The Google Assistant!
Create An Amazing Apps For The Google Assistant!Ido Green
 
Hey hubballi! - Talk on "Actions on Google" #DevFestHubali
Hey hubballi! - Talk on "Actions on Google" #DevFestHubali Hey hubballi! - Talk on "Actions on Google" #DevFestHubali
Hey hubballi! - Talk on "Actions on Google" #DevFestHubali Smit Jethwa
 
Construindo projetos com Google Assistant e IoT
Construindo projetos com Google Assistant e IoTConstruindo projetos com Google Assistant e IoT
Construindo projetos com Google Assistant e IoTAlvaro Viebrantz
 
Google Assistant Actions – Codelab and Hackathon - 2018.06.06
Google Assistant Actions – Codelab and Hackathon - 2018.06.06Google Assistant Actions – Codelab and Hackathon - 2018.06.06
Google Assistant Actions – Codelab and Hackathon - 2018.06.06Marius Florian Mailat
 
Google Assistant Overview
Google Assistant Overview  Google Assistant Overview
Google Assistant Overview AI.academy
 
Building Conversational Experiences for Google Assistant
Building Conversational Experiences for Google AssistantBuilding Conversational Experiences for Google Assistant
Building Conversational Experiences for Google AssistantNader Khaled
 
Final getting started with google actions
Final  getting started with google actionsFinal  getting started with google actions
Final getting started with google actionsAjaySingh1938
 
Building High-Quality Apps for Google Assistant
Building High-Quality Apps for Google AssistantBuilding High-Quality Apps for Google Assistant
Building High-Quality Apps for Google AssistantPeter Friese
 
Building your actions for Google Assistant
Building your actions for Google AssistantBuilding your actions for Google Assistant
Building your actions for Google AssistantAhmed Abu Eldahab
 
OK Google, it's time to bot! - Hadar Franco & Stav Levi
OK Google, it's time to bot! - Hadar Franco & Stav LeviOK Google, it's time to bot! - Hadar Franco & Stav Levi
OK Google, it's time to bot! - Hadar Franco & Stav LeviHadar Franco
 
Ok google, it's time to bot! - Hadar Franco, Albert + Stav Levi, Monday
Ok google, it's time to bot! - Hadar Franco, Albert + Stav Levi, MondayOk google, it's time to bot! - Hadar Franco, Albert + Stav Levi, Monday
Ok google, it's time to bot! - Hadar Franco, Albert + Stav Levi, MondayDroidConTLV
 
Building Conversational Experiences for Google Assistant '18
Building Conversational Experiences for Google Assistant '18Building Conversational Experiences for Google Assistant '18
Building Conversational Experiences for Google Assistant '18Abdelrahman Omran
 
Rubyconf2016 - Solving communication problems in distributed teams with BDD
Rubyconf2016 - Solving communication problems in distributed teams with BDDRubyconf2016 - Solving communication problems in distributed teams with BDD
Rubyconf2016 - Solving communication problems in distributed teams with BDDRodrigo Urubatan
 
Fast REST APIs Development with MongoDB
Fast REST APIs Development with MongoDBFast REST APIs Development with MongoDB
Fast REST APIs Development with MongoDBMongoDB
 
Android accessibility 9th_april_droidcon
Android accessibility 9th_april_droidconAndroid accessibility 9th_april_droidcon
Android accessibility 9th_april_droidconsonia1sh
 
Build an Application from Idea to Release
Build an Application from Idea to ReleaseBuild an Application from Idea to Release
Build an Application from Idea to Releaseideatoipo
 
Coffee scriptisforclosers nonotes
Coffee scriptisforclosers nonotesCoffee scriptisforclosers nonotes
Coffee scriptisforclosers nonotesBrandon Satrom
 

Semelhante a Construindo projetos para o Google Assistant - I/O 2019 Recap São Paulo (20)

Create An Amazing Apps For The Google Assistant!
Create An Amazing Apps For The Google Assistant!Create An Amazing Apps For The Google Assistant!
Create An Amazing Apps For The Google Assistant!
 
Hey hubballi! - Talk on "Actions on Google" #DevFestHubali
Hey hubballi! - Talk on "Actions on Google" #DevFestHubali Hey hubballi! - Talk on "Actions on Google" #DevFestHubali
Hey hubballi! - Talk on "Actions on Google" #DevFestHubali
 
Construindo projetos com Google Assistant e IoT
Construindo projetos com Google Assistant e IoTConstruindo projetos com Google Assistant e IoT
Construindo projetos com Google Assistant e IoT
 
Google Assistant Actions – Codelab and Hackathon - 2018.06.06
Google Assistant Actions – Codelab and Hackathon - 2018.06.06Google Assistant Actions – Codelab and Hackathon - 2018.06.06
Google Assistant Actions – Codelab and Hackathon - 2018.06.06
 
Google Assistant Overview
Google Assistant Overview  Google Assistant Overview
Google Assistant Overview
 
Building Conversational Experiences for Google Assistant
Building Conversational Experiences for Google AssistantBuilding Conversational Experiences for Google Assistant
Building Conversational Experiences for Google Assistant
 
Final getting started with google actions
Final  getting started with google actionsFinal  getting started with google actions
Final getting started with google actions
 
Action on Google
Action on GoogleAction on Google
Action on Google
 
Building High-Quality Apps for Google Assistant
Building High-Quality Apps for Google AssistantBuilding High-Quality Apps for Google Assistant
Building High-Quality Apps for Google Assistant
 
Building your actions for Google Assistant
Building your actions for Google AssistantBuilding your actions for Google Assistant
Building your actions for Google Assistant
 
OK Google, it's time to bot! - Hadar Franco & Stav Levi
OK Google, it's time to bot! - Hadar Franco & Stav LeviOK Google, it's time to bot! - Hadar Franco & Stav Levi
OK Google, it's time to bot! - Hadar Franco & Stav Levi
 
Ok google, it's time to bot! - Hadar Franco, Albert + Stav Levi, Monday
Ok google, it's time to bot! - Hadar Franco, Albert + Stav Levi, MondayOk google, it's time to bot! - Hadar Franco, Albert + Stav Levi, Monday
Ok google, it's time to bot! - Hadar Franco, Albert + Stav Levi, Monday
 
Building Conversational Experiences for Google Assistant '18
Building Conversational Experiences for Google Assistant '18Building Conversational Experiences for Google Assistant '18
Building Conversational Experiences for Google Assistant '18
 
Rubyconf2016 - Solving communication problems in distributed teams with BDD
Rubyconf2016 - Solving communication problems in distributed teams with BDDRubyconf2016 - Solving communication problems in distributed teams with BDD
Rubyconf2016 - Solving communication problems in distributed teams with BDD
 
Google APPs and APIs
Google APPs and APIsGoogle APPs and APIs
Google APPs and APIs
 
Fast REST APIs Development with MongoDB
Fast REST APIs Development with MongoDBFast REST APIs Development with MongoDB
Fast REST APIs Development with MongoDB
 
Android accessibility 9th_april_droidcon
Android accessibility 9th_april_droidconAndroid accessibility 9th_april_droidcon
Android accessibility 9th_april_droidcon
 
Google App Inventor
Google App InventorGoogle App Inventor
Google App Inventor
 
Build an Application from Idea to Release
Build an Application from Idea to ReleaseBuild an Application from Idea to Release
Build an Application from Idea to Release
 
Coffee scriptisforclosers nonotes
Coffee scriptisforclosers nonotesCoffee scriptisforclosers nonotes
Coffee scriptisforclosers nonotes
 

Mais de Alvaro Viebrantz

BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIAlvaro Viebrantz
 
End to End IoT projects with Zephyr.pdf
End to End IoT projects with Zephyr.pdfEnd to End IoT projects with Zephyr.pdf
End to End IoT projects with Zephyr.pdfAlvaro Viebrantz
 
Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de DesenvolvimentoAlvaro Viebrantz
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoAlvaro Viebrantz
 
Prototipação em hackathons
Prototipação em hackathonsPrototipação em hackathons
Prototipação em hackathonsAlvaro Viebrantz
 
Building REST APIs using gRPC and Go
Building REST APIs using gRPC and GoBuilding REST APIs using gRPC and Go
Building REST APIs using gRPC and GoAlvaro Viebrantz
 
TinyML - IoT e Machine Learning
TinyML -  IoT e Machine LearningTinyML -  IoT e Machine Learning
TinyML - IoT e Machine LearningAlvaro Viebrantz
 
O que projetos de IoT precisam ?
O que projetos de IoT precisam ?O que projetos de IoT precisam ?
O que projetos de IoT precisam ?Alvaro Viebrantz
 
Ambiente de CI/CD com Google Cloud
Ambiente de CI/CD com Google CloudAmbiente de CI/CD com Google Cloud
Ambiente de CI/CD com Google CloudAlvaro Viebrantz
 
Big Query - Escalabilidade Infinita para os seus Dados
Big Query  - Escalabilidade Infinita para os seus DadosBig Query  - Escalabilidade Infinita para os seus Dados
Big Query - Escalabilidade Infinita para os seus DadosAlvaro Viebrantz
 
Rodando uma API Com Django Rest Framework no Google Cloud
Rodando uma API Com Django Rest Framework  no Google CloudRodando uma API Com Django Rest Framework  no Google Cloud
Rodando uma API Com Django Rest Framework no Google CloudAlvaro Viebrantz
 
Edge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudEdge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudAlvaro Viebrantz
 
Edge computing in practice using IoT, Tensorflow and Google Cloud
Edge computing in practice using IoT, Tensorflow and Google CloudEdge computing in practice using IoT, Tensorflow and Google Cloud
Edge computing in practice using IoT, Tensorflow and Google CloudAlvaro Viebrantz
 
Iniciando com LoRa, The Things Network e Google Cloud
Iniciando com LoRa, The Things Network e Google CloudIniciando com LoRa, The Things Network e Google Cloud
Iniciando com LoRa, The Things Network e Google CloudAlvaro Viebrantz
 
Edge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudEdge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudAlvaro Viebrantz
 
Explorando Go em Ambiente Embarcado
Explorando Go em Ambiente EmbarcadoExplorando Go em Ambiente Embarcado
Explorando Go em Ambiente EmbarcadoAlvaro Viebrantz
 
Soluções de IoT usando Arduino e Google Cloud
Soluções de IoT usando Arduino e Google CloudSoluções de IoT usando Arduino e Google Cloud
Soluções de IoT usando Arduino e Google CloudAlvaro Viebrantz
 
Soluções de IoT usando Google Cloud e Firebase
Soluções de IoT usando Google Cloud e FirebaseSoluções de IoT usando Google Cloud e Firebase
Soluções de IoT usando Google Cloud e FirebaseAlvaro Viebrantz
 
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...Alvaro Viebrantz
 
Arquitetura de IoT na prática com Google Cloud - Join Community 2018
Arquitetura de IoT na prática com Google Cloud - Join Community 2018Arquitetura de IoT na prática com Google Cloud - Join Community 2018
Arquitetura de IoT na prática com Google Cloud - Join Community 2018Alvaro Viebrantz
 

Mais de Alvaro Viebrantz (20)

BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage API
 
End to End IoT projects with Zephyr.pdf
End to End IoT projects with Zephyr.pdfEnd to End IoT projects with Zephyr.pdf
End to End IoT projects with Zephyr.pdf
 
Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de Desenvolvimento
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em Go
 
Prototipação em hackathons
Prototipação em hackathonsPrototipação em hackathons
Prototipação em hackathons
 
Building REST APIs using gRPC and Go
Building REST APIs using gRPC and GoBuilding REST APIs using gRPC and Go
Building REST APIs using gRPC and Go
 
TinyML - IoT e Machine Learning
TinyML -  IoT e Machine LearningTinyML -  IoT e Machine Learning
TinyML - IoT e Machine Learning
 
O que projetos de IoT precisam ?
O que projetos de IoT precisam ?O que projetos de IoT precisam ?
O que projetos de IoT precisam ?
 
Ambiente de CI/CD com Google Cloud
Ambiente de CI/CD com Google CloudAmbiente de CI/CD com Google Cloud
Ambiente de CI/CD com Google Cloud
 
Big Query - Escalabilidade Infinita para os seus Dados
Big Query  - Escalabilidade Infinita para os seus DadosBig Query  - Escalabilidade Infinita para os seus Dados
Big Query - Escalabilidade Infinita para os seus Dados
 
Rodando uma API Com Django Rest Framework no Google Cloud
Rodando uma API Com Django Rest Framework  no Google CloudRodando uma API Com Django Rest Framework  no Google Cloud
Rodando uma API Com Django Rest Framework no Google Cloud
 
Edge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudEdge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google Cloud
 
Edge computing in practice using IoT, Tensorflow and Google Cloud
Edge computing in practice using IoT, Tensorflow and Google CloudEdge computing in practice using IoT, Tensorflow and Google Cloud
Edge computing in practice using IoT, Tensorflow and Google Cloud
 
Iniciando com LoRa, The Things Network e Google Cloud
Iniciando com LoRa, The Things Network e Google CloudIniciando com LoRa, The Things Network e Google Cloud
Iniciando com LoRa, The Things Network e Google Cloud
 
Edge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudEdge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google Cloud
 
Explorando Go em Ambiente Embarcado
Explorando Go em Ambiente EmbarcadoExplorando Go em Ambiente Embarcado
Explorando Go em Ambiente Embarcado
 
Soluções de IoT usando Arduino e Google Cloud
Soluções de IoT usando Arduino e Google CloudSoluções de IoT usando Arduino e Google Cloud
Soluções de IoT usando Arduino e Google Cloud
 
Soluções de IoT usando Google Cloud e Firebase
Soluções de IoT usando Google Cloud e FirebaseSoluções de IoT usando Google Cloud e Firebase
Soluções de IoT usando Google Cloud e Firebase
 
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
 
Arquitetura de IoT na prática com Google Cloud - Join Community 2018
Arquitetura de IoT na prática com Google Cloud - Join Community 2018Arquitetura de IoT na prática com Google Cloud - Join Community 2018
Arquitetura de IoT na prática com Google Cloud - Join Community 2018
 

Último

How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 

Último (20)

How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 

Construindo projetos para o Google Assistant - I/O 2019 Recap São Paulo

  • 1. CONSTRUINDO PROJETOS PARA O GOOGLE ASSISTANT Alvaro Viebrantz aviebrantz.com @alvaroviebrantz
  • 2. Alvaro Viebrantz @alvaroviebrantz aviebrantz.com Google Developer Expert for IoT Product Engineer @ Leverege Organizador do GDG Cuiabá e DevMT
  • 4. COMO ISSO FUNCIONA? Design Develop Discover
  • 5. Google Home/Mobile device — A superfície para interagir com o Google Assistant. The Google Assistant — Uma conversa entre você e o Google que te ajuda a realizar uma atividade no seu dia a dia. Actions on Google — Como desenvolvedores podem extender o Google Assistant (com Assistant apps)
  • 6. COMO FALAR COM PLANTAS
 🌱🛠🗣
  • 7.
  • 8. How are you feeling ? How is the weather ? Turn on the water. Turn on the light.
  • 9. Ok Google, talk to Personal Chef Well, it’s kind of cold outside, so I’d like... 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 Text to Speech Speech to Text Text to Speech ... Invoke Personal Chef action Parse query and generate response
  • 10. How are you feeling ? How is the weather ? Turn on the water. Turn on the light.
  • 11.
  • 12. Are you ok ? Do you need something ? Are you feeling a positive vibe around you ? It’s time to drink some water. You can take a sun bath.
  • 13. “ Intent Matching — Relacione e categorize o que o usuário diz com alguma intenção. Entity Extraction — Identificar palavras chaves e frases ditas pelo usuário.@
  • 14. Ok Google, talk to Personal Chef Well, it’s kind of cold outside, so I’d like... 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
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 21.
  • 22. Mover 30 graus na base. Colocar base em 30 graus. Abrir garra. Fechar garra. Pegar objeto. Mover para frente.
  • 23. Mover 30 graus na base. Colocar ombro em 100 graus. Abrir garra. Fechar garra. Pegar objeto. Mover para frente.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28. ● Time ● Date ● Time Period ● Number ● Cardinal ● Ordinal ● Temperature ● Speed ● Volume ● Weight ● Age ● Currency ● Country ● Location ● Language ● Artist ● Music ● …. Entidades de sistema
  • 31.
  • 32. !32
  • 33. !33
  • 35. Assistant app { conversation api request } { conversation api response } Entrada do usuário Resposta do app
  • 39.
  • 40. 40
  • 41. 41
  • 42. 42
  • 43. 43
  • 44. DE UM APP PARA UMA EXPERIÊNCIA
  • 45. Preserve e reforce sua personalidade ao se relacionar com o usuário como se fosse algo separado do Google Assistant. Tome conta do fluxo. Hey! This is ___ Welcome to ___ Ready to play ____ Hi! ___ here. Hello. I’m ___ Greetings, human. Welcome back to ___ Hey again. ___ Let’s play ___ Here’s your ___ Brought to you by ___ Hi there, ___ Let’s get started. Ready for your ___ ___, here to… Live from ___ This is ___ What’s up, ___ and more...
  • 46.
  • 47. <speak> <!-- Must be at the start of the string --> <say-as interpret-as="characters">SSML</say-as> <break time="3s"/>. <audio src="https://example.com/file.mp3"></ audio> <say-as interpret-as="cardinal">10</say-as>. <say-as interpret-as="ordinal">10</say-as> <say-as interpret-as="characters">10</say-as>. <sub alias="World Wide Web">WWW</sub>. <p><s>This is one.</s><s>This is two.</s></p> </speak> <!-- Must be at the end of the string --> “S S M L” [3 second pause] [audio file plays]
 “Ten” “Tenth” “One Oh” World Wide Web [two sentences] Reforce com SSML: Speech Synthesis Markup Language https://developers.google.com/actions/reference/ssml
  • 48. function welcome (app) {
 return isPreviousUser(app.getUser().userId).then((userHasVisited) => {
 if (userHasVisited) {
 app.ask(`Welcome to Number Genie!...`, NO_INPUT_PROMPTS);
 } else {
 app.ask(`Hey you're back...`, NO_INPUT_PROMPTS);
 }
 });
 } Reforce com armazenamento e memória do seu Assistant App developers.google.com/actions/assistant/best-practices
  • 49. DESENHE PARA MÚLTIPLAS SUPERFÍCIES
  • 50. AUDIO_OUTPUT SCREEN_OUTPUT Dê suporte a múltiplas superfícies developers.google.com/actions/assistant/surface-capabilities
  • 51. function simpleResponse (app) {
 app.ask({
 speech: 'Howdy! I can tell you fun facts about ' +
 'almost any number, like 42. What do you have in mind?',
 displayText: 'Howdy! I can tell you fun facts about ' +
 'almost any number. What do you have in mind?'
 });
 } O texto deve ser um subconjunto do audio Suporte a voz e texto developers.google.com/actions/assistant/responses
  • 52. function suggestionChips (app) {
 app.ask(app.buildRichResponse()
 .addSimpleResponse({
 speech: 'Howdy! I can tell you fun facts about ' +
 'almost any number like 0, 42, or 100. What number do you have ' +
 'in mind?',
 displayText: 'Howdy! I can tell you fun facts about almost any ' +
 'number. What number do you have in mind?'
 })
 .addSuggestions(['0', '42', '100', 'Never mind'])
 );
 } Guie o usuário (chips de sugestão) developers.google.com/actions/assistant/responses
  • 53. function basicCard (app) {
 app.ask(app.buildRichResponse()
 .addSimpleResponse('Math and prime numbers it is!')
 .addBasicCard(
 app.buildBasicCard(`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…`)
 .setTitle('Math & prime numbers')
 .addButton('Read more')
 .setImage('https://example.google.com/42.png', 'Image alternate text')
 )
 );
 } Mostre cards básicos developers.google.com/actions/assistant/responses
  • 54. Usado para seleção fácil <10 items Usado para comparação <30 items Listas e Carrosséis para seleção developers.google.com/actions/assistant/responses
  • 56. Peça informações 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?" conv.ask(new Permission({
 context: 'To find bookstores near you', permissions: 'DEVICE_COARSE_LOCATION', })); developers.google.com/actions/assistant/helpers#user_information
  • 57. Integração transparente com Google Sign-in Associe uma conta de usuário com seu backend com OAuth2 developers.google.com/actions/identity/
  • 58. Account Linking developers.google.com/actions/identity/ Multi plataforma Google Sign In + OAuth linking Assistant apenas Google Sign In apenas
  • 59. •Monte pedidos •Use meios de pagamento fornecidos pelo Google •Use seu próprio processador de pagamentos (Stripe, Braintree, Vantiv, e mais por vir) •Atualize o status do seu pedido Transações com o usuário developers.google.com/actions/identity/
  • 60.
  • 61.
  • 62. What is the temperature inside? Turn off all the lights. What lights are on in the living room? Make it warmer. How many lights are on? Smart Home developers.google.com/actions/smarthome/ Execution path for home automation Dim the lights in the living room a little bit.
  • 63. condições do dia a dia do usuário {
  • 64. “Eu não te entendi”
  • 65. Quando um então chamado “erro” ocorrer em uma conversa, ele deve ser tratado simplesmente como um novo turno no dialogo, mas com palavras e condições diferentes.
  • 70.
  • 71.