Uma intent integrada é um identificador exclusivo que você pode especificar para informar Google Assistente para que sua Ação possa atender a uma categoria específica de usuários solicitações. Por exemplo, aqui estão alguns exemplos de consultas de usuários que o Google Assistente faz a correspondência com intents integradas:
- "Jogar" intent integrada: "Ok Google. Jogue um jogo da memória"
- "Acesse o horóscopo" intent integrada: "Ok Google. Confira meu horóscopo"
Durante a descoberta de ações, o Google Assistente pode usar metadados sobre sua ação, incluindo as intents integradas que você especificou; para recomendar sua Ação aos usuários. Para minimizar as idas e vindas de conversas, o Assistente também tenta verificar os parâmetros das consultas dos usuários e passá-los para sua ação.
Para ver a lista completa de intents integradas com suporte ao Google Assistente, incluindo os parâmetros e exemplos de consultas do usuário, consulte a Referência de intents integradas.
Integrar intents integradas
Dependendo de como você está criando sua ação, há diferentes maneiras de integrar intents integradas.
Dialogflow
Se você estiver usando o Dialogflow para criar sua ação, poderá anexar uma intent integrada graficamente no console do Dialogflow.
Para anexar uma intent integrada ao Dialogflow, siga estas etapas:
- Abra o console do Dialogflow, selecione seu agente e navegue até a Intents.
Crie ou selecione a intent que o agente aciona ao receber uma uma intent integrada específica. Abra a seção Eventos e clique em Adicionar Evento.
No campo Eventos, digite o nome de um evento de intent integrada ao seu agente (por exemplo,
actions_intent_PLAY_GAME
).Clique em Salvar.
SDK do Actions
Se você estiver usando o SDK do Actions para criar sua ação, especifique o mapeamento entre intents integradas e ações no pacote de ações.
Para anexar uma intent integrada com o SDK do Actions, siga estas etapas:
- Especifique a intent integrada no campo "Nome" da sua definição de Ação.
- Faça upload do pacote de ações para o projeto do Actions usando a ferramenta
gactions
, conforme descritos na visão geral do SDK do Actions.
Por exemplo, o snippet a seguir mostra como adicionar o CHECK_AIR_QUALITY
intent integrada:
{
"actions":[
{
"description":"Default Welcome Intent",
"name":"MAIN",
"fulfillment":{
"conversationName":"conversation_1"
},
"intent":{
"name":"actions.intent.MAIN"
}
},
{
"description":"Check Air Quality",
"name":"CHECK_AIR_QUALITY",
"fulfillment":{
"conversationName":"conversation_1"
},
"intent":{
"name":"actions.intent.CHECK_AIR_QUALITY"
}
}
],
"conversations":{
"conversation_1":{
"name":"conversation_1",
"url":"https://example.com/fulfillment",
"fulfillmentApiVersion":2
}
}
}
Processar parâmetros de intent integrados
Quando sua ação é invocada por uma intent integrada, seu fulfillment pode para receber parâmetros adicionais. O esquema de intent define os nomes parâmetros e os tipos deles como tipos primitivos ou o schema.org entidades. Para visualizar o esquema das intents integradas da ação de conversa, consulte o Referência de intents integradas.
Os parâmetros das intents integradas são opcionais. O Google Assistente cuida de preencher parâmetros com valores se puderem ser extraídos da invocação do usuário a intent integrada.
Por exemplo, o esquema do actions.intent.CHECK_AIR_QUALITY
integrado
define quatro parâmetros opcionais:
Nome do parâmetro | Tipo |
---|---|
attributes |
Um valor de string. |
location |
Um objeto schema.org/Place . |
temporalCoverage |
Um objeto schema.org/Duration . |
timeIndicator |
Uma EnumeratedDuration (extensão específica do Google). |
O snippet de código a seguir mostra um exemplo do webhook de conversa (JSON) quando um usuário invoca sua ação dizendo "Qual é a qualidade do ar em São Francisco amanhã?":
"inputs":[
{
"intent":"actions.intent.CHECK_AIR_QUALITY",
"rawInputs":[
{
"inputType":"VOICE",
"query":"what is the air quality in san francisco tomorrow"
}
],
"arguments":[
{
"name":"location",
"structuredValue":{
"geo":{
"longitude":-122.41941550000001,
"latitude":37.7749295
},
"@context":"https://schema.org",
"@type":"Place",
"name":"san francisco"
}
},
{
"name":"temporalCoverage",
"rawText":"2018-04-25",
"textValue":"2018-04-25"
}
]
}
]
Neste exemplo, os parâmetros assumem os seguintes valores:
- O parâmetro
location
contém oschema.org/Place
. para "São Francisco". - O parâmetro
temporalCoverage
contém oschema.org/Duration
. valor da data de amanhã em relação ao horário da invocação. - Não há valores para os parâmetros
attributes
etimeIndicator
. porque a frase de invocação do usuário não inclui essas informações.
Se você usa a biblioteca de cliente do Actions on Google para Node.js, você pode recuperar o valor dos parâmetros, conforme mostrado no snippet a seguir:
app.intent('actions.intent.CHECK_AIR_QUALITY', (conv) => {
const attributes = conv.arguments.get('attributes');
const location = conv.arguments.get('location');
const temporal_coverage = conv.arguments.get('temporalCoverage');
Const time_indicator = conv.arguments.get('timeIndicator')
// Your Action logic. If you need to use any of the parameter values,
// you should check first that it is defined. Arguments.get returns
// undefined if it can't find a value for a parameter.
});
Testar integrações com intents integradas
Siga estas etapas para testar a integração:
- Abra o simulador do Actions com a ação de teste ativada ou o Assistente no seu dispositivo.
- Fale ou digite uma consulta associada a essa intent integrada. Por exemplo: "Eu quero jogar."
- Na caixa de diálogo mostrada de seleção do app, encontre sua ação.
- Selecione seu app para enviar uma intent a ele.
Práticas recomendadas para usar intents integradas
Siga estas práticas recomendadas ao usar intents integradas:
- Mapear intents integradas para ações específicas: quando uma intent integrada específica
acionar sua ação, direcionar o usuário à intent específica e
na sua ação com o mínimo de atrito possível. Para
exemplo, se a ação oferecer suporte à intent integrada
PLAY_GAME
e recebe essa intent, você deve enviar o usuário imediatamente ao recurso do jogo da sua ação. Evite perguntar novamente ao usuário se ele quer jogar. - Processar parâmetros de intent integrada: use a intent integrada. valores de parâmetros que o Assistente envia para seu fulfillment. Evite solicitar esses valores novamente ao usuário.