Com os tipos, é possível configurar o mecanismo de processamento de linguagem natural (PLN) do Google Assistente para extrair dados estruturados das entradas do usuário. É possível usar tipos nas seguintes situações:
Nas 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 PLN a extrai como um parâmetro digitado, para que você possa processá-la em uma cena.
No cenário de preenchimento de slot 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 da cena.
No cenário conditions de uma cena, você pode basear a lógica para saber se um parâmetro tem um valor específico definido em um tipo.
Tipos personalizados
Com os tipos personalizados, você pode criar sua própria especificação de tipo para notificar a NLU 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 chamados de entrada. Seu tipo pode conter uma ou várias entradas. Se você escolher essa opção, também poderá ativar as seguintes configurações de PLN:
- Ativar correspondência parcial: 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 intent e entrada próximos, 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 o usuário diz. A anotação de uma intent com esse tipo permite consumir toda a entrada como um parâmetro que você pode canalizar 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 e valores de treinamento 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 apenas 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 que corresponde ao tipo.
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 poderá ter esta aparência:
"date_time": {
"year": 2019
}
Uso com preenchimento de slot
O preenchimento de slot é compatível com DateTime
, Date
e Time
.
- Se o tipo de slot for
DateTime
, o Assistente vai solicitar ao usuário até que um valor completo seja fornecido. - Se o tipo de slot for
Date
, o Assistente vai solicitar 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 Assistente vai solicitar ao usuário até que um valor de tempo seja fornecido. Quando coletado, o parâmetro que você recebe é 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 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 só permitem o uso de números e strings. Portanto, o uso do 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 é 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.
Substituições de tipo de ambiente de execução
As substituições de tipo de ambiente de execução permitem criar ou modificar dinamicamente os tipos 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.