Existem várias opções de entidades que alteram o comportamento da correspondência de entidades e da extração de dados. Estas opções estão pré-configuradas para entidades do sistema, pelo que não as pode alterar para entidades do sistema. No entanto, pode alterá-las para as suas próprias entidades personalizadas. Pode criar diferentes tipos de entidades, consoante as opções selecionadas:
- Entidade de mapa
- Entidade de lista
- Entidade composta (um tipo especial de entidade de lista)
- Entidade Regexp
Existem outras opções que não determinam o tipo de entidade, mas afetam o comportamento da correspondência de entidades:
Este documento descreve cada uma destas opções.
Onde encontrar estes dados
Ao criar um agente, é mais comum usar a consola Dialogflow CX (visite a documentação, abra a consola). As instruções abaixo focam-se na utilização da consola. Para aceder aos dados das opções de entidades:
- Abra a consola do Dialogflow CX.
- Escolha o seu projeto do Google Cloud .
- Selecione o seu agente.
- Selecione o separador Gerir.
- Clique em Tipos de entidades.
- Veja as seguintes opções para todas as entidades existentes
(algumas destas opções só podem ser visíveis depois de expandir as Opções avançadas):
- Apenas entidades (sem sinónimos)
- Entidades Regexp
- Adicione entidades automaticamente
- Correspondência semelhante
- Oculte informações no registo
- Exclusões de entidades
Se estiver a criar um agente através da API em vez da consola, consulte o tipo EntityType
.
Os nomes dos campos da API são semelhantes aos nomes dos campos da consola.
As instruções abaixo realçam as diferenças importantes
entre a consola e a API.
Selecione um protocolo e uma versão para a referência EntityType:
Protocolo | V3 | V3beta1 |
---|---|---|
REST | Recurso EntityType | Recurso EntityType |
RPC | Interface EntityType | Interface EntityType |
C++ | EntityTypesClient | Não disponível |
C# | EntityTypesClient | Não disponível |
Ir | EntityTypesClient | Não disponível |
Java | EntityTypesClient | EntityTypesClient |
Node.js | EntityTypesClient | EntityTypesClient |
PHP | Não disponível | Não disponível |
Python | EntityTypesClient | EntityTypesClient |
Ruby | Não disponível | Não disponível |
Mapeie a entidade
As entidades de mapeamento fornecem um mapa de valores de referência para sinónimos de cada valor de referência. Cada entrada de entidade de mapa contém um único valor de referência e uma lista de sinónimos. Opcionalmente, também pode definir um padrão DTMF para cada entidade.
Por exemplo, cada uma das seguintes linhas são entradas de entidades para um size
tipo de entidade:
Entidade | Sinónimos | Padrão DTMF |
---|---|---|
S | S, pequeno, minúsculo | |
M | M, médio, razoável | |
L | L, grande, enorme, grande |
Repare que o valor de referência está incluído na lista de sinónimos para cada entrada de entidade acima. Para que um valor de referência seja correspondido, tem de ser incluído como um sinónimo. Quando introduz inicialmente um valor de referência com a consola, este é adicionado automaticamente como sinónimo.
Se algum dos sinónimos corresponder a uma parte da entrada do utilizador final, o valor de referência associado é extraído para a correspondência e é usado para resolver o valor do parâmetro associado.
Não há problema em omitir o valor de referência da lista de sinónimos. Isto significa apenas que não corresponde a uma parte da entrada do utilizador final, mas é usado como o valor extraído quando um dos seus sinónimos corresponde. Isto é desejável quando usa strings especiais para valores de referência que não são introduzidos nem falados pelos utilizadores finais.
Muitas entidades do sistema são entidades de mapas.
Por exemplo, a entidade do sistema @sys.date
corresponde a entradas de data comuns, como "1 de janeiro de 2015" ou "O primeiro de janeiro de 2015".
Ambas as entradas são mapeadas para um valor de referência no formato ISO-8601: "2015-01-01T12:00:00-03:00".
Para criar uma entidade de mapa:
- Na consola, desmarque a opção Entidades Regexp e desmarque a opção Apenas entidades.
- Usando a API,
defina o campo
EntityType.kind
comoKIND_MAP
.
Use a geração de IA para gerar sinónimos automaticamente
Em vez de introduzir sinónimos manualmente, pode usar um gerador de IA para gerar automaticamente sinónimos para o seu valor de referência. Para o fazer, selecione a caixa de verificação Gerar automaticamente X sinónimos por entidade quando criar um novo valor de referência. O valor predefinido é de 3 sinónimos. A geração de mais de 15 sinónimos de uma só vez pode originar erros. Como prática recomendada, certifique-se de que preenche o campo Descrição do tipo de entidade para gerar sinónimos mais precisos para o valor de referência.
Para obter informações sobre como usar esta funcionalidade para gerar e traduzir automaticamente dados para idiomas não predefinidos, consulte a documentação sobre agentes multilingues
Entidade de lista
As entidades de lista fornecem uma lista de entradas de entidades de valor único.
Não têm valores de referência nem sinónimos.
Por exemplo, cada uma das seguintes linhas são entradas de entidades
para um material
tipo de entidade:
Valor |
---|
tecido |
madeira |
metal |
Se for encontrada uma correspondência para uma parte da entrada do utilizador final, o valor é extraído para a correspondência e é usado para resolver o valor do parâmetro associado.
Muitas entidades do sistema são entidades de lista.
Por exemplo, a entidade do sistema @sys.color
corresponde a entradas de cores comuns, como "vermelho" ou "azul".
Quando é encontrada uma correspondência de uma cor,
o valor extraído não é mapeado para nenhum valor de referência.
Por exemplo, os tons de vermelho, como "escarlate" ou "carmesim", não são mapeados para "vermelho" e são extraídos como os respetivos valores originais "escarlate" e "carmesim".
Para criar uma entidade de lista:
- Na consola, desmarque a opção Entidades de expressão regular e marque a opção Apenas entidades.
- Usando a API,
defina o campo
EntityType.kind
comoKIND_LIST
.
Entidade composta
Uma entidade composta é um tipo especial de entidade de lista. As entradas de entidades para entidades de lista contêm normalmente palavras ou expressões simples, mas também podem conter outros tipos de entidades. Quando um tipo de entidade é referenciado noutro tipo de entidade, a referência é denominada alias. Quando uma entidade de lista contém alias para outros tipos de entidades, é denominada entidade composta.
Quando cria um alias, indica o nome do tipo de entidade referenciado e um nome de propriedade à sua escolha. Quando uma entidade composta é correspondida durante o tempo de execução, o valor extraído é devolvido como um objeto JSON, com nomes de propriedades de alias usados como nomes de propriedades JSON. O formato para introduzir um alias é:
@entity-name:property-name
Por exemplo, pode criar um tipo de entidade place
que corresponda a uma cidade ou a um estado com as seguintes entradas de entidades:
Valor |
---|
@sys.geo-city:city |
@sys.geo-state:state |
Se uma entrada do utilizador final contiver uma parte "Nashville",
o tipo de entidade place
é correspondente.
O valor extraído é devolvido como:
{"city": "Nashville"}
.
Também pode usar vários alias de entidades numa entrada de entidade.
Considere o seguinte tipo de entidade personalizada move
que contém
alias para um tipo de entidade direction
e o tipo de entidade do sistema @sys.number
:
Tipo de entidade de mapa personalizado de direção:
Valor de referência | Sinónimos |
---|---|
avançar | para a frente |
anterior | para trás, retroceder, retroceder |
Mova o tipo de entidade da lista personalizada:
Valor |
---|
@sys.number:steps passos @direction:direction |
Se a entidade move
corresponder a uma entrada do utilizador final que contenha "cinco passos para trás", a entidade move
vai corresponder.
O valor extraído é devolvido como:
{"steps": 5, "direction": "back"}
.
Muitas entidades do sistema são entidades compostas.
Por exemplo, a entidade do sistema @sys.unit-currency
é usada para fazer corresponder quantias de dinheiro com o nome de uma moeda.
Corresponde a entradas do utilizador final, como "50 euros" ou "vinte dólares e cinco cêntimos".
O valor extraído é devolvido como um objeto JSON, como:
{"amount": 50, "currency": "EUR"}
Entidade de expressão regular
Com as entidades regexp, pode fornecer expressões regulares para correspondência. Para mais informações, consulte o artigo Entidades Regexp.
Para criar uma entidade de expressão regular:
- Na consola, selecione a opção Entidades de expressão regular.
- Usando a API,
defina o campo
EntityType.kind
comoKIND_REGEXP
.
Expansão automática (adicionar entidades automaticamente)
Pode ativar a expansão automática para um tipo de entidade personalizado. Quando ativado, o seu agente pode reconhecer valores que não foram fornecidos explicitamente. Por exemplo, considere um tipo de entidade de lista de compras:
Valor |
---|
pão |
manteiga |
leite |
maçã |
gelado |
Se a entrada do utilizador final for "Preciso de comprar algumas cenouras", o termo "cenouras" vai ser correspondido para este tipo de entidade, mesmo que não seja fornecido. O agente reconhece que "cenouras" é contextualmente semelhante a outros valores.
Deve seguir as práticas recomendadas quando considerar a expansão automática:
- A ativação da expansão automática não garante a extração de entidades. Para uma lista finita, deve fornecer a lista completa em vez de fornecer uma lista parcial e ativar a expansão automática.
- Se ativar a expansão automática em mais do que uma entidade, pode causar conflitos e resultados de classificação inesperados.
- Para garantir uma melhor qualidade de extração de parâmetros, é fundamental fornecer dados de preparação diversificados que cubram todos os exemplos de utilização em que uma determinada entidade pode ser encontrada no tráfego esperado do agente. Se não tiver exemplos suficientes, a expansão de entidades automatizada pode não funcionar como esperado.
Para ativar a expansão automática:
- Na consola, selecione a opção Adicionar entidades automaticamente.
- Usando a API,
defina o campo
EntityType.autoExpansionMode
comoAUTO_EXPANSION_MODE_DEFAULT
.
Correspondência semelhante
Pode ativar a correspondência aproximada para uma entidade personalizada. Com a correspondência aproximada ativada, a ordem das palavras num valor ou num sinónimo não é importante. Para mais informações, consulte o artigo Correspondência aproximada.
Para ativar a correspondência aproximada:
- Na consola, selecione a opção Correspondência aproximada.
- Usando a API,
defina o campo
EntityType.enableFuzzyExtraction
comotrue
.
Oculte no registo
Se ativar a ocultação de entidades, todos os valores de parâmetros extraídos em tempo de execução para o tipo de entidade são ocultados durante o registo.
Em alternativa, pode ocultar parâmetros individuais.
Exclusões de entidades
Pode adicionar exclusões de entidades, que são expressões que não devem ter correspondência. Por exemplo, se tiver um tipo de entidade de tamanho com a entidade gigante (um adjetivo), pode considerar adicionar gigantes (um substantivo) como uma exclusão.