Os tipos permitem configurar o mecanismo de processamento de linguagem natural (PLN, na sigla em inglês) do Google Assistente para extrair dados estruturados da entrada do usuário. É possível usar tipos nas seguintes situações:
Em intents, é possível anotar frases de treinamento com tipos para criar slots. Quando os usuários dizem algo que corresponde a um slot, o mecanismo de NLU a extrai como um parâmetro digitado para que você possa processá-la em uma cena.
No cenário de preenchimento de slots de uma cena, é possível especificar vários slots que você quer que o usuário forneça antes de fazer a transição ou sair dela.
No cenário de condições de uma cena, é possível basear a lógica em um parâmetro que tem um valor específico definido em um tipo.
Tipos personalizados
Com os tipos personalizados, você cria sua própria especificação de tipo para notificar a NLU de atribuir um conjunto de valores a uma única chave. É possível especificar tipos de várias maneiras:
- Palavras e sinônimos permitem mapear vários valores para uma única chave, que são chamadas de entrada. Seu tipo pode conter uma ou mais entradas. Se você
escolher essa opção, também poderá ativar as seguintes configurações de PLN:
- Ativar correspondência difusa: este recurso permite correspondência de entradas com mais de uma palavra, mesmo quando as palavras são faladas em uma ordem diferente.
- Aceitar valores desconhecidos: quando não é possível especificar todos os valores possíveis, o processador de idioma pode aceitar palavras ou frases desconhecidas com base nos dados de treinamento de intent e entrada ao redor, como itens que podem ser adicionados a uma lista de compras.
- As expressões regulares permitem que o tipo corresponda a valores usando padrões de expressão regular com base no padrão RE2 do Google.
- Texto em formato livre: permite que o tipo corresponda a tudo o que um usuário diz. A anotação de uma intent com esse tipo permite que você consuma todas as entradas como um parâmetro que pode ser canalizado para sua própria NLU.
Tipos de sistema
Os tipos de sistema permitem anotar e extrair dados conhecidos da entrada do usuário usando dados de treinamento e valores fornecidos pelo sistema. Os seguintes tipos de sistema são compatíveis:
Tipo | Descrição |
---|---|
actions.type.DateTime |
Contém data, hora e fuso horário com base nas configurações do dispositivo do usuário. Disponível para preenchimento de slot e anotação de frase de treinamento. |
actions.type.Date |
Contém somente data. Disponível apenas para preenchimento de slot. |
actions.type.Time |
Contém tempo. Disponível apenas para preenchimento de slot. |
actions.type.Number |
O tipo Number corresponde a números ordinais e cardinais. |
Uso de DateTime
, Date
e Time
Esses tipos se comportam de maneira diferente dependendo de onde você usa o tipo e da entrada do usuário correspondente.
Como usar com intents
A anotação de frases de treinamento em intents é compatível apenas com o tipo DateTime
. A entrada
do usuário não precisa corresponder a um valor DateTime
inteiro. Por exemplo, se um usuário
fornecer apenas o ano, o parâmetro da sessão será semelhante a este:
"date_time": {
"year": 2019
}
Como usar com o preenchimento de slot
O preenchimento de slot é compatível com DateTime
, Date
e Time
.
- Se o tipo de slot for
DateTime
, o Google Assistente vai pedir ao usuário até que um valor total seja fornecido. - Se o tipo de slot for
Date
, o Google Assistente vai pedir ao usuário até que um valor de data seja fornecido. Quando coletado, o parâmetro que você recebe é umDateTime
completo com o horário definido como 00:00. - Se o tipo de slot for
Time
, o Google Assistente vai pedir ao usuário até que um valor de tempo seja fornecido. Quando coletado, o parâmetro recebido é um objetoDateTime
completo com a data definida como a data atual.
Por exemplo, suponha que um usuário em Los Angeles tenha dito: "Ok Google, criar um lembrete
para 15 de janeiro de 2024 às 20h". Quando DateTime
é extraído como parte de um processo
de preenchimento de slot, o parâmetro completo pode ficar assim:
"date_time": {
"day": 15,
"hours": 20,
"minutes": 0,
"month": 1,
"nanos": 0,
"seconds": 0,
"time_zone": {
"id": "America/Los_Angeles"
},
"year": 2024
}
Como usar com condições
As condições só permitem o uso de números e strings. Portanto, usar o parâmetro DateTime
de nível superior resulta em um resultado False para a condição. Por
exemplo:
$session.params.my_dateTime.day > 5
é uma condição válida, porque o valorday
é um número e é compatível.$session.params.my_dateTime > "01-01-2010"
é uma condição inválida, porque o objeto "DateTime" de nível superior não é um número ou uma string.
Modificações do tipo de ambiente de execução
As substituições de tipo de ambiente de execução permitem criar ou modificar tipos dinamicamente no fulfillment. Esse recurso permite adicionar ou substituir a especificação de um tipo no tempo de execução. Por exemplo, é possível verificar uma fonte de dados de back-end para carregar itens de menu diariamente em um tipo no fulfillment.
Consulte o guia de webhooks para ver mais informações sobre como criar substituições de tipo.