Tipos

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 é um DateTime 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 objeto DateTime 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 valor day é 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.