Hay varias opciones de entidad que cambian el comportamiento de la coincidencia de entidades y la extracción de datos. Estas opciones están preconfiguradas para las entidades del sistema, por lo que no puedes cambiarlas en el caso de las entidades del sistema. Sin embargo, puedes cambiarlos en tus entidades personalizadas. Puedes crear diferentes tipos de entidades en función de las opciones seleccionadas:
- Entidad de mapa
- List entity
- Entidad compuesta (un tipo especial de entidad de lista)
- Entidad de expresión regular
Hay otras opciones que no determinan el tipo de entidad, pero que sí afectan al comportamiento de la coincidencia de entidades:
- Expansión automática
- Coincidencia parcial
- Ocultar información en el registro
- Exclusiones de entidades
En este documento se describe cada una de estas opciones.
Dónde encontrar estos datos
Cuando se crea un agente, lo más habitual es usar la consola de Dialogflow CX (consulta la documentación o abre la consola). Las instrucciones que se indican a continuación se centran en el uso de la consola. Para acceder a los datos de las opciones de entidad:
- Abre la consola de Dialogflow CX.
- Elige tu proyecto de Google Cloud .
- Selecciona tu agente.
- Selecciona la pestaña Gestionar.
- Haga clic en Tipos de entidad.
- Consulte las siguientes opciones para las entidades que ya tenga (algunas solo se verán después de desplegar Opciones avanzadas):
- Solo entidades (sin sinónimos)
- Entidades de expresión regular
- Añadir entidades automáticamente
- Coincidencia parcial
- Ocultar información en el registro
- Exclusiones de entidades
Si vas a crear un agente con la API en lugar de con la consola, consulta el tipo EntityType
.
Los nombres de los campos de la API son similares a los nombres de los campos de la consola.
Las instrucciones que se indican a continuación destacan las diferencias importantes entre la consola y la API.
Selecciona un protocolo y una versión para la referencia EntityType:
Protocolo | V3 | V3beta1 |
---|---|---|
REST | Recurso EntityType | Recurso EntityType |
RPC | Interfaz EntityType | Interfaz EntityType |
C++ | EntityTypesClient | No disponible |
C# | EntityTypesClient | No disponible |
Go | EntityTypesClient | No disponible |
Java | EntityTypesClient | EntityTypesClient |
Node.js | EntityTypesClient | EntityTypesClient |
PHP | No disponible | No disponible |
Python | EntityTypesClient | EntityTypesClient |
Ruby | No disponible | No disponible |
Entidad Map
Las entidades de asignación proporcionan una asignación de valores de referencia a sinónimos de cada valor de referencia. Cada entrada de entidad de mapa contiene un único valor de referencia y una lista de sinónimos. También puedes definir un patrón DTMF para cada entidad.
Por ejemplo, cada una de las siguientes filas son entradas de entidad de un tipo de entidad size
:
Entidad | Sinónimos | Patrón DTMF |
---|---|---|
S | S, pequeño, diminuto | |
M | M, medio, promedio | |
L | L, grande, enorme |
Ten en cuenta que el valor de referencia se incluye en la lista de sinónimos de cada entrada de entidad anterior. Para que se encuentre una coincidencia con un valor de referencia, debe incluirse como sinónimo. Cuando introduces un valor de referencia por primera vez con la consola, se añade automáticamente como sinónimo.
Si se encuentra alguna de las palabras clave de un sinónimo en la entrada del usuario final, se extrae el valor de referencia asociado a la coincidencia y se usa para resolver el valor del parámetro asociado.
No pasa nada si el valor de referencia no aparece en la lista de sinónimos. Esto solo significa que no coincide con una parte de la entrada del usuario final, pero se usa como valor extraído cuando coincide uno de sus sinónimos. Esto es recomendable cuando se usan cadenas especiales para valores de referencia que no escriben ni pronuncian los usuarios finales.
Muchas entidades del sistema son entidades de mapa.
Por ejemplo, la entidad de sistema @sys.date
coincide con entradas de fecha habituales, como "1 de enero del 2015".
Ambas entradas se asignan a un valor de referencia en formato ISO-8601: "2015-01-01T12:00:00-03:00".
Para crear una entidad de mapa, sigue estos pasos:
- En la consola, desmarca la opción Entidades de expresión regular y la opción Solo entidades.
- Con la API, defina el campo
EntityType.kind
comoKIND_MAP
.
Usar la generación de IA para generar sinónimos automáticamente
En lugar de introducir sinónimos manualmente, puede usar un generador de IA para generar automáticamente sinónimos del valor de referencia. Para ello, marca la casilla Generar automáticamente X sinónimos por entidad al crear un valor de referencia. El valor predeterminado es 3 sinónimos. Generar más de 15 sinónimos a la vez puede provocar errores. Como práctica recomendada, rellena el campo Descripción del tipo de entidad para generar sinónimos más precisos para tu valor de referencia.
Para obtener información sobre cómo usar esta función para generar y traducir automáticamente datos a idiomas distintos del predeterminado, consulta la documentación sobre agentes multilingües.
Entidad List
Lista de entidades proporciona una lista de entradas de entidades de un solo valor.
No tienen valores de referencia ni sinónimos.
Por ejemplo, cada una de las siguientes filas son entradas de entidad
para un tipo de entidad material
:
Valor |
---|
tela |
madera |
metal |
Si se encuentra una coincidencia para una parte de la entrada del usuario final, se extrae el valor de la coincidencia y se usa para resolver el valor del parámetro asociado.
Muchas entidades del sistema son entidades de lista.
Por ejemplo, la entidad de sistema @sys.color
coincide con entradas de colores comunes, como "rojo" o "azul".
Cuando se encuentra una coincidencia de color, el valor extraído no se asigna a ningún valor de referencia.
Por ejemplo, los tonos de rojo, como "escarlata" o "carmesí", no se asignan a "rojo" y se extraen como sus valores originales "escarlata" y "carmesí".
Para crear una entidad de lista, sigue estos pasos:
- En la consola, desmarca la opción Entidades de expresión regular y marca la opción Solo entidades.
- Con la API, defina el campo
EntityType.kind
comoKIND_LIST
.
Entidad compuesta
Una entidad compuesta es un tipo especial de entidad de lista. Las entradas de entidades de lista suelen contener palabras o frases sencillas, pero también pueden incluir otros tipos de entidades. Cuando se hace referencia a un tipo de entidad en otro tipo de entidad, la referencia se denomina alias. Cuando una entidad de lista contiene alias de otros tipos de entidades, se denomina entidad compuesta.
Cuando creas un alias, proporcionas el nombre del tipo de entidad referenciada y el nombre de la propiedad que elijas. Cuando se encuentra una entidad compuesta en el tiempo de ejecución, el valor extraído se devuelve como un objeto JSON, con los nombres de las propiedades de alias utilizados como nombres de las propiedades JSON. El formato para introducir un alias es el siguiente:
@entity-name:property-name
Por ejemplo, puedes crear un place
tipo de entidad
que coincida con una ciudad o un estado con las siguientes entradas de entidad:
Valor |
---|
@sys.geo-city:city |
@sys.geo-state:estado |
Si la entrada de un usuario final contiene la parte "Nashville", se corresponde con el tipo de entidad place
.
El valor extraído se devuelve como:
{"city": "Nashville"}
.
También puedes usar varios alias de entidad en una entrada de entidad.
Considera el siguiente tipo de entidad personalizada move
que contiene
alias de un tipo de entidad direction
y del tipo de entidad de sistema @sys.number
:
Tipo de entidad de mapa personalizado de dirección:
Valor de referencia | Sinónimos |
---|---|
siguiente | hacia adelante |
atrás | hacia atrás |
Mover un tipo de entidad de lista personalizada:
Valor |
---|
@sys.number:steps pasos @direction:direction |
Si la entidad move
coincide con una entrada de usuario final que contiene "cinco pasos hacia atrás", se identificará la entidad move
.
El valor extraído se devuelve como:
{"steps": 5, "direction": "back"}
.
Muchas entidades de sistema son entidades compuestas.
Por ejemplo, la entidad de sistema @sys.unit-currency
se usa para asociar cantidades de dinero con un nombre de moneda.
Coincide con las entradas de los usuarios finales, como "50 euros" o "veinte dólares y cinco centavos".
El valor extraído se devuelve como un objeto JSON, como el siguiente:
{"amount": 50, "currency": "EUR"}
Entidad de expresión regular
Con las entidades de expresiones regulares, puede proporcionar expresiones regulares para que coincidan. Para obtener más información, consulta Entidades de expresiones regulares.
Para crear una entidad de expresión regular, sigue estos pasos:
- En la consola, marca la opción Entidades de expresión regular.
- Con la API, defina el campo
EntityType.kind
comoKIND_REGEXP
.
Ampliación automática (añadir entidades automáticamente)
Puedes habilitar la expansión automática de un tipo de entidad personalizada. Si está habilitada, tu agente puede reconocer valores que no se hayan proporcionado explícitamente. Por ejemplo, supongamos que tienes un tipo de entidad de lista de la compra:
Valor |
---|
pan |
mantequilla |
leche |
manzana |
helado |
Si la entrada del usuario final es "Necesito comprar zanahorias", se asociará "zanahorias" a este tipo de entidad, aunque no se haya proporcionado. El agente reconoce que "zanahorias" es contextualmente similar a otros valores.
Debe seguir las prácticas recomendadas cuando considere la expansión automatizada:
- Habilitar la expansión automática no garantiza la extracción de entidades. Si la lista es finita, debe proporcionar la lista completa en lugar de una lista parcial y habilitar la expansión automática.
- Si habilitas la ampliación automática en más de una entidad, puede haber conflictos y resultados de clasificación inesperados.
- Para asegurar una mejor calidad de extracción de parámetros, es fundamental proporcionar datos de entrenamiento diversos que cubran todos los casos prácticos en los que se pueda encontrar una entidad determinada en el tráfico esperado del agente. Si no hay suficientes ejemplos, es posible que la expansión automática de entidades no funcione como se espera.
Para habilitar la expansión automatizada, sigue estos pasos:
- En la consola, marca la opción Añadir entidades automáticamente.
- Con la API, defina el campo
EntityType.autoExpansionMode
comoAUTO_EXPANSION_MODE_DEFAULT
.
Coincidencias parciales
Puedes habilitar la coincidencia aproximada de una entidad personalizada. Si la concordancia aproximada está habilitada, el orden de las palabras de un valor o sinónimo no importa. Para obtener más información, consulta Coincidencia aproximada.
Para habilitar la coincidencia aproximada, sigue estos pasos:
- En la consola, comprueba la opción Coincidencia aproximada.
- Con la API, defina el campo
EntityType.enableFuzzyExtraction
comotrue
.
Ocultar información en el registro
Si habilita la ocultación de entidades, se ocultarán todos los valores de parámetros extraídos en tiempo de ejecución del tipo de entidad al registrarse.
También puede ocultar parámetros concretos.
Exclusiones de entidades
Puedes añadir exclusiones de entidades, que son frases que no deben coincidir. Por ejemplo, si tiene un tipo de entidad de tamaño con la entidad gigante (un adjetivo), puede añadir gigantes (un sustantivo) como exclusión.