Tipos
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Os tipos permitem configurar o processamento de linguagem natural (PLN) do Google Assistente
para extrair dados estruturados da entrada do usuário. Você
podem 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 PLN
o extrai como um parâmetro tipado para que você possa processá-lo em uma cena.
No estágio de preenchimento de slot de uma cena, é possível especificar
vários espaços que você quer que o usuário forneça antes de poder
sair da cena.
Dentro do estágio de conditions de uma cena, você pode basear
lógica sobre se um parâmetro tem ou não 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 o PLN para
atribuir um conjunto de valores a uma única chave. É possível especificar tipos em vários
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 mais entradas. Se você
escolher essa opção, também poderá ativar as seguintes configurações de PLN:
- Ativar correspondência parcial: esse recurso permite entradas com mais de uma
palavra correspondente, 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
o processador de linguagem aceita palavras ou frases desconhecidas com base no
dados de treinamento de entrada e intent, como itens que podem ser adicionados a um supermercado
lista.
- Expressões regulares permitem que o tipo corresponda valores usando expressões regulares
padrões de expressão baseados em
Padrão RE2 do Google.
- Texto em formato livre permite que o tipo corresponda
do que o usuário diz. Anotações
uma intent com esse tipo permite consumir todas as entradas como um parâmetro que
pode fazer o pipe
para seu próprio PLN.
Tipos de sistema
Os tipos de sistema permitem fazer anotações e extrair dados conhecidos da entrada do usuário
usando dados e valores de treinamento fornecidos pelo sistema. Os tipos de sistema a seguir são
suportado:
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 apenas data. Disponível apenas para preenchimento de slot. |
actions.type.Time |
Inclui apenas tempo. Disponível apenas para preenchimento de slot. |
actions.type.Number |
O tipo Number corresponde a ordinal e cardinal
números grandes. |
Uso de DateTime
, Date
e Time
Esses tipos se comportam de maneira diferente dependendo de onde você usa o tipo e o
entrada do usuário que corresponda ao tipo.
Como usar com intents
A anotação de frases de treinamento em intents oferece suporte apenas ao tipo DateTime
. Usuário
não precisa corresponder a um valor DateTime
inteiro. Por exemplo, se um usuário
fornecer apenas o ano, o parâmetro session poderá ter esta aparência:
"date_time": {
"year": 2019
}
Como usar com preenchimento de slot
O preenchimento de slot oferece suporte a DateTime
, Date
e Time
.
- Se o tipo de slot for
DateTime
, o Google Assistente vai mostrar um aviso até a conclusão
é fornecido.
- Se o tipo de slot for
Date
, o Google Assistente vai mostrar ao usuário até uma data
é fornecido. Quando coletado, o parâmetro recebido é um conjunto
DateTime
com o horário definido como 00:00.
- Se o tipo de slot for
Time
, o Google Assistente vai mostrar ao usuário até um horário
é fornecido. Quando coletado, o parâmetro recebido é um valor
Objeto DateTime
com a data definida como a atual.
Por exemplo, suponha que um usuário em Los Angeles tenha dito: "Ok Google, crie um lembrete
para 15 de janeiro de 2024, às 20h". Quando DateTime
é extraído como parte de um slot
de preenchimento, o parâmetro completo 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, usar o valor-chave
O parâmetro DateTime
resulta em um resultado False para a condição. Por
exemplo:
$session.params.my_dateTime.day > 5
é uma condição válida, porque a
O valor day
é um número compatível.
$session.params.my_dateTime > "01-01-2010"
é uma condição inválida, porque
o "DateTime" de nível superior não é um número ou uma string.
Substituições do tipo de ambiente de execução
As substituições do tipo de ambiente de execução permitem criar ou modificar tipos dinamicamente em
o atendimento do pedido. Esse recurso permite adicionar ou substituir uma especificação de tipo
no ambiente de execução. Por exemplo, você pode verificar uma fonte de dados de back-end para carregar o menu diário
em um tipo no processamento do pedido.
Consulte o guia de webhooks para ver mais informações
sobre como criar substituições de tipo.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-07-26 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-26 UTC."],[[["\u003cp\u003eTypes are used to extract structured data from user input, allowing you to create slots in intents, manage slot filling within scenes, and define conditions based on parameter values.\u003c/p\u003e\n"],["\u003cp\u003eYou can create custom types using words and synonyms, regular expressions, or free-form text to define how the NLU interprets user input.\u003c/p\u003e\n"],["\u003cp\u003eSystem types such as \u003ccode\u003eDateTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e, \u003ccode\u003eTime\u003c/code\u003e, and \u003ccode\u003eNumber\u003c/code\u003e provide built-in data extraction for common data formats.\u003c/p\u003e\n"],["\u003cp\u003eRuntime type overrides enable dynamic modification of types during fulfillment, allowing you to adjust types based on real-time data.\u003c/p\u003e\n"]]],[],null,["# Types let you configure the Assistant NLU (natural language understanding)\nengine to extract structured data from user input. You\ncan use types in the following situations:\n\n- In [intents](/assistant/conversational/intents), you can annotate training phrases with types to\n create slots. When users say something that matches a slot, the NLU engine\n extracts it as a typed parameter, so you can process it in a [scene](/assistant/conversational/scenes).\n\n- Within a scene's [slot filling](/assistant/conversational/scenes#slot_filling) stage, you can specify\n multiple slots that you want the user to provide before they can\n transition or exit out of the scene.\n\n- Within a scene's [conditions](/assistant/conversational/scenes#conditions) stage, you can base\n logic on whether a parameter has a specific value that's defined in a type.\n\nCustom types\n------------\n\nCustom types let you create your own type specification to notify the NLU to\nassign a set of values to a single key. You can specify types in a variety of\nways:\n\n- **Words and synonyms** allow you to map multiple values to a single key, which are called an entry. Your type can contain one or many entries. If you choose this option, you can also enable the following NLU settings:\n - **Enable fuzzy matching** - This feature allows entries with more than one word to be matched, even when the words are spoken in a different order.\n - **Accept unknown values** - When you can't specify all possible values, the language processor can accept unknown words or phrases based on surrounding input and intent training data, such as items that might be added to a grocery list.\n- **Regular expressions** allows the type to match values using regular expression patterns based on [Google's RE2 standard](https://github.com/google/re2/wiki/Syntax).\n- **Free form text** allows the type to match anything a user says. Annotating an intent with this type lets you consume all input as a parameter that you can pipe to your own NLU.\n\nSystem types\n------------\n\nSystem types let you annotate and extract well-known data from user input\nusing system-provided training data and values. The following system types are\nsupported:\n\n| Type | Description |\n|-----------------------------|-----------------------------------------------------------------------------------------------------------------------------------|\n| **`actions.type.DateTime`** | Contains date, time, and timezone based on the user's device settings. Available for slot filling and training phrase annotation. |\n| **`actions.type.Date`** | Contains date only. Available for slot filling only. |\n| **`actions.type.Time`** | Contains time only. Available for slot filling only. |\n| **`actions.type.Number`** | The `Number` type matches ordinal and cardinal numbers. |\n\n### `DateTime`, `Date`, and `Time` usage\n\nThese types behave differently depending on where you use the type and the\nuser input that matches the type.\n\n#### Using with intents\n\nAnnotating training phrases in intents supports only the `DateTime` type. User\ninput doesn't need to match an entire `DateTime` value. For example, if a user\nprovides only the year, the session parameter might look like this: \n\n \"date_time\": {\n \"year\": 2019\n }\n\n#### Using with slot filling\n\nSlot filling supports `DateTime`, `Date`, and `Time`.\n\n- If the slot type is `DateTime`, the Assistant prompts the user until a full value is provided.\n- If the slot type is `Date`, the Assistant prompts the user until a date value is provided. When collected, the parameter you receive is a full `DateTime` with the time set to 00:00.\n- If the slot type is `Time`, the Assistant prompts the user until a time value is provided. When collected, the parameter your receive is a full `DateTime` object with the date set to the current date.\n\nFor example, suppose a user in Los Angeles said, \"Hey Google, create a reminder\nfor January 15, 2024 at 8 pm.\" When `DateTime` is extracted as part of a slot\nfilling process, the full parameter might look like this: \n\n \"date_time\": {\n \"day\": 15,\n \"hours\": 20,\n \"minutes\": 0,\n \"month\": 1,\n \"nanos\": 0,\n \"seconds\": 0,\n \"time_zone\": {\n \"id\": \"America/Los_Angeles\"\n },\n \"year\": 2024\n }\n\n#### Using with conditions\n\nConditions only allow the use of numbers and strings, so using the top level\n`DateTime` parameter results in a **False** result for the condition. For\nexample:\n\n- `$session.params.my_dateTime.day \u003e 5` is a valid condition, because the `day` value is a number and is supported.\n- `$session.params.my_dateTime \u003e \"01-01-2010\"` is an invalid condition, because the top level 'DateTime' object is not a number or string.\n\nRuntime type overrides\n----------------------\n\nRuntime type overrides let you dynamically create or modify types in\nfulfillment. This feature lets you add to or replace a type's specification at\nruntime. For example, you can check a backend data source to load daily menu\nitems into a type in your fulfillment.\n\nSee the [webhooks](/assistant/conversational/webhooks#runtime_type_overrides) guide for more information\non how to build type overrides."]]