Com os tipos, é possível configurar o mecanismo de processamento de linguagem natural (PLN) do Google Assistente para extrair dados estruturados da entrada do usuário. Você pode usar tipos nas seguintes situações:
Em intents, é possível anotar frases de treinamento com tipos para criar slots. Quando o usuário diz algo que corresponde a um slot, o mecanismo de PLN o extrai como um parâmetro digitado, para que você possa processá-lo em uma cena.
Dentro do estágio de preenchimento de slot de um cenário, é possível especificar vários slots que você quer que o usuário forneça antes de fazer a transição ou sair da cena.
Dentro do estágio conditions de um cenário, é possível basear a lógica no fato de um parâmetro ter ou não um valor específico definido em um tipo.
Tipos personalizados
Com os tipos personalizados, é possível criar a própria especificação de tipo para notificar o PLN para 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 várias entradas. Se você
escolher essa opção, também será possível ativar as seguintes configurações de PLN:
- Ativar correspondência difusa: este recurso permite a 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 entrada e intent ao redor, como itens que podem ser adicionados a uma lista de compras.
- As expressões regulares permitem que o tipo combine valores usando padrões de expressões regulares com base no padrão RE2 do Google (em inglês).
- Texto de formato livre: permite que o tipo corresponda a tudo o que um usuário diz. Anotar uma intent com esse tipo permite consumir toda a entrada como um parâmetro que você pode encaminhar para seu próprio PLN.
Tipos de sistema
Com os tipos de sistema, é possível anotar e extrair dados conhecidos da entrada do usuário usando dados e valores de treinamento fornecidos pelo sistema. Há suporte para os seguintes tipos de sistema:
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 slots e anotação de frase de treinamento. |
actions.type.Date |
Contém apenas data. Disponível apenas para preenchimento de slots. |
actions.type.Time |
Contém apenas tempo. Disponível apenas para preenchimento de slots. |
actions.type.Number |
O tipo Number corresponde a números ordinais e cardeais. |
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 que corresponde ao tipo.
Uso com intents
A anotação de frases de treinamento em intents oferece suporte apenas ao 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 teria esta aparência:
"date_time": {
"year": 2019
}
Como usar com preenchimento de slot
O preenchimento de slots é 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 recebido é 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 horário 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 disse: "Ok Google, crie 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 ter esta aparência:
"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 permitem apenas 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. Exemplo:
$session.params.my_dateTime.day > 5
é uma condição válida, porque o valorday
é um número e é aceito.$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.
Substituições de 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 diários em um tipo no fulfillment.
Consulte o guia de webhooks para mais informações sobre como criar substituições de tipo.