Habilidades de diálogo SQL
Los cuadros de diálogo SQL son aptitudes que pueden traducir las expresiones de lenguaje natural de un usuario en consultas SQL, enviar las consultas a un origen de datos de backend y mostrar la respuesta. Esta versión de SQL Dialogs soporta la integración con los servicios de base de datos Oracle, como Oracle Enterprise Database Service.
Esta versión no soporta aptitudes de diálogo SQL en varios idiomas ni aptitudes en las que el idioma principal no sea el inglés. Al crear una nueva aptitud (o versión o clonación de una aptitud), utilice el campo Idioma principal del cuadro de diálogo Crear para especificar el idioma principal. Una aptitud es multilingüe si el grupo de recursos, las expresiones de ejemplo, el aprendizaje automático y las listas de valores, por ejemplo, tienen más de un idioma o si el flujo de diálogo contiene código para detectar el idioma de la entrada del usuario y traducirlo en segundo plano.
Al escribir aptitudes que proporcionen información de base de datos a los usuarios finales, los desarrolladores suelen tener que definir los casos de uso, escribir componentes personalizados para recuperar los datos, crear intenciones para los casos de uso, asignar expresiones de usuario a intenciones y escribir el flujo de diálogo para manejar cada intención. Con los conocimientos de SQL Dialog, no es necesario realizar estos pasos. En su lugar, asignará los modelos mentales de los datos de los usuarios al origen de datos físico, y la aptitud utilizará la asignación para generar dinámicamente SQL a partir de expresiones de lenguaje natural.
Por ejemplo, los usuarios pueden saber que los empleados pertenecen a departamentos que se encuentran en varias ubicaciones y que tienen ID de empleado, cargos, fechas de contratación y, a veces, comisiones. Dado su modelo mental, pueden recuperar los datos preguntando a la habilidad "¿Cuál es el trabajo de James Smith?", "¿Cuándo se contrató a James Smith?", "¿Cuántos empleados hay en Nueva York?" y "¿Quién tiene la comisión más alta?
Puede crear una aptitud de diálogo SQL de forma diferente a las aptitudes normales. Para permitir que la aptitud entienda y responda a expresiones de lenguaje natural, creará un modelo lógico a partir del modelo físico y enseñará ese modelo mediante términos de lenguaje natural para describir el modelo físico.
Cómo funcionan los cuadros de diálogo SQL
Para implantar una aptitud del cuadro de diálogo SQL, cree una aptitud del cuadro de diálogo visual e importe información sobre el modelo físico (esquema de base de datos) desde el servicio de datos. Oracle Digital Assistant utiliza esta información para crear una entidad de consulta para cada tabla importada (el modelo lógico). Las entidades de consulta contienen atributos que modelan las columnas de la tabla.
Si una tabla del modelo físico tiene una clave ajena, la entidad de consulta tiene un atributo que enlaza a la entidad de consulta relacionada. Por ejemplo, si una tabla Emp
tiene una clave ajena a la tabla Dept
, la entidad de consulta Emp
tiene un atributo dept
, que se enlaza a la entidad Dept
.
Tan pronto como cree las entidades de consulta e identifique sus claves primarias, podrá entrenar la aptitud y estará lista para su uso de forma rudimentaria. Es decir, puede utilizar expresiones de formato libre, pero, por ahora, la consulta debe utilizar los nombres primarios de entidad y atributo exactos, que se derivan inicialmente de los nombres del modelo físico (los nombres canónicos). Esto cambiará a medida que mejore el modelo lógico para reflejar mejor el lenguaje natural.
Para permitir que los usuarios finales utilicen el lenguaje natural para preguntar sobre los datos, asigne la terminología del usuario final al modelo físico cambiando los nombres principales y agregando sinónimos para las entidades de consulta y sus atributos. Por ejemplo, puede cambiar el nombre principal de la tabla Emp
a "employee" y agregar el sinónimo "staff member". La adición de nombres principales y sinónimos son dos de las formas en las que entrena el analizador de lenguaje natural (NLP) para resolver expresiones en consultas de lenguaje de consulta de representación de significado de Oracle (OMRQL). Las consultas OMRQL son como consultas SQL, pero se basan en los nombres canónicos de los modelos de objetos (las entidades de consulta). Por ejemplo, si cambia el nombre principal de empno
a "número de empleado", "qué es el número de empleado de Joe Smith" se convierte en SELECT empno FROM emp WHERE ename = 'Joe Smith'.
Para mejorar aún más la resolución del procesador de lenguaje natural (NLP), también puede asociar los atributos a listas de valores, que se rellenan automáticamente desde el servicio de datos en el momento de la creación.
Por ejemplo, supongamos que importa las tablas Emp
y Dept
de un servicio de datos, lo que da como resultado entidades de consulta Emp
y Dept
. Inmediatamente después de importar las tablas y entrenar la aptitud, puede consultar las entidades de consulta mediante expresiones como las siguientes:
Show all Emp in dept 10
Después de cambiar los nombres principales de las entidades y los atributos a términos de lenguaje natural más, como Employees
para la entidad y department
para el atributo, puede utilizar expresiones como esta:
Show all the employees in department 10
Puede agregar más sinónimos para modelar todas las formas en que las personas suelen hacer referencia a la entidad o el atributo. Por ejemplo, puede agregar los sinónimos district
y territory
para department
para que el NLP reconozca esta expresión:
Show all employees in district 10
Con expresiones más complejas, puede enseñar a la aptitud a resolver las consultas a OMRQL agregando datos de entrenamiento personalizados que asocien las expresiones a sentencias OMRQL específicas.
Si la aptitud tiene intenciones de manejar casos de uso no SQL o se incluye en un DA, deseará agregar expresiones de enrutamiento al juego de datos de entidades de consulta para ayudar a la aptitud a diferenciar entre expresiones relacionadas con SQL y expresiones no relacionadas con SQL.
Cuando la aptitud genera un resultado de consulta, permite al usuario dar una pulgar hacia arriba o hacia abajo para indicar si el resultado es correcto. En la página Insights se muestran los recuentos de pulgares hacia arriba (consultas correctas) y pulgares hacia abajo (consultas incorrectas) para que pueda ver el rendimiento de la aptitud.
Consultas Soportadas
El modelo de procesamiento de lenguaje natural de cuadros de diálogo SQL soporta consultas que se traducen en cláusulas SQL básicas: SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY y LIMIT.
Una consulta puede implicar hasta 3 entidades diferentes. Es decir, puede tener hasta 2 uniones. Las consultas que implican 3 uniones se pueden resolver para corregir los resultados en función del caso de uso. Para 4 o más uniones, tendrá que agregar datos de entrenamiento personalizados para asegurarse de que la aptitud proporciona los resultados correctos.
Los cuadros de diálogo SQL no soportan las consultas más complejas que implican subconsultas y operadores SET (INTERSECT, UNION, EXCEPT y NONE). Tampoco admite consultas que no estén en inglés, consultas que soliciten una respuesta afirmativa o negativa, consultas con pronombres y consultas de seguimiento. Para obtener más información sobre estas y otras limitaciones de consulta de cuadros de diálogo SQL, consulte Solución de problemas de consultas SQL.
Para algunas de las consultas que no están soportadas, puede resolver el problema mediante vistas de base de datos o creando atributos virtuales como se describe en Agregar un atributo personalizado.
A continuación se muestra una tabla que describe los tipos de consultas que soportan los cuadros de diálogo SQL. Utiliza los siguientes valores de base de datos:
Tabla de Empleados
employee_id | nombre | Rol | salario | department_id |
---|---|---|---|---|
1 | Alex Smith | VP | 500.000 | 1 |
2 | Samyra Kent | Asistente de ventas | 60.000 | 1 |
3 | Laticia Fan | Asistente de ventas | 80.000 | 1 |
Tabla de departamentos
department_id | nombre | Ubicación |
---|---|---|
1 | Ventas | Dallas |
Estos son los tipos de consultas que soportan los cuadros de diálogo SQL:
Categoría | Descripción | Ejemplos |
---|---|---|
Visualización |
Puede solicitar una entidad, atributos y agregaciones de atributos. Las agregaciones soportadas son media, suma, mínimo, máximo, recuento (atributo), recuento (columna), recuento (atributo distinto) Si la consulta no nombra ningún atributo, la aptitud muestra los que se muestran para Atributos por defecto en el separador Presentación de la entidad. |
|
Filtros |
Puede filtrar las filas de la tabla por condiciones en atributos específicos Los atributos de texto pueden ser iguales a un valor, contener un valor o empezar o terminar con un valor. Puede utilizar diferentes comparadores para filtrar las columnas numéricas y de fecha y hora (=, <, <=, >, >=). Utilice AND y OR para combinar varias condiciones. |
|
Filtros con fechas |
Al filtrar por un atributo de fecha o fecha/hora, tenga en cuenta estos puntos:
|
|
Orden y limitación del número de filas | Puede solicitar explícitamente que la aptitud ordene las filas resultantes por un atributo concreto. También puede solicitar un determinado número de los valores más altos o más bajos de un atributo o entidad. |
|
Group by | Puede solicitar distintos agregados después de agruparlos por un atributo o una entidad. |
|
Agrupar por y filtrar | Puede filtrar atributos o entidades según las agregaciones. |
|
Agrupar por y ordenar con límite opcional | Puede ordenar atributos o entidades en función de las agregaciones y, opcionalmente, solicitar ver un número de las filas superior o inferior. |
|
Tutorial: Introducción a los Recuadros de Diálogo SQL
Para obtener una visión práctica de los cuadros de diálogo SQL, consulte este tutorial:
Flujo de trabajo de cuadros de diálogo SQL
La forma de crear una aptitud de diálogo SQL difiere de las aptitudes normales. Estos son los pasos principales para crear una aptitud de diálogo SQL y entrenarla para que las personas puedan utilizar el lenguaje natural para consultar los servicios de datos.
Los participantes en los siguientes pasos son el desarrollador de aptitudes, el administrador de servicio, el experto en bases de datos y el entrenador de IA.
-
El desarrollador de aptitudes recopila los requisitos de aptitudes (personas de usuario, casos de uso y tareas) y el corpus de entrenamiento (expresiones de usuario de ejemplo) y crea la aptitud. El desarrollador también ayuda a definir cómo se muestran los resultados. Esta persona a veces se conoce como el diseñador de conversaciones.
-
El administrador del servicio agrega una conexión al servicio de datos.
-
El experto de base de datos analiza los requisitos de aptitud y el corpus de entrenamiento para identificar las tablas y los atributos que proporcionan las respuestas. A continuación, el experto crea el modelo lógico base importando información del modelo físico a la aptitud. El experto también ayuda al desarrollador de aptitudes y al entrenador de IA a realizar tareas como agregar atributos basados en expresiones SQL, asociar atributos con listas de valores cargadas desde tablas, asociar atributos con expresiones regulare y realizar entrenamiento personalizado.
- El entrenador de IA agrega nombres principales y sinónimos para enseñar al analizador de lenguaje natural (NLP) cómo comprender las expresiones de lenguaje natural. Para las expresiones que la aptitud no puede traducir a OMRQL, el entrenador de IA agrega formación personalizada para enseñar al analizador de lenguaje natural cómo comprender estas expresiones. El formador supervisa y prueba continuamente la aptitud para aumentar la precisión de la traducción del lenguaje natural a consultas de base de datos.
Para ayudar a ilustrar el flujo de trabajo, utilizaremos un ejemplo de servicio de datos de cuentas a pagar con las siguientes tablas. Por brevedad, solo mostramos las columnas mencionadas en este tema.
Tabla | Columnas |
---|---|
facturas |
|
payment_schedules |
|
proveedores |
|
-
Definir los requisitos: el desarrollador de aptitudes recopila los casos de uso y las tareas que se espera que soporte la aptitud del cuadro de diálogo SQL. Por ejemplo, un departamento de cuentas a pagar puede tener este caso de uso:
-
Caso de uso: pague todas las facturas con saldos pendientes que venzan en un plazo de 30 días para que podamos evitar sanciones.
-
Tarea: buscar todas las facturas no aprobadas que vencen en un plazo de 30 días para que podamos aprobarlas a tiempo.
-
Tarea: buscar todas las facturas aprobadas pendientes que vencen en un plazo de 30 días para que podamos programar para pagarlas a tiempo.
-
Como parte de esta fase de requisitos, el desarrollador de aptitudes compila una lista representativa de las diferentes formas en que las personas solicitan esta información. Esta lista sirve como juego de expresiones de ejemplo que el entrenador de AI utiliza para el corpus de entrenamiento.
-
-
Configurar la aptitud: el administrador de servicio, el desarrollador de aptitudes y el experto en la base de datos trabajan juntos para configurar la aptitud básica.
-
Integrar con el servicio: el administrador del servicio crea una conexión de Oracle Digital Assistant al servicio de datos. Consulte Conexión al servicio de datos.
-
Crear la aptitud del cuadro de diálogo SQL: el desarrollador de aptitudes crea la aptitud del cuadro de diálogo SQL, asegurándose de que el modo de diálogo esté definido en Visual en el cuadro de diálogo Crear aptitud. Consulte Creación de la aptitud de diálogo SQL.
-
Importar el esquema: el experto en la base de datos identifica las tablas y los campos necesarios para soportar los casos de uso y, a continuación, desde la página Entidades de la aptitud, los importa del servicio de datos como se describe en Creación de entidades de consulta para modelar el servicio de datos. Esto crea un modelo lógico base que contiene una entidad de consulta para cada tabla importada.
En nuestro ejemplo, el experto en la base de datos importa las tablas
invoices
,payment_schedules
yvendors
.En este punto, la aptitud está lista para su uso con una funcionalidad limitada. Para el modelo lógico base, los nombres de entidad y atributo se derivan de los nombres de tabla y campo del modelo físico. Por ejemplo, si el nombre de la tabla es
payment_schedules
, el nombre principal espayment schedules
. El entrenador de AI puede probar consultas desde la página Entidades o utilizar el comprobador de conversaciones (Vista previa) para probar la funcionalidad SQL.En nuestro servicio de datos de ejemplo, pueden utilizar expresiones de prueba como "mostrar facturas con indicador de estado pmt N", "mostrar número de factura 17445" o "mostrar programas de pago con fecha de vencimiento anterior a 2022-08-30".
-
-
Formación: agregue datos de entrenamiento mediante nombres primarios, sinónimos, listas de valores, expresiones regulares y consultas de lenguaje natural asignadas a OMRQL.
-
Agregar terminología de lenguaje natural: para ayudar a asociar frases de lenguaje natural a la estructura de datos subyacente, el entrenador de IA enseña a la aptitud las diferentes formas en que los usuarios finales hacen referencia a las entidades y los atributos. Es decir, los nombres que las personas usarán en sus expresiones de lenguaje natural. El entrenador comienza analizando las frases que el desarrollador de aptitudes ha recopilado para identificar las expresiones que debe manejar la aptitud (el corpus de entrenamiento). Además, pueden consultar un tesauro para sinónimos y fuente colectiva para frases similares. A continuación, el entrenador AI registra los términos equivalentes cambiando los nombres principales y agregando sinónimos. Consulte Proporcionar datos de formación a través de nombres y sinónimos.
En nuestro ejemplo, una de las expresiones recopiladas durante la fase de requisitos es "Proporcionarme una lista de facturas con un saldo pendiente mayor que cero". El atributo que contiene el balance es
amount remaining
, por lo que el entrenador de AI agrega el sinónimooutstanding balance
a ese atributo. -
Asociar a listas de valores: para mejorar la precisión, el entrenador de AI puede, cuando corresponda, crear listas de valores que contengan valores de ejemplo del servicio de datos. La aptitud asocia automáticamente las listas a sus atributos respectivos, lo que ayuda al analizador de lenguaje natural a comprender los tipos de valores que estos atributos pueden contener. Consulte Proporcionar datos de formación a través de listas de valores.
En nuestro ejemplo, asocian el atributo
vendor_name
a una lista de valores recuperada del servicio de datos. Si la lista de valores incluye "Seven Corporation" y un usuario pregunta "mostrar indicador de resumen para Seven Corporation", el NLP deducirá que Seven Corporation es un nombre de proveedor. -
Asociar a expresiones regulares: cuando los valores de un atributo deben coincidir con un patrón específico, el entrenador de AI puede crear una entidad de expresión regular y asociarla a ese atributo. Consulte Proporcionar datos de entrenamiento a través de expresiones regulares.
Por ejemplo, el entrenador de AI puede asociar un atributo
ip_address
a la expresión regular(\\d{1,2}|(0|1)\\d{2}|2[0-4]\\d|25[0-5])
. -
Asignar consultas complejas: en los casos en los que la aptitud no puede traducir una expresión válida en OMRQL, el entrenador de AI agrega esa expresión a los datos de entrenamiento y la asigna a OMRQL, como se describe en Proporcionar datos de entrenamiento a través de expresiones. Por ejemplo, puede asignar "mostrar facturas impagadas" a
SELECT * payment_schedules WHERE payment_status_flag = 'Y'
. -
Proporcionar sugerencias de finalización automática: para ayudar a los usuarios a aprender lo que el modelo lógico puede responder, agregue expresiones de ejemplo como se describe en Proporcionar sugerencias de consulta para usuarios de diálogo SQL.
-
Proporcionar datos de enrutamiento: si la aptitud del cuadro de diálogo SQL tiene intenciones o está en un DA, tendrá que agregar expresiones para ayudar a la aptitud a distinguir las consultas de base de datos. Consulte Ruta de Expresiones a la Conversación de Recuadros de Diálogo SQL.
-
Entrenar el modelo de NLP: para incorporar datos de entrenamiento al modelo de NLP, el icono desarrollador de aptitudes o entrenador de AI hace clic en el icono Entrenar y hace clic en Enviar.
-
-
Configurar cómo se muestra la información: el experto en base de datos y el desarrollador de aptitudes trabajan juntos para ajustar el modo en que se muestran los resultados de cada entidad, como se describe en Configurar presentación de entidades y atributos. Por ejemplo, pueden definir el orden de clasificación por defecto de una entidad, mostrarse como formulario o tabla, definir los atributos mínimos que se van a incluir en la salida, agregar botones y enlaces a los resultados y agregar atributos que muestren datos derivados o calculados.
En nuestro ejemplo, pueden definir tanto el orden de clasificación por defecto de la entidad de factura como los atributos mínimos en
invoice_num
, y definir los atributos por defecto eninvoice_num
,invoice_date
,pmt_status_flag
yinvoice_amount
. También pueden agregar un atributoage
que se calcula con la diferencia entre la fecha de hoy y la fecha de factura. -
Configurar reglas de consulta: el experto en la base de datos y el entrenador de AI trabajan juntos para definir las reglas de consulta, como cuándo utilizar la coincidencia parcial y qué atributo utilizar para medir cuando alguien solicita comparar filas sin especificar un atributo con el que comparar. Consulte Definición de reglas de consulta.
En nuestro ejemplo, anticipan a los usuarios finales que solicitan los 10 pagos más importantes, por lo que configurarán la entidad
payment schedules
para que utilicedue_date
para las comparaciones, e invertirán las comparaciones para ese atributo de modo que las fechas anteriores tengan un rango superior al de las fechas posteriores. -
Prueba y reparación: el entrenador de AI utiliza el comprobador de consultas de la página Entidades para verificar que las expresiones de prueba se resuelven en el OMRQL deseado y que la aptitud puede convertir el OMRQL en SQL ejecutable. Cuando el comprobador de consultas no puede traducir OMRQL a SQL, solicita datos de entrenamiento. En muchos casos, puede resolverlo agregando la expresión a los datos de entrenamiento y asociándola a una sentencia OMRQL. Consulte Test and Repair.
-
Supervisar y mejorar: una vez que la aptitud entra en la fase de prueba beta y más allá, el entrenador de IA, el desarrollador de aptitudes, el mánager de proyectos y las partes interesadas pueden supervisar continuamente las pruebas por lotes y los datos de estadísticas para ver el rendimiento de la aptitud y para identificar áreas de mejora. Consulte Supervisión y mejora.
Conexión al Servicio de Datos
Para poder acceder a un servicio de datos desde cualquier aptitud del cuadro de diálogo SQL, debe agregar una integración de servicio de datos que permita a Oracle Digital Assistant acceder al servicio de datos. Solo necesita una integración por servicio de datos.
Las integraciones se han probado con Oracle Database Cloud Service Enterprise Edition 12c y 19c Oracle Autonomous Transaction Processing y MySQL HeatWave Database Service con MySQL versión 8.
Después de crear el servicio, no puede cambiarlo. Si cambia la contraseña, deberá suprimir y volver a crear la integración del servicio de datos.
Servicio de datos de Oracle
Para conectarse a una base de datos Oracle, realice los siguientes pasos:
-
En el asistente digital, haga clic en
para abrir el menú lateral, haga clic en Configuración, haga clic en Servicios adicionales y haga clic en el separador Datos.
-
Haga clic en + Agregar servicio.
-
En el cuadro de diálogo Nuevo servicio de datos, proporcione esta información básica:
Nombre del Campo Descripción Tipo de base de datos Seleccione Oracle. Nombre Un nombre único para el servicio. Descripción del servicio de datos Descripción opcional de la integración del servicio de datos, como una descripción de la base de datos o la finalidad. Nombre de usuario Pida al administrador de la base de datos el nombre de usuario y la contraseña que proporcionan acceso a las tablas que los desarrolladores de aptitudes necesitan para crear las entidades compuestas para su aptitud de diálogo SQL, como se describe en Creación de entidades de consulta para modelar el servicio de datos. Contraseña Contraseña del usuario. Tenga en cuenta que para la integración con Oracle Digital Assistant, una contraseña debe tener al menos 14 caracteres y no más de 30 caracteres, y debe contener al menos un carácter en mayúscula, un carácter en minúscula y un número. Tampoco puede empezar con un dígito. -
Haga clic en Continuar para configurar la autenticación de usuario final si el servicio de datos está configurado para el acceso basado en roles. A continuación, se muestra una descripción de los campos de esa página:
Nombre del Campo Descripción La autenticación de usuario final es necesaria Seleccione esta opción si el servicio de datos está configurado para el acceso basado en roles. Servicio de autenticación Seleccione un servicio de autenticación que haya configurado en Configuración > Servicios de autenticación.
Identificador de usuario final Seleccione el tipo de identificador de usuario final. Expresión personalizada Si el tipo de identificador de usuario final seleccionado es personalizado, introduzca una expresión FreeMarker en una variable de perfil de usuario que represente el identificador de usuario final.
Consulte Expresiones para reclamaciones de perfil de OICD para obtener más información y ejemplos.
-
Haga clic en Continuar para agregar los detalles de conexión.
-
En la página Detalles de conexión, seleccione Básico o Conexión de cartera en la nube para el tipo de conexión.
- Para bases de datos de nodo único y bases de datos activadas para RAC, debe seleccionar Básico.
- Si se conecta a una base de datos ATP, debe seleccionar Conexión de cartera en la nube.
-
Si el tipo de conexión es Básico, introduzca estos valores, que puede obtener del administrador de la base de datos:
Nombre del Campo Descripción Usar TLS Mueva este conmutador a la posición ON si desea utilizar TLS (seguridad de capa de transporte) para proteger la conexión. Nota
Si utiliza un certificado de CA privado para conectarse a la base de datos, esta opción se debe activar.Nombre del Host Introduzca el host para el servicio de datos. No incluya el prefijo
https://
. Por ejemplo:example.com
.Puerto Puerto que permite conexiones de cliente a la base de datos. Identificador de servicio Realice una de las siguientes acciones:
-
Seleccione SID e introduzca el identificador del sistema Oracle de la instancia de la base de datos.
-
Seleccione Nombre de servicio e introduzca el nombre de servicio para la base de datos.
Punto final privado Esta opción solo aparece si tiene puntos finales privados configurados en la instancia de Digital Assistant. Si se conecta a un punto final privado para acceder al servicio, cambie el conmutador Punto final privado a la posición ON y, a continuación, seleccione de una lista de puntos finales privados asociados a la instancia.
(El uso de un punto final privado permite acceder a un servicio al que no se puede acceder directamente desde la red pública de Internet. Consulte Punto final privado para obtener más información).
-
-
Si el tipo de conexión es Conexión de cartera en la nube, introduzca estos valores, que puede obtener del administrador de la base de datos:
Nombre del Campo Descripción Archivo de cartera Busque y seleccione el archivo de Cloud Wallet que contiene las credenciales del cliente o arrástrelo y suéltelo en el campo. Contraseña de Cartera Introduzca la contraseña proporcionada al descargar el archivo de cartera. Tenga en cuenta que para la integración con Oracle Digital Assistant, una contraseña de cartera debe tener al menos 15 caracteres y no más de 30 caracteres, y debe contener al menos un carácter en mayúscula, un carácter en minúscula, un carácter especial y un número. Tampoco puede empezar con un dígito. Service Seleccione el nombre del servicio de base de datos. Asegúrese de seleccionar un servicio que tenga una simultaneidad de servicio suficientemente alta para que las consultas no tarden más de 30 segundos (en cuyo momento se agotan los tiempos de espera). Los nombres de servicio con los sufijos _tp
y_tpurgent
son generalmente las opciones más adecuadas aquí. Puede obtener más información sobre estas consideraciones en Nombres de servicio de base de datos para Autonomous Database y Simultaneidad de servicio.Punto final privado Esta opción solo aparece si tiene puntos finales privados configurados en la instancia de Digital Assistant. Si se conecta a un punto final privado para acceder al servicio, cambie el conmutador Punto final privado a la posición ON y, a continuación, seleccione de una lista de puntos finales privados asociados a la instancia.
(El uso de un punto final privado permite acceder a un servicio al que no se puede acceder directamente desde la red pública de Internet. Consulte Punto final privado para obtener más información).
- En la página Propiedades avanzadas, si necesita un certificado de CA privado para conectarse a la base de datos, cambie el conmutador Usar confianza privada a la posición ON y rellene el resto de campos necesarios.
Nombre del Campo Descripción Usar confianza privada Si utiliza un certificado de CA privado para conectarse a la base de datos, cambie este conmutador a la posición ON. Este conmutador solo está activado si ha seleccionado Usar TLS en la página Detalles de conexión. Recurso de certificados Seleccione Autogestionado. Seleccionar archivo PEM y Pegar texto PEM Seleccione una de estas opciones para proporcionar el certificado. -
Haga clic en Agregar servicio.
Ahora puede importar el esquema de base de datos en una aptitud para crear entidades de consulta, lo que permite a los usuarios consultar la base de datos mediante lenguaje natural.
Expresiones para reclamaciones de perfil de OICD
Si tiene una conexión a un servicio de datos con acceso basado en roles y ha seleccionado Personalizado como tipo de identificador de usuario, debe proporcionar una expresión FreeMarker a una variable de perfil de usuario que represente el identificador de usuario final, ya sea como reclamación estándar o personalizada de OpenID Connect (OIDC). Estos son algunos ejemplos:
-
${userProfile.MyAuthService1.value.sub}
-
${userProfile.MyAuthService1.value["http://acme.com/custom_identifier"]}
Para obtener más información sobre cómo funcionan las reclamaciones de perfil en OIDC y algunas reclamaciones de ejemplo, consulte los siguientes recursos:
MySQL Servicio de datos
-
En el asistente digital, haga clic en
para abrir el menú lateral, haga clic en Configuración, haga clic en Servicios adicionales y haga clic en el separador Datos.
-
Haga clic en + Agregar servicio.
-
En el cuadro de diálogo Nuevo servicio de datos, proporcione esta información básica:
Nombre del Campo Descripción Tipo de base de datos Seleccione MySQL. Nombre Un nombre único para el servicio. Descripción del servicio de datos Descripción opcional de la integración del servicio de datos, como una descripción de la base de datos o la finalidad. Tipo de autenticación El administrador de la base de datos le indicará si debe seleccionar Valor predeterminado, Kerberos o SO. Nombre de usuario Pida al administrador de la base de datos el nombre de usuario y la contraseña que proporcionan acceso a las tablas que los desarrolladores de aptitudes necesitan para crear las entidades compuestas para su aptitud de diálogo SQL, como se describe en Creación de entidades de consulta para modelar el servicio de datos. Contraseña Contraseña del usuario. Tenga en cuenta que para la integración con Oracle Digital Assistant, una contraseña debe tener al menos 14 caracteres y no más de 30 caracteres, y debe contener al menos un carácter en mayúscula, un carácter en minúscula y un número. Tampoco puede empezar con un dígito. -
Haga clic en Continuar para configurar los detalles de conexión que se muestran en esta tabla:
Nombre del Campo Descripción Usar TLS Mueva este conmutador a la posición ON si desea utilizar TLS (seguridad de capa de transporte) para proteger la conexión. Nota
Si utiliza un certificado de CA privado para conectarse a la base de datos, esta opción se debe activar.Nombre del Host Introduzca el host para el servicio de datos. No incluya el prefijo
https://
. Por ejemplo:example.com
.Puerto Puerto que permite conexiones de cliente a la base de datos. Base de datos El nombre de la base de datos.
Punto final privado Esta opción solo aparece si tiene puntos finales privados configurados en la instancia de Digital Assistant. Si se conecta a un punto final privado para acceder al servicio, cambie el conmutador Punto final privado a la posición ON y, a continuación, seleccione de una lista de puntos finales privados asociados a la instancia.
(El uso de un punto final privado permite acceder a un servicio al que no se puede acceder directamente desde la red pública de Internet. Consulte Punto final privado para obtener más información).
- En la página Propiedades avanzadas, si necesita un certificado de CA privado para conectarse a la base de datos, cambie el conmutador Usar confianza privada a la posición ON y rellene el resto de campos necesarios.
Nombre del Campo Descripción Usar confianza privada Si utiliza un certificado de CA privado para conectarse a la base de datos, cambie este conmutador a la posición ON. Este conmutador solo está activado si ha seleccionado Usar TLS en la página Detalles de conexión. Recurso de certificados Seleccione Autogestionado. Seleccionar archivo PEM y Pegar texto PEM Seleccione una de estas opciones para proporcionar el certificado. -
Haga clic en Agregar servicio.
Ahora puede importar el esquema de base de datos en una aptitud para crear entidades de consulta, lo que permite a los usuarios consultar la base de datos mediante lenguaje natural.
Crear la aptitud de diálogo SQL
Para crear una aptitud de cuadro de diálogo SQL, simplemente cree una aptitud con el modo de diálogo definido en Visual.
Creación de entidades de consulta para modelar el servicio de datos
Para activar las consultas de servicio de datos en una aptitud de diálogo SQL, importe información sobre el modelo físico de un servicio de datos (las tablas o vistas y sus columnas) para crear un modelo lógico base. Durante la importación, la aptitud agrega entidades de consulta al modelo lógico, donde cada entidad de consulta representa una tabla física.
Una aptitud no puede tener más de 50 entidades y atributos de consulta. Por ejemplo, puede tener 5 entidades de consulta que combinadas tengan 45 atributos.
Al entrenar la aptitud, utiliza la información de las entidades de consulta para crear un modelo para el analizador de lenguaje natural, lo que permite a la aptitud traducir expresiones de usuario en OMRQL. OMRQL es un lenguaje de consulta similar a SQL, pero basado en modelos de objetos, que, en este caso, son las entidades de consulta.
Antes de empezar, necesita lo siguiente:
-
Aptitud creada mediante el modo Visual.
-
Integración de servicio de datos para conectarse al servicio de datos como se describe en Conexión al servicio de datos.
Para crear entidades de consulta para las tablas deseadas en el servicio de datos:
-
En la página Entidades, haga clic en Más y, a continuación, seleccione Importar de servicio de datos.
Aparece el cuadro de diálogo Importar entidades de consulta.
-
Seleccione el servicio de datos y, a continuación, seleccione las tablas y los atributos que desea utilizar en la aptitud.
-
Haga clic en Importar
La aptitud agrega entidades de consulta para las tablas seleccionadas. Define los nombres principales de entidad y atributo según los nombres canónicos. Por ejemplo, si el nombre canónico es "invoice_num", el nombre principal será "invoice num".
-
Para cada entidad de consulta que se haya agregado, seleccione la entidad, haga clic en el separador Configuración y verifique que la clave primaria está definida en la sección Asignación de backend.
En este punto, puede probar las consultas con los nombres principales de las entidades y los atributos, como "mostrar facturas en las que el número de factura es 12345". Pero primero, debe hacer clic en y, a continuación, cuando termine, puede hacer clic en Probar consultas para probar las expresiones o hacer clic en Vista previa para probarlas en el comprobador de conversaciones.
Puesto que está trabajando con una aptitud de cuadro de diálogo SQL mínima, puede entrenar con Trainer Ht o Trainer Tm. Sin embargo, después de agregar sugerencias de autocompletado, datos de enrutamiento y datos de entrenamiento personalizados, Trainer Tm produce resultados más precisos.
El siguiente paso consiste en enseñar a la aptitud cómo los usuarios finales hacen referencia a las entidades y los atributos. Consulte Entrenamiento de la aptitud para convertir expresiones de lenguaje natural en SQL.
Entrenamiento de la aptitud para convertir expresiones de lenguaje natural en SQL
Como formador de AI, su trabajo consiste en permitir que el analizador de lenguaje natural traduzca expresiones de lenguaje natural como "cuántas facturas tienen una fecha de vencimiento anterior al 15/12/22" en una consulta OMRQL para recuperar la respuesta del origen de datos subyacente (el modelo físico). Para ello, debe crear un modelo lógico intuitivo de los datos que refleje de cerca el lenguaje natural.
Una vez creado el modelo lógico mediante la importación desde el origen de datos, utilizará nombres primarios, sinónimos, listas de valores y expresiones para ayudar al analizador de lenguaje natural de la aptitud a asociar frases de lenguaje natural a las tablas y columnas del modelo físico.
-
Para enseñar a la aptitud sobre las diferentes formas en que las personas hacen referencia a los objetos, agregue nombres principales y sinónimos como se describe en Proporcionar datos de entrenamiento a través de nombres y sinónimos. Por ejemplo, puede que desee enseñar a la aptitud que las personas utilizan "número de factura" para hacer referencia a la columna
invoice_num
y también puede que desee agregar "no de factura" y "número de referencia" como sinónimos. -
Para ayudar a la aptitud a identificar valores de atributo en una expresión, cree listas de valores de ejemplo y asócielas a atributos como se describe en Proporcionar datos de entrenamiento mediante listas de valores. Por ejemplo, puede crear una lista de valores que contenga estados de pago reales y asociar la lista con el atributo
payment status
de la factura. -
Para ayudar a la aptitud a identificar valores de atributo en función de patrones, cree entidades de expresión regular y asócielas a atributos como se describe en Proporcionar datos de entrenamiento a través de expresiones regulares. Por ejemplo, puede crear una entidad de expresión regular con la expresión
(\\d{1, 2}|(0|1)\\d{2}|2[0-4]\\d|25[0-5])
y asociarla al atributoip_address
. -
Cuando la aptitud no puede traducir correctamente una expresión en OMRQL, puede agregar una asignación de expresión a OMRQL al juego de datos de entidad de consulta como se describe en Proporcionar datos de entrenamiento a través de expresiones y Probar y reparar. También puede agregar expresiones para ayudar a la aptitud a saber cuándo enrutar una expresión al flujo que la procesa como una ejecución SQL (es decir, se traduce a OMRQL y, a continuación, envía una consulta SQL al origen de datos).
Proporcionar datos de formación a través de nombres y sinónimos
Para ayudar a una aptitud de cuadros de diálogo SQL a asociar frases de lenguaje natural a la estructura de datos subyacente (modelo físico), empiece por tomar las expresiones identificadas que debe manejar la aptitud (el corpus de entrenamiento) y analícelas para detectar las diferentes formas en que los usuarios finales hacen referencia a las entidades y atributos.
Por ejemplo, supongamos que tiene estas expresiones en el corpus de entrenamiento:
-
Mostrarme las facturas con saldos pendientes mayores que cero.
-
¿Cuál es el importe adeudado para la referencia 12656?
Aquí, verá que las personas utilizan "saldo pendiente" e "importe pendiente" para hacer referencia a la columna amount_remaining
. También puede ver que "referencia" es una forma en que las personas hacen referencia a invoice_num
.
Además del corpus de entrenamiento, también puede que desee utilizar expresiones crowdsource de los usuarios de destino para obtener más frases y analizarlas también.
Después de compilar la lista de las formas en que las personas hacen referencia a las entidades y atributos, seleccione el término que desea utilizar para el nombre principal de cada entidad y atributo. Deben ser nombres que estén más cerca de los usos más comunes. Al elegir el nombre, tenga en cuenta que es probable que el modelo de NLP listo para usar no comprenda las relaciones específicas del dominio. Por ejemplo, no comprenderá automáticamente que número de factura y referencia hagan referencia a lo mismo. Dado que el número de factura se utiliza con frecuencia y también está más cerca de otros términos de uso común, como no de factura y número de factura, debe convertirlo en el nombre principal.
Trate el resto de los términos como sinónimos. En el ejemplo anterior, debe agregar referencia, no de factura y número de factura a la lista de sinónimos.
Tenga en cuenta que el nombre principal es el valor por defecto para las cabeceras y etiquetas de columna de resultados, pero puede cambiarlo en el separador Presentación.
Con la lista, puede crear los datos de formación en la página Entidades.
-
Para definir los nombre principal y los sinónimos de la entidad, abra el separador Configuración de la entidad y amplíe Lenguaje natural.
-
Para definir los nombre principal y los sinónimos del atributo, abra el separador Idioma natural del atributo.
Al procesar expresiones, el analizador de lenguaje natural no tiene en cuenta los nombres canónicos del modelo físico, es decir, no consulta los nombres de tabla y columna. Solo utiliza las asignaciones de lenguaje natural que defina mediante nombres y sinónimos (el modelo lógico).
Proporcionar datos de formación a través de listas de valores
Puede mejorar la precisión del analizador de lenguaje natural asociando atributos a listas de valores o entidades dinámicas. Esto ayuda al analizador a identificar un atributo en función de sus valores conocidos. Puede utilizar Entidad de referencia en el separador Información general del atributo para asociar el atributo a los valores de la entidad de referencia. Para las entidades de lista de valores, puede crear automáticamente la entidad, importar los valores del servicio de datos y asociarla como entidad a la que se hace referencia en un solo paso.
Al decidir si se debe utilizar una lista de valores o una entidad dinámica para almacenar los valores, tenga en cuenta si la entidad está abierta o cerrada.
-
Una lista abierta es una lista que es infinita o dinámica (o ambas). Para las listas abiertas, considere la posibilidad de crear y mantener una entidad dinámica en lugar de una lista de valores. Si decide utilizar una lista de valores, debe seleccionarla para asegurarse de que contiene al menos los valores más utilizados. Por ejemplo, para una lista de proveedores que probablemente crezca con el tiempo, querrá que la lista incluya los proveedores que más se utilizan. Esto se debe a que las consultas sobre un proveedor sin usar la palabra "proveedor", como "mostrar el indicador de resumen para Seven Corporation", no coincidirán si ese valor no está en la lista de valores. Por lo tanto, aumenta la frecuencia de las resoluciones correctas al menos incluyendo los valores más utilizados.
-
Una lista cerrada es una lista finita estática. Son ideales para entidades de lista de valores.
Para las listas de valores y las entidades dinámicas, agregue versiones en singular y plural (cuando corresponda) de sinónimos para cada valor de entidad para indicar las formas en que los usuarios finales harán referencia al valor.
Los sinónimos son especialmente importantes cuando la lista contiene valores que los usuarios finales no suelen utilizar. Por ejemplo, esta lista de estados de pago válidos. Los usuarios serán mucho más propensos a usar palabras como pagado, no pagado y parcialmente pagado que usar Y, N y P. Agregar estas palabras como sinónimos ayuda a garantizar que el NLP reconozca que los usuarios hacen referencia al atributo de estado de pago.
Valores de estado de pago | Sinónimos |
---|---|
S | pagado |
N | no pagado, no pagado |
P | parcial, parcialmente pagado, no pagado |
Cuando un término describe más de un valor de entidad, agregue ese término como sinónimo a cada uno. Por ejemplo, tanto N
como P
indican que la factura no se ha pagado. Si agrega "no pagado" como sinónimo de ambos estados, "mostrar facturas no pagadas" recuperará facturas con un valor payment_status de N
o P
.
Para las entidades dinámicas, cree la entidad y, a continuación, utilice Entidad de referencia en el separador Información general del atributo para asociar el atributo a la lista.
Para las listas de valores, puede crear una lista de valores a partir del servicio de datos y asociarla a una entidad siguiendo estos pasos:
-
En la página Entidades, edite el atributo y vaya al separador Información general.
-
Seleccione Entidad de la lista desplegable Tipo.
-
Haga clic en Si la entidad deseada no existe, puede generar una entidad de lista de valores basada en la asignación en segundo plano haciendo clic aquí. La lista de valores se crea y rellena a partir del servicio de datos, y la entidad de referencia apunta a la nueva lista de valores.
-
(Opcional) Para aumentar las posibilidades de que la entrada de usuario coincida con un valor de la lista, abra la entidad de lista de valores y active Coincidencia parcial. De lo contrario, utiliza una coincidencia estricta, lo que significa que la entrada del usuario debe ser una coincidencia exacta con los valores y sinónimos. Por ejemplo, "coches" no coincidirá con "coche".
La coincidencia parcial utiliza palabra derivada para identificar atributos de la consulta. Por ejemplo, "libra" coincide con "libras", "retención" coincide con "retención", "aprobación necesaria" coincide con "requiere aprobación" y "arrendamiento de alquiler" coincide con "arrendamiento de alquiler".
Tenga en cuenta que la coincidencia parcial no funciona para "_" y "?". Además, la coincidencia parcial no funciona. Por ejemplo, "Seven" no coincide con "Seven Corporation". Si necesita habilitar la coincidencia para dichas cadenas, agréguelas a la lista de sinónimos.
-
Haga clic en Aplicar para guardar los cambios.
Si algún valor de la tabla física del servicio de datos termina con un punto, un signo de interrogación o espacios, esos caracteres no se incluyen en la lista de valores porque no están permitidos para nombres canónicos.
Proporcionar datos de entrenamiento a través de expresiones regulares
Si los valores de un atributo deben coincidir con un patrón determinado, puede ayudar al analizador de lenguaje natural a identificar los valores de ese atributo asociando el atributo a una entidad de expresión regular.
Esto puede resultar útil cuando todos los valores deben seguir un patrón específico y el juego de valores válidos es demasiado grande para una lista de valores o es infinito. Por ejemplo, para un atributo ip_address, puede asociarlo a una entidad de expresión regular denominada IpAddress, que tiene la expresión regular (\\d{1,2}|(0|1)\\d{2}|2[0-4]\\d|25[0-5])
.
Tenga en cuenta que, de forma similar a las listas de valores, si se puede asociar más de un atributo del modelo a la misma expresión regular, los usuarios deberán proporcionar suficiente contexto en su consulta para distinguir entre los dos (o más) atributos.
Para asociar un atributo a una expresión estándar:
-
En la página Entidades, haga clic en + Agregar entidad, seleccione Expresión regular en la lista desplegable Tipo, introduzca la expresión regular y haga clic en Crear.
Asegúrese de crear la expresión regular de forma que evite que el analizador de lenguaje natural asocie valores no relacionados con el atributo.
-
Seleccione la entidad con el atributo que desea asociar a la expresión regular, edite el atributo y vaya al separador Información general.
-
Seleccione Entidad en la lista desplegable Tipo.
-
En la lista desplegable Entidad de referencia, seleccione la entidad de expresión regular.
-
Haga clic en Aplicar para guardar los cambios.
Proporcionar datos de entrenamiento a través de expresiones
Como entrenador de IA, encontrará expresiones de lenguajes naturales que la aptitud no puede traducir a OMRQL. Por ejemplo, es posible que el modelo no pueda manejar sinónimos específicos del dominio que no parecen estar estrechamente relacionados con el nombre principal. Otro ejemplo es cuando el modelo no es capaz de distinguir entre dos entidades similares. Cuando esto sucede, puede utilizar datos de entrenamiento para enseñar a la aptitud cómo analizar correctamente la expresión en OMRQL.
La adición a los datos de entrenamiento se suele denominar formación personalizada. Utilice el entrenamiento personalizado para enseñar al modelo a asociar palabras y frases con atributos, entidades y palabras clave de OMRQL en el contexto de una expresión completa mediante la asignación de la expresión a OMRQL.
Para cada escenario que esté corrigiendo, comience con 20 expresiones y agregue más según sea necesario. Puesto que demasiados ejemplos pueden provocar que el modelo prediga en exceso atributos y operadores, debe centrarse en un juego más pequeño de expresiones diversas en lugar de en un juego grande de expresiones similares de menor calidad. Tenga en cuenta que hay un límite de 120 expresiones por aptitud.
Todos los valores de la sentencia OMRQL deben coincidir exactamente con el valor y el formato de la base de datos. Tomemos, por ejemplo, la expresión "quién es el empleado cuyo nombre es Jones". Si los valores de la base de datos para el atributo name están en mayúsculas, el valor del nombre también debe estar en mayúsculas. Esto es "SELECT * FROM Emp WHERE name = 'JONES'".
Cuando la expresión que está asignando utiliza un sinónimo para el valor real de la base de datos, ese sinónimo se debe definir para el valor en una lista de valores y OMRQL debe utilizar el valor real de la base de datos. Por ejemplo, si la expresión es "mostrar el departamento cuya ubicación es la manzana grande", "manzana grande" se debe definir en la lista de valores dept_loc como sinónimo del valor "NEW YORK" y OMRQL debe ser "SELECT * FROM Dept WHERE loc = 'NEW YORK'".
Puede agregar expresiones que contengan fechas absolutas, como "facturas que vencen el 5 de enero de 2022", pero no utilice expresiones con fechas relativas ni fechas sin el año. Por ejemplo, si la expresión es "facturas que vencen hoy", la fecha de hoy se codificará en OMRQL como SELECT * FROM invoice WHERE due_date = '2022-01-01'. Además, si utiliza una fecha relativa como "hoy", puede que aparezca un error que indique que las fechas relativas no están soportadas.
A continuación, se muestran algunas prácticas recomendadas para expresiones de formación personalizadas:
-
Equilibrar el número de expresiones: es posible que algunos de los escenarios más complejos necesiten más expresiones que los simples, pero intente equilibrar el número de expresiones por escenario.
-
Equilibrar el entrenamiento de atributos y entidades similares: si tiene dos atributos similares y necesita proporcionar datos de entrenamiento personalizados para uno de ellos, también debe proporcionar la misma cantidad de datos de entrenamiento para el otro. Cuando los datos de entrenamiento se concentran solo en uno de los atributos similares, el modelo puede predecir demasiado ese atributo sobre su contraparte. Lo mismo ocurre con entidades similares. Por ejemplo, la moneda de pago y la moneda de factura son atributos similares. Si la moneda de pago está sobrerrepresentada en los datos de entrenamiento, el modelo puede predecir la moneda de pago incluso cuando la expresión solicita la moneda de factura.
Cuando necesite enseñar al modelo cómo distinguir entre dos atributos similares o estrechamente relacionados, equilibre la ponderación de la importancia proporcionando la mitad de las expresiones para un atributo y la mitad de las expresiones para el otro.
Cambie las expresiones que hacen referencia a estos atributos similares. Por ejemplo, aquí hay pares de expresiones contrastantes para ayudar al modelo a distinguir entre
amount_remaining
yamount_paid
:- indicar el importe restante de las facturas aprobadas
- mostrarnos el importe pagado de las facturas aprobadas
- ver el importe total que se debe pagar al AAD del proveedor
- calcular el importe total que se pagó al AAD del proveedor
- cuál es el importe pendiente en las facturas de venta al AAD del proveedor
- Mostrar el importe pagado de las facturas al AAD del proveedor
-
Equilibrar el entrenamiento de valores que coinciden con nombres o sinónimos principales: suponga, por ejemplo, que el modelo tiene un atributo
manager
y que "manager" también es un valor para el atributojob
del empleado. Si desea agregar "Cuántos mánager" a los datos de entrenamiento, debe equilibrar estos datos de entrenamiento con expresiones que utilicen el atributomanager
, como "Quién es el mánager del empleado Adam Smith", así como expresiones que utilicen el mánagerjob
, como "Mostrar todos los mánager". De esta manera, el modelo puede aprender a diferenciar entre los dos usos. Si no incluye ejemplos para ambos tipos de uso, es posible que la aptitud prediga un uso sobre el otro. -
Diversificar frases: las mejores prácticas para diversas frases para datos personalizados son similares a las de las expresiones de intención:
-
Usa frases completas.
-
Utilice diferentes verbos. Por ejemplo: ver, mostrar, mostrar, contar y ver.
-
Utilice varios sinónimos y parafrases además del nombre de entidad o atributo.
-
Utilice diferentes pronombres. Por ejemplo: muéstrame, podemos ver, decirnos, quiero.
-
Varíe la estructura de la oración. Por ejemplo, coloque el valor de atributo cerca del principio, el medio y el final de las oraciones.
-
Si tiene expresiones con una agregación, como
AVG
, también agregue expresiones con otros operadores. -
Si es posible, utilice diferentes cláusulas, como las cláusulas group by y where con las condiciones AND y OR.
-
-
Diversificar valores: cuando utiliza más de un valor en las expresiones del escenario, el modelo puede reconocer mejor diferentes valores. Incluir valores con diferentes longitudes de palabra. Incluya algunos valores con caracteres especiales como '/' y "-". Incluya algunos valores con palabras clave especiales como "and".
-
Incluya una combinación de valores conocidos y desconocidos. Para los atributos de lista de valores, utilice un juego representativo de valores de atributo (pero no todos) para entrenar que las coincidencias de lista de valores son señales importantes. Además, para las listas de valores que no están cerradas, incluya valores que no estén en la lista de valores para enseñarle a asociar también frases concretas al atributo.
Para agregar una expresión asignada a los datos de entrenamiento:
-
Si el botón Entrenar tiene una insignia roja, haga clic en
y entrene con Trainer Tm.
-
En la página Entidades, vaya al separador Juego de datos y haga clic en Entidades de consulta.
-
Haga clic en el separador Datos de formación.
-
Haga clic en Agregar expresión.
Aparece el cuadro de diálogo Crear expresión.
-
Introduzca la expresión y haga clic en Continuar.
El cuadro de diálogo muestra la consulta OMRQL para la expresión. Si no puede convertir la expresión en la consulta, la consulta estará en blanco.
Tenga en cuenta que si la aptitud no se ha entrenado, no puede traducir la expresión en una consulta OMRQL.
-
Revise la consulta y corríjala si está mal.
Para obtener ejemplos y palabras clave de OMRQL, consulte Referencia de OMRQL.
-
Haga clic en Listo para agregar la expresión asignada a los datos de entrenamiento.
Proporcionar sugerencias de consulta para usuarios de diálogo SQL
Puede ayudar a los usuarios a conocer las consultas de la base de datos que pueden realizar proporcionando sugerencias de finalización automática. Estas sugerencias proporcionan indicaciones sobre los tipos de preguntas que puede responder el modelo lógico. Las expresiones también ayudan a la aptitud con el enrutamiento.
Para crear sugerencias de finalización automática para una aptitud de cuadros de diálogo SQL:
-
Si el botón Entrenar tiene una insignia roja, haga clic en
y entrene con Trainer TM.
-
En la página Entidades, vaya al separador Juego de datos y haga clic en Entidades de consulta.
-
Haga clic en el separador Sugerencias de finalización automática.
-
Haga clic en Agregar expresión.
Aparece el cuadro de diálogo Crear expresión.
-
Escriba la expresión, haga clic fuera del cuadro de texto y, a continuación, haga clic en Continuar.
El cuadro de diálogo muestra la consulta OMRQL para la expresión. Si no puede convertir la expresión en una consulta, la consulta estará en blanco.
Tenga en cuenta que si la aptitud no se ha entrenado, no puede traducir la expresión en una consulta OMRQL.
-
Revise la consulta y corríjala si está mal.
Para obtener ejemplos y palabras clave de OMRQL, consulte Referencia de OMRQL.
-
Haga clic en Listo para agregar la expresión asignada a las sugerencias de finalización automática.
Direccionar Expresiones a la Conversación de Recuadros de Diálogo SQL
Si la aptitud tiene intenciones o está en un DA, al igual que con intenciones, la aptitud necesita expresiones para ayudarla a enrutar consultas SQL a la conversación Recuadros de diálogo SQL. El mecanismo de enrutamiento utiliza las sugerencias de finalización automática, los datos de entrenamiento, las expresiones de enrutamiento generadas y las expresiones de enrutamiento creadas manualmente para aprender a reconocer consultas SQL. Puede ver cada tipo de expresión en los separadores independientes de la página Conjunto de datos de entidades de consulta.
En el separador Datos de enrutamiento generados, puede generar rápidamente 100 expresiones de enrutamiento basadas en el modelo lógico, como se describe en Generar datos de enrutamiento de cuadros de diálogo SQL. A continuación, puede revisarlos, editarlos si es necesario y aprobarlos o anular su aprobación. Las aprobadas se agregan al separador Datos de enrutamiento combinados y se marcan como sintéticas o, si las ha editado, como acotadas.
El separador Datos de enrutamiento combinados muestra todos los tipos de juegos de datos. Además, aquí es donde puede agregar manualmente datos de enrutamiento hechos a mano, como se describe en Datos de enrutamiento de cuadros de diálogo SQL de Handcraft.
Tenga en cuenta que el número total de expresiones de finalización automática, entrenamiento, generadas y creadas manualmente no puede superar los 10 000. Si excede ese límite, verá el mensaje "Se ha alcanzado el número máximo de ejemplos de corpus para este bot (10000). También hay un límite de 120 expresiones de entrenamiento.
Para obtener más información sobre las sugerencias de finalización automática y los datos de formación, consulte Proporcionar sugerencias de consulta para usuarios de diálogo SQL y Proporcionar datos de formación a través de expresiones.
Consejo:
Cada entidad tiene un separador de juego de datos donde puede ver las expresiones que utilizan atributos de esa entidad específica.Generar datos de enrutamiento de cuadros de diálogo SQL
Si la aptitud tiene intenciones o está en un DA, al igual que con intenciones, la aptitud necesita expresiones para ayudarla a enrutar consultas SQL a la conversación Recuadros de diálogo SQL. Además de las sugerencias de finalización automática, los datos de entrenamiento y los datos de enrutamiento hechos a mano, el mecanismo de enrutamiento utiliza las expresiones de enrutamiento generadas que crea en el separador Datos de enrutamiento generados del juego de datos de entidades de consulta. Las expresiones generadas representan una amplia cobertura de preguntas sobre todas las entidades de consulta del modelo lógico.
Para generar datos de enrutamiento:
-
Si el botón Entrenar tiene una insignia roja, haga clic en
y entrene con Trainer TM.
-
En la página Entidades, vaya al separador Juego de datos y haga clic en Entidades de consulta.
-
Haga clic en el separador Datos de enrutamiento generados.
-
Haga clic en Generar.
Se muestra el cuadro de diálogo Generar datos de enrutamiento.
-
En el campo Seleccionar entidades, seleccione Todo. La primera vez que genere los datos de enrutamiento, debe generar datos para todas las entidades. Después de generar el juego inicial, puede volver y generar para entidades específicas si es necesario.
-
Haga clic en Generar.
La aptitud genera 100 expresiones, que reflejan preguntas que el modelo lógico puede responder.
-
Revise los datos generados y edite los que necesiten acotación.
Consejo:
La expresión no se puede editar si se ha aprobado. Si desea cambiar una expresión aprobada, anule su aprobación, edítela y, a continuación, vuelva a aprobarla. -
Suprima las entradas cuando sea necesario y apruebe el resto.
Las expresiones aprobadas se agregan a los datos de enrutamiento combinados. Si ha editado una expresión, su subtipo de enrutamiento en el separador Datos de enrutamiento combinados es Refinado. De lo contrario, es Sintético.
Datos de enrutamiento de cuadros de diálogo SQL de diseño manual
Si hay consultas SQL válidas que el DA o la aptitud no están enrutando a la conversación SQL, debe agregar esas expresiones a los datos de enrutamiento desde el separador Datos de enrutamiento combinados de la página Juego de datos de entidades de consulta.
Para agregar datos de enrutamiento hechos a mano:
-
Si el botón Entrenar tiene una insignia roja, haga clic en
y entrene con Trainer TM.
-
En la página Entidades, vaya al separador Juego de datos y haga clic en Entidades de consulta.
-
Haga clic en el separador Datos de enrutamiento combinados.
-
Haga clic en Agregar expresión.
Se muestra el cuadro de diálogo Crear expresión.
-
Escriba la expresión y, a continuación, haga clic fuera del cuadro de texto.
-
Haga clic en Continuar.
-
Revise la consulta OMRQL para verificar que sus resultados responderán a la consulta. Si no es así, corrija la consulta y, a continuación, haga clic en Reinterpretar. Consulte Referencia de OMRQL para conocer las palabras clave de consulta de OMRQL.
-
Haga clic en Listo.
La expresión se agrega a los datos con el subtipo de enrutamiento definido en Handcrafted.
Configurar la presentación de entidades y atributos
A continuación, se muestran las acciones que puede realizar para controlar cuándo y cómo se muestran las filas y los atributos de entidad en los resultados:
- Configurar si mostrar formulario o tabla
- Mostrar una o dos secciones horizontales en formulario
- Definir título para resultados
- Definir el orden de clasificación predeterminado de una entidad
- Definir los atributos que se incluirán cuando no los especifique la expresión
- Definir qué atributos incluir siempre en los resultados
- Configuración del Tamaño de Página de Resultados
- Agregar botones y enlaces a resultados
- Agregar un atributo personalizado
- Configuración dinámica de la presentación mediante manejadores de eventos
Normalmente, el experto en bases de datos y el diseñador de conversaciones trabajan juntos en esta tarea, ya que uno tiene experiencia en esquemas de bases de datos y el otro está familiarizado con las expectativas del usuario.
Puede probar los cambios haciendo clic en Vista previa para abrir el comprobador de conversaciones e introduciendo una expresión para recuperar los datos adecuados.
Consejo:
La mayoría de los cambios que realice requerirán un nuevo entrenamiento del analizador de lenguaje natural (NLP). Al probar los cambios, si el icono Entrenar tiene una insignia roja (
Configurar si mostrar formulario o tabla
La aptitud puede mostrar los resultados de la entidad como una tabla, un formulario o un formulario de tabla (donde puede ampliar una fila para ver más detalles en el modo de formulario). Utilice los campos de conversión de diseño del separador Presentación de la entidad para configurar cuándo se deben mostrar los resultados en cada modo.
Por defecto, la aptitud muestra cada fila de la respuesta como un formulario a menos que el número de filas supere un umbral especificado para Usar diseño de formulario para este número de filas o menos. A continuación, se muestran ejemplos de una respuesta en modo de formulario y modo de tabla:
Descripción de la ilustración sql-results-form.png
Descripción de la ilustración sql-results-table.png
En el caso de que el número de columnas supere un umbral, la aptitud muestra un formulario de tabla. Con un formulario de tabla, solo se muestra el número especificado de columnas y el usuario puede ampliar el formulario para ver los demás atributos. Utilice Cambiar a diseño de formulario de tabla cuando el número de columnas exceda este número para especificar el umbral. A continuación, se muestra un ejemplo de un diseño de formulario de tabla para el umbral de columna de 2.
Mostrar una o dos secciones horizontales en formulario
Por defecto, en el modo de formulario, la aptitud muestra todos los atributos de resultado uno debajo del otro. Para guardar espacio, puede definir Número de secciones horizontales en diseño de formulario en 2 para mostrar dos columnas de atributos.
Definir título para resultados
Por defecto, la aptitud utiliza el nombre de la entidad de consulta para el título de los resultados, pero puede utilizar el Nombre mostrado en el separador Presentación para definir un título diferente.
Tenga en cuenta que después de definir el nombre mostrado, no puede borrar el campo.
Definir el orden de clasificación predeterminado de una entidad
Puede especificar un orden de clasificación por defecto para que la aptitud lo utilice siempre que la expresión del usuario no especifique uno. Para definir el valor por defecto, vaya al separador General de la entidad, haga clic en Agregar orden de atributos, seleccione un atributo y seleccione su orden (ascendente o descendente). Puede seguir haciendo clic en Agregar orden de atributos para agregar más atributos al orden de clasificación.
Definir los atributos que se incluirán cuando no los especifique la expresión
Si la expresión no nombra ningún atributo, es probable que desee que los resultados incluyan algunos campos esenciales. Puede utilizar Atributos por defecto en el separador Presentación de la entidad para especificar estos campos. Por ejemplo, para una entidad invoices
, puede que desee mostrar invoice_num, invoice_date
y invoice_amount
cuando no se asigne ningún nombre a ningún atributo.
Tenga en cuenta que no puede agregar atributos de tipo entidad de consulta a la lista de atributos por defecto.
Definir qué atributos incluir siempre en los resultados
Cuando una expresión identifica atributos específicos, puede que desee que el resultado incluya no solo los atributos solicitados, sino también algún contexto. Por ejemplo, si alguien introduce "mostrar importes de factura", los datos no tendrán sentido si solo muestran los valores invoice_amount
y no algún contexto de identificación como invoice_num
. Utilice Atributos mínimos en el separador Presentación de la entidad para identificar los atributos mínimos.
No puede agregar atributos de tipo entidad de consulta a la lista de atributos mínimos.
Configuración del Tamaño de Página de Resultados
Utilice el separador Número máximo de filas por página de la Presentación de la entidad para definir cuántas filas se van a mostrar a la vez.
El usuario puede hacer clic en los botones para desplazarse por los resultados.
Agregar botones y enlaces a resultados
Puede agregar botones y enlaces a los resultados de una entidad de consulta tanto a nivel global como a nivel de fila. Aparece una acción de fila en cada fila y una acción global debajo de los resultados.
Por ejemplo, para una entidad de empleado, puede agregar una acción global que enlace a la página de búsqueda de empleados de la compañía. En el nivel de fila, puede agregar una acción para una consulta de seguimiento común, como una consulta sobre el departamento del empleado.
Puede agregar acciones desde el separador Presentación de la entidad. Si tiene más de una acción, puede indicar la secuencia en la que aparecen las acciones. Para los tipos de acción QUERY, deberá proporcionar una consulta OMRQL. Para los tipos de acción URL, deberá definir la URL.
Para las acciones de seguimiento de nivel de fila, puede utilizar ${row.attributeName}
para hacer referencia a los valores de atributo de cada fila. Por ejemplo, select * from Emp WHERE dept.loc = "${row.loc}"
. En tiempo de ejecución, el botón de cada fila tendrá un valor diferente para la consulta. Esta sintaxis sólo está disponible para acciones de nivel de fila.
De manera opcional, puede restringir cuándo aparece la acción. Por ejemplo, puede tener una acción de fila para mostrar las dependencias directas de un empleado, que sólo debe aparecer si el puesto del empleado es gerente. Para ello, cambie Expresión de visibilidad a Activado y proporcione una expresión FreeMarker, como ${row.job = 'MANAGER'}
.
Las acciones de fila aparecen como botones o enlaces en cada fila en un diseño de formulario o tabla. Sin embargo, no aparecen en los diseños de tabla.
Agregar un atributo personalizado
Puede agregar sus propios atributos personalizados para mostrar información adicional, como valores derivados o calculados.
-
En el separador Atributos de la página de entidad, haga clic en + Agregar atributo y proporcione un nombre y tipo canónicos.
-
En el separador Lenguaje natural, proporcione un nombre principal y, opcionalmente, agregue sinónimos.
-
En el separador Asignación de backend, seleccione Expresión SQL y agregue la expresión.
Si la expresión hace referencia a una columna, utilice el nombre de columna del modelo físico (esquema de base de datos) y anteponga ${alias}
. Por ejemplo, para una entidad invoices
, puede agregar un atributo amount_to_pay
con la expresión ${alias}invoice_amount + ${alias}discount_taken
, donde:
invoice_amount
ydiscount_taken
son nombres de columna física existentes en la tablainvoices
.- La nueva columna derivada
amount_to_pay
es la suma de valores de las columnas físicasinvoice_amount
ydiscount_taken
.
Puede utilizar esta tabla para determinar qué tipo utilizar para el atributo:
Tipo | Cuándo Utilizar | Ejemplos |
---|---|---|
Número | Los valores son solo numéricos y no están restringidos a una lista establecida. | ID numérico de empleado, importe de factura |
Fecha | El valor es una fecha sin hora. | Fecha de Contratación |
Fecha/hora | El valor puede tener una fecha y una hora. | Fecha y hora de salida |
Entidad | El atributo está asociado a una entidad de lista de valores. Tenga en cuenta que si la lista de valores enumera todos los valores válidos (es decir, una lista cerrada) y los valores rara vez se utilizan en expresiones de lenguaje natural, debe agregar sinónimos para los valores de la lista. | estado (cerrado), nombres de proveedores (abierto) |
Cadena | Se utiliza para texto que puede contener números y caracteres en los que no tiene sentido asociarlo a una lista de valores. | Número de factura alfanumérico, descripción del producto |
Entidad de consulta | Utilizar solo cuando necesite enlazar a otra entidad de consulta. | Sin ejemplos |
Booleana | No utilizar. | No aplicable |
Configuración dinámica de la presentación mediante manejadores de eventos
Si desea que la aptitud cambie dinámicamente la forma en que presenta los resultados de la consulta SQL, puede agregar manejadores de eventos de consulta de datos a un paquete de componentes personalizados, agregar el paquete a la aptitud como servicio de componente personalizado y, a continuación, asociar las entidades a sus manejadores específicos desde los separadores Presentación de la entidad. La aptitud dispara un evento de consulta de datos de una entidad cuando esa entidad de consulta es la primera entidad con nombre en la cláusula FROM (la entidad raíz).
Por ejemplo, puede agregar dinámicamente un recuento de filas al texto de cabecera, agregar una fila a la tabla para mostrar una suma o determinar cuándo mostrar u ocultar un atributo.
Para obtener más información sobre cómo crear manejadores de eventos de consulta de datos, consulte Escritura de manejadores de eventos de consulta SQL.
Definir reglas de consulta
A continuación, se muestra cómo utilizar la configuración de una entidad en la página Entidades para controlar las formas en que los usuarios finales pueden preguntar sobre los datos y cómo evaluar los resultados.
Puede probar los cambios haciendo clic en Vista previa para abrir el comprobador de conversaciones e introduciendo una expresión para recuperar los datos adecuados.
Consejo:
Algunos de los cambios que realice necesitarán un nuevo entrenamiento del analizador de lenguaje natural (NLP). Al probar los cambios, si el icono Entrenar tiene una insignia roja (
-
Identificar qué atributo utilizar para medir o comparar: si la expresión solicita comparar elementos de entidad con un número o clasifica las entidades mediante un superlativo, como mejor o menor, ¿qué atributo medible, si lo hay, debe utilizar la aptitud para realizar la comparación? Supongamos, por ejemplo, que los usuarios preguntan sobre el proveedor más grande, que puede que desee que la aptitud utilice el atributo
rating
para las comparaciones. Para especificar qué atributo utilizar para medir o comparar, vaya al separador General de la entidad y seleccione el atributo en la lista desplegable Medir por. Si la clasificación es opuesta al orden numérico, como que 5 sea mejor que 1, también debe definir Invertir comparación del atributo en true en el separador Información general. -
Especificar cómo comparar atributos medibles: por defecto, los valores de atributo medibles se comparan mediante orden numérico, donde 1 es menor que 5. Sin embargo, a veces es más apropiado invertir la comparación donde 1 es mejor que 5. Por ejemplo, al ver los resultados de la carrera, los 5 mejores tiempos son los valores más bajos en los resultados. Para invertir comparaciones para un atributo, defina Invertir comparación del atributo en true en su separador Información general. Tenga en cuenta que esta configuración también afecta al orden de clasificación del atributo.
-
Permitir coincidencia parcial para cadenas: si espera que los usuarios con frecuencia dejen de lado caracteres o valores iniciales o finales, como "manager" en lugar de "department manager", considere la posibilidad de activar la coincidencia parcial. Cuando la coincidencia parcial está activada, la "cláusula WHERE" de SQL generada utiliza
upper (<column-name>) LIKE UPPER(%<string>%)
en lugar de= <string>
. Puede activar la coincidencia parcial en el separador Información general del atributo. Tenga en cuenta que el comportamiento de coincidencia parcial para los atributos de entidad es diferente del comportamiento de coincidencia parcial para las listas de valores. -
Especificar cómo resolver fechas y horas ambiguas: para los atributos de tipo fecha o fecha/hora, puede especificar si los valores ambiguos, como "miércoles", se deben resolver en el pasado, el futuro o la fecha u hora más cercana. Puede definirlo mediante la preferencia temporal del separador Información general del atributo.
ADVERTENCIA:
Tenga en cuenta que la configuración de la preferencia temporal a la fecha u hora más cercana solo funciona para la entrada de fechas y hora fijas, como "Miércoles". Si un usuario introduce un valor de duración, como "dos días", la consulta no se resolverá, ya que un valor de duración es el mismo tanto para el pasado como para el futuro. A menos que esté bastante seguro de que un usuario nunca introducirá un valor de duración, solo debe definir la Preferencia temporal en pasado o futuro.Consejo:
Si un atributo a veces se puede establecer por defecto en el pasado y, a veces, en el futuro según el contexto, considere la posibilidad de crear atributos personalizados con diferentes preferencias temporales. Por ejemplo, para un atributodue_date
, puede agregar un atributodue
con una preferencia futura y un atributooverdue
con una preferencia pasada.
Activación de consultas de lenguaje natural para columnas desnormalizadas
Si tiene un atributo desnormalizado con un nombre que utiliza un patrón para identificar los atributos que representa la columna, como PTD_LBR_CST, puede hacer que el atributo desnormalizado sea comprensible para el modelo de lenguaje natural asignándole una entidad normalizada mediante el uso de una asignación de backend de expansión de columna.
Por ejemplo, supongamos que tiene una entidad de consulta costToSales con los atributos PTD_LBR_CST, QTD_LBR_CST, YTD_LBR_CST, PTD_SUB_CST, QTD_SUB_CST, YTD_SUB_CST.
Para permitir que la aptitud asocie consultas de lenguaje natural a estos atributos, cree una entidad de consulta de costo que contenga los atributos de identificación única, como project_num, más período, tipo y costo. Los atributos de período y tipo son de tipo entidad y hacen referencia a las listas de valores de período (PTD, QTD, YTD) y tipo (LBR, SUB). La asignación de backend del atributo de costo es una expansión de columna con la expresión "${period}_${type}_CST". El paso final es agregar el atributo de costo a la entidad costToSales, que hace referencia a la entidad de consulta Costo para enlazar las dos entidades.
Cuando la consulta es "cuáles son mis costos de mano de obra acumulados anuales", la asignación de expansión de columna de backend indica a la aptitud que recupere el valor del atributo YTD_LBR_CST, que está en la entidad costToSales (suponiendo que se definan los nombres principales y sinónimos necesarios).
Prueba y reparación
A medida que defina y agregue datos de entrenamiento a las entidades y atributos a través de nombres, sinónimos, listas de valores y datos de entrenamiento en el juego de datos de entidades de consulta, deseará probar el grado en que los datos de entrenamiento ayudan al analizador de lenguaje natural a traducir las expresiones del usuario final en consultas SQL.
Consejo:
Si el icono Tren tiene una insignia roja (
La página Entidades tiene un enlace Consultas de prueba, que abre el comprobador de consultas para probar las expresiones de caso de uso. En el comprobador, puede introducir la expresión de prueba y revisar la consulta OMRQL generada por la aptitud.
Si el comprobador traduce la expresión a una consulta, revise la consulta OMRQL para verificar que producirá los resultados deseados. Si la consulta de OMRQL no es correcta, deberá reparar la aptitud mediante la corrección adecuada:
-
Agregar sinónimos para una entidad o atributo. Consulte Proporcionar datos de formación a través de nombres y sinónimos.
-
Asocie un atributo con una lista de valores o agregue elementos a una lista de valores. Consulte Proporcionar datos de formación a través de listas de valores.
-
Agregue la expresión y OMRQL corregida a los datos de entrenamiento del juego de datos de entidades de consulta para enseñar al modelo a asociar palabras y frases con atributos, entidades y palabras clave de OMRQL en el contexto de una expresión completa. Consulte Proporcionar datos de formación a través de expresiones.
Consejo:
Considere el uso de Guardar como caso de prueba para guardar algunas de sus consultas válidas en el comprobador por lotes, que puede utilizar para asegurarse de que los cambios que realice no afecten negativamente a otras áreas. Consulte Supervisión con pruebas por lotes de entidades de consulta.Tenga en cuenta que es posible que algunas expresiones no se traduzcan correctamente debido a las limitaciones de la función Recuadros de Diálogo SQL. En algunos casos, puede solucionar estas limitaciones agregando datos de entrenamiento personalizados. Consulte Solución de problemas de consultas SQL.
Si el comprobador de consultas informa de que hay datos de entrenamiento insuficientes, puede hacer clic en Ver JSON para obtener información sobre cómo analizó la expresión. El valor translatable
indica si el modelo soporta la consulta. confusionSpanText
puede proporcionarle una pista sobre qué parte de la consulta no está soportada.
Descripción de la ilustración query-tester-json.png
Para las expresiones que no se pueden traducir, primero compruebe si ha introducido un error tipográfico, si la consulta es demasiado vaga o si la consulta está fuera del ámbito del modelo. Estos problemas no se pueden resolver mediante formación. De lo contrario, puede resolver datos de entrenamiento insuficientes agregando un sinónimo o agregando la expresión a los datos de entrenamiento personalizados en el juego de datos de entidades de consulta. Estos son algunos ejemplos de los tipos de problemas de datos de entrenamiento insuficientes que puede resolver agregando datos de entrenamiento personalizados.
-
Confusión de atributo: por ejemplo, el estado hace referencia al estado de pago o al estado de aprobación.
-
Confusión entre atributo y valor: por ejemplo, "cuántos mánager hay" (¿se refiere al valor del atributo
manager
o al valor del puesto del empleado?). -
Buscar valores que también sean palabras clave u operadores: por ejemplo, distinguiendo el sinónimo "total" del operador
SUM
.
Si OMRQL es válido, puede probar cómo la aptitud traduce OMRQL a SQL haciendo clic en Haga clic para probarlo en el comprobador de conversaciones. El Comprobador de conversaciones se muestra junto con los resultados.
En el comprobador de conversaciones, puede ver las sentencias OMRQL y SQL en el separador Cuadros de diálogo SQL. Cuando no puede traducir la consulta, indica que la consulta no es traducible y muestra qué texto ha causado la confusión.
Solución de problemas de consultas SQL
Cuando una consulta no se resuelve como esperaba, puede deberse a que el modelo no tiene suficiente información o a que la expresión está fuera del ámbito. También puede deberse a las limitaciones de los cuadros de diálogo SQL.
Para los casos en los que el modelo no tiene suficiente información, consulte Prueba y reparación para aprender a resolver los problemas. Existen limitaciones en los cuadros de diálogo SQL de slso que pueden impedir que el analizador de lenguaje natural traduzca la expresión a OMRQL correctamente. Esta sección proporciona información sobre estas limitaciones y formas de solucionarlas, siempre que sea posible.
Limitaciones generales en cuadros de diálogo SQL
En la siguiente tabla se describen las limitaciones generales de los cuadros de diálogo SQL que debe conocer. Estas limitaciones no tienen soluciones alternativas.
categoría | Limitación | Ejemplos de consultas no soportadas |
---|---|---|
Número de entidades y atributos soportados | El modelo lógico puede tener un total de 50 atributos más entidades. Este límite incluye los atributos virtuales y las entidades que se crean. | |
Consulta en no inglés | Cualquier consulta en un idioma distinto al inglés. | numero total de empleadas |
Uso de pronombres | Uso de pronombres como "I", "yo" y "mi" en una expresión. |
|
Sí y no hay preguntas | Cualquier pregunta para la que la respuesta sea un sí o un no. Los cuadros de diálogo SQL sólo soportan consultas para las que la respuesta es un juego de resultados de una consulta de tabla de datos. |
|
Negación |
Expresiones que contienen palabras de negación como "no" y "no" o consultas de valores que indican valores nulos o de negación. |
|
Operadores SQL complejos | Los cuadros de diálogo SQL no soportan las consultas más complejas que implican subconsultas, operadores SET (INTERSECT, UNION, EXCEPT y NONE), consultas que requieren operadores aritméticos y las palabras clave EXISTS y NOT.
Aunque, en raras ocasiones, puede encontrar una consulta compleja que se resuelva correctamente, para garantizar resultados consistentes, debe considerar el uso de vistas de base de datos o la creación de atributos virtuales como se describe en Agregar un atributo personalizado. |
|
Operadores SQL implícitos |
Los cuadros de diálogo SQL no soportan funciones de cláusulas SQL que no se solicitan explícitamente. Por ejemplo:
|
Distinto:
Agregación:
Ordenar por
|
Soporte limitado para preguntas de seguimiento | Los cuadros de diálogo SQL no admiten preguntas de seguimiento listas para usar. Es decir, los usuarios no pueden formular una nueva pregunta de seguimiento para actualizar la respuesta.
Consejo: Puede agregar acciones rápidas a los resultados en forma de enlaces o botones que realizan consultas de seguimiento comunes. Consulte Adición de botones y enlaces a resultados. |
A continuación, se muestran ejemplos de consultas de seguimiento para la expresión original "show all employees in Seattle"
|
Solución de Problemas de Consultas Básicas
categoría | Descripción del problema | Ejemplos de consultas no soportadas | Solución alternativa |
---|---|---|---|
Seleccionar Atributo | Selección de más de 3 atributos | Mostrar el nombre, cargo, salario y comisión de todos los empleados | Agregar datos de entrenamiento personalizados. Los datos de entrenamiento pueden incluir ejemplos que abarquen diferentes entidades y algunos juegos diferentes de 4 (o más) atributos. |
Seleccionar Entidad | Solicitud de más de una entidad |
|
Utilice datos de entrenamiento personalizados para enseñar a la entidad a generar una salida de un atributo de la segunda entidad. Por ejemplo, para "mostrar el proveedor de cada factura", puede agregar datos de formación que asignen la consulta a OMRQL: select invoiceid, vendor.vendor_name from invoices
|
Dónde | Tres o más condiciones en la cláusula where | Mostrar empleados contratados después de 2000 y trabajar en el departamento de finanzas como analista | Agregar datos de entrenamiento con ejemplos que contienen varias condiciones |
Ordenar por | Ordenar por más de un único atributo o entidad | mostrar empleados ordenados por su cargo y nombre | Agregar datos de entrenamiento con ejemplos que contienen ordenación por 2 o más atributos |
Group by | Agrupar por más de un único atributo o entidad | mostrar salario medio por puesto y ubicación de departamento | Agregar datos de entrenamiento con ejemplos que contengan agrupaciones por 2 atributos o entidades más |
Agrupar por + Tener | Más de una condición en la cláusula having | muestran trabajos que tienen al menos 20 empleados y un salario medio superior a 30000 | Agregar datos de entrenamiento con ejemplos que contienen más de una condición en la cláusula having |
Autouniones | Si una entidad tiene un enlace consigo misma, puede que ese cálculo no sea posible para el modelo, incluso con datos de entrenamiento personalizados. | En este caso, las consultas solicitan datos de empleados que se vinculan a datos de empleados.
|
No hay ninguna solución alternativa verificada. |
Resolución de problemas de fecha y hora
categoría | Descripción del problema | Ejemplos de consultas no soportadas | Solución Alternativa |
---|---|---|---|
Valores de fecha y hora implícitos | Al filtrar por fecha o fecha/hora, debe proporcionar explícitamente contexto para la cláusula where.
Por ejemplo, en lugar de decir "qué facturas están vencidas", debe decir algo como "qué facturas tienen una fecha de vencimiento anterior a hoy". |
|
Cree un atributo virtual (por ejemplo, para indicar si un evento está por venir) y, a continuación, utilice entrenamiento personalizado para enseñar al modelo el comportamiento esperado. |
Referencia implícita pasada o futura | Para los atributos de fecha y hora, utilice la preferencia temporal del atributo en el separador Información general del atributo para especificar cómo resolver fechas o fechas y horas ambiguas.
Las expresiones que implican que se debe resolver un valor ambiguo como fecha pasada o futura o fecha/hora se ignoran y se utiliza la Preferencia temporal. |
empleados que serán contratados el miércoles
|
Es posible que pueda crear 2 atributos derivados para resolver este problema para su escenario. |
Contexto "pasado" con operadores < y >
|
Los cuadros de diálogo SQL no soportan el uso de operadores < y > en fechas o fechas y horas pasadas que contienen una duración.
|
|
Sin soluciones alternativas fiables. Intentar enseñar algo como esto con entrenamiento personalizado puede hacer que el modelo comience a predecir incorrectamente esto en otros casos. |
Tiempo sin fecha | Los cuadros de diálogo SQL no soportan consultas que tienen horas pero no fechas. | pedidos que se entregan a las 3 p. m. | No hay ninguna solución alternativa conocida. |
Fechas recurrentes | Los cuadros de diálogo SQL no admiten fechas que especifiquen un valor de repetición en un intervalo específico. | ¿Qué reunión tiene lugar el primer lunes de cada mes? | Ninguna solución alternativa conocida |
Solución de Problemas de Selección de Atributos
categoría | Descripción del problema | Ejemplos de consultas no soportadas | Solución alternativa |
---|---|---|---|
Rendimiento limitado para sinónimos de entidad/atributo específicos de dominio | Para sinónimos técnicos o específicos de dominio, que no se suelen utilizar como sinónimos, el modelo puede tener dificultades para asignarlo al atributo correcto |
Atributo: ip_address Sinónimo: dispositivos |
Agregar datos de entrenamiento personalizados. Incluya ejemplos que utilicen los sinónimos del atributo y otro juego de ejemplos con el nombre principal para asegurarse de que el modelo no olvide la funcionalidad existente |
Atributo de identificación para entidades | Que implica un atributo haciendo referencia únicamente a la entidad | Mostrar facturas que contengan 1234
|
Agregar datos de entrenamiento personalizados.
|
Desambiguación | En casos ambiguos con múltiples posibilidades, el modelo no puede desambiguar | Mostrar importe para todas las facturas
|
Agregar datos de entrenamiento personalizados.
|
Referencia de atributo implícita para valores que no están en la entidad de lista de valores | Si hacemos referencia a un atributo solo por valor y ese valor no está presente en la lista de valores (ya sea un valor/sinónimo canónico) |
|
Puede agregar datos de entrenamiento personalizados, pero no serán fiables en todos los casos. Por ejemplo, el modelo puede saber que "facturas emitidas por VALUE" se deben asignar al atributo de nombre de proveedor. Pero el modelo no puede aprender "facturas para VALOR" o "facturas por valor" porque las palabras para, por, en, etc. son muy generales y se pueden utilizar en una amplia variedad de contextos. |
Orden de valores y nombre de atributo | El odel es menos robusto cuando el valor se menciona antes del nombre del atributo en la expresión. (Esto es más un problema cuando los valores no están en la lista de valores y para valores de varias palabras). | mostrar facturas aprobadas | Agregar datos de entrenamiento personalizados.
|
Resolución de problemas de Group By
categoría | Descripción del problema | Ejemplos de consultas no soportadas | Solución Alternativa |
---|---|---|---|
Agrupar por en más de 2 entidades | Agrupación en varias entidades con agregaciones |
|
Puede intentar agregar datos de entrenamiento personalizados. Sin embargo, intentar solucionar este problema es arriesgado y requeriría una gran cantidad de datos de entrenamiento personalizados. |
Agrupar por + Ordenar por + Min o Max | Ordenación de entidades según los valores mínimo o máximo del atributo después de agrupar por esa entidad. |
|
Agregar datos de entrenamiento personalizados. |
Agrupar por + Ordenar por + Mín/Máximo + Límite 1 o Límite N | Primero agrupe por el atributo o la entidad, ordene por el mínimo o máximo de un atributo numérico y, a continuación, seleccione la primera fila | qué departamento tiene el salario mínimo más alto | Agregar datos de entrenamiento personalizados. |
Las cláusulas Select y Having tienen agregaciones diferentes | La cláusula Select y Having tienen agregaciones diferentes | mostrar el salario medio de cada departamento que tenga al menos 10 empleados
|
Agregar datos de entrenamiento personalizados. |
Las cláusulas Select y Order by tienen agregaciones diferentes | Las cláusulas Select y Order by tienen agregaciones diferentes | mostrar el nombre y la factura media de cada proveedor, y ordenar los proveedores en orden alfabético por nombre de proveedor
|
Agregar datos de entrenamiento personalizados. |
Varias agregaciones en la cláusula Select | Los cuadros de diálogo SQL soportan cláusulas Select con una sola agregación, media más suma y mínimo más máximo.
No admite otras combinaciones, como promedio más mínimo, promedio más suma más máximo y recuento más suma. |
|
Agregar datos de entrenamiento personalizados. |
cláusulas Having + Where | Agrupar por consulta con una cláusula Having y Where | ¿Qué proveedores de tipo LEGAL tienen más de 6 facturas? | Agregar datos de entrenamiento personalizados. |
Solución de problemas de entidad
categoría | Descripción del problema | Ejemplos de consultas no soportadas | Solución alternativa |
---|---|---|---|
Títulos |
|
No hay solución alternativa. Los errores tipográficos en los valores no funcionarán ni siquiera con el entrenamiento personalizado. | |
Entidades distintas de las listas de valores y las expresiones regulares | Asociación de atributos a cualquier tipo de entidad que no sea la lista de valores (por ejemplo, entidades de aprendizaje automático personalizadas) | Sin solución alternativa. | |
coincidencia parcial | Para la coincidencia parcial, solo se admite la derivación. | Facturas de Amazon
|
Agregue sinónimos en la lista de valores. |
coincidencia parcial | La coincidencia parcial no funcionará para los caracteres _ y ?
|
Facturas pagadas mediante DBX EFT
|
Agregue sinónimos en la lista de valores. |
Números en forma no numérica | Los cuadros de diálogo SQL admiten una lista limitada de números que se pueden representar de otras formas (0-10, 20 y 50). No se admiten todos los demás números, si se hace referencia a ellos en cualquier formato que no sea numérico. |
|
Sin solución alternativa. |
Solución de otros problemas
categoría | Descripción del problema | Ejemplos de consultas no soportadas | Solución alternativa |
---|---|---|---|
2 o más filtros numéricos | Dos cláusulas Where con números (ya sea el mismo atributo o un atributo diferente) |
|
Agregar datos de entrenamiento personalizados. |
Orden por superlativos |
Pedir las entidades N superiores o inferiores. Nota
El modelo es más sólido con la parte superior que la inferior |
Mostrar mejor empleado
|
Agregar datos de entrenamiento personalizados. |
Atributos en los que se calculan previamente las agregaciones | Si el esquema tiene agregaciones calculadas previamente, como total_amount , que ya almacena la suma o total_servers , que almacena el recuento total de servidores, el modelo puede confundirse entre la necesidad de utilizar la función SUM/COUNT o el atributo con la agregación calculada previamente.
|
Muestra el importe total de la factura 1234
|
Agregar datos de entrenamiento personalizados. |
Selección por defecto | El modelo a veces predice el nombre o el ID de la entidad en lugar de seleccionar *.
Se trata de un error raro y el impacto no es crítico, ya que el usuario ve el atributo mínimo en lugar de los atributos por defecto de la entidad. |
Muestra las facturas que están aprobadas.
|
Agregar datos de entrenamiento personalizados, si esto es realmente un problema |
Supervisión y mejora
A medida que crea y prueba la aptitud, puede utilizar estadísticas y pruebas por lotes para supervisar el grado de cumplimiento de los objetivos de la aptitud y exponer las áreas que necesitan mejora. A medida que entra en la fase de prueba y, finalmente, libera la aptitud al público, querrá continuar realizando una supervisión y pruebas periódicas.
Supervisión con estadísticas
La página Estadísticas de la aptitud proporciona varias métricas que puede utilizar para medir el rendimiento de la aptitud del cuadro de diálogo SQL y para determinar dónde realizar mejoras.
Como analista de negocio, puede que le interesen estas métricas de consulta de datos en el separador Visión general:
-
Rendimiento: tendencia de conversaciones por estado (línea) muestra el número de conversaciones durante un período de tiempo determinado y si el tráfico tiende hacia arriba, hacia abajo o hacia los lados.
-
El ratio entre las consultas correctas y las consultas incorrectas indica el grado de satisfacción de los usuarios del bot con la precisión de traducir expresiones a consultas SQL.
-
El ratio entre conversaciones finalizadas e incompletas muestra hasta qué punto los problemas técnicos afectan a las experiencias de los usuarios.
-
El ratio entre las consultas Total de conversaciones y Consultas sin resolver (OOD/OOS) ayuda a medir el grado en que la aptitud cumple las expectativas de los usuarios finales.
-
Tanto Tendencia de conversaciones por tipo como el ratio entre Total de conversaciones y Conversaciones de consultas de datos muestran la proporción de expresiones que son consultas SQL.
-
En Entidades de consulta de datos se muestran las entidades que más se consultan.
Como entrenador de IA, puede examinar los mensajes de usuario en el separador Conversaciones para detectar áreas de mejora. Por ejemplo, puede revisar estos mensajes de usuario:
-
Los mensajes de usuario Tipo: intención, resultado: incompleto indican problemas al traducir la expresión a una consulta SQL. A menudo, puede solucionar estos problemas agregando sinónimos o, para consultas más complejas, agregando expresiones asignadas al juego de datos de entidades de consulta. Tenga en cuenta que también puede ver estos mensajes seleccionando Errores gestionados por el sistema en la lista desplegable Errores.
-
Tipo: intención, intención: unresolvedIntent los mensajes de usuario indican expresiones y expresiones fuera del ámbito que la aptitud no reconoce como expresiones de consulta de datos. Para las expresiones que son consultas de datos válidas pero que la aptitud no reconoce como tales, a menudo puede corregir los problemas agregando sinónimos o asignando las expresiones a OMRQL en el juego de datos de consulta.
-
Tipo: consulta de datos, entidades muestra los mensajes de usuario por entidad de consulta.
-
Tipo: consulta de datos, resultado: incorrecto muestra los mensajes que los usuarios consideran que han devuelto resultados incorrectos. Debe verificar que los resultados sean incorrectos y, si es así, agregar sinónimos, listas de valores y entradas de conjuntos de datos de consulta según corresponda.
Supervisión con pruebas por lotes de entidades de consulta
Como entrenador de IA, se recomienda crear pruebas por lotes para garantizar que la mejora de un área no afecte negativamente a otra. También puede utilizar pruebas por lotes para asegurarse de que los cambios en el modelo lógico no tengan efectos adversos en el entrenamiento personalizado o el enrutamiento a conversaciones SQL.
Al igual que con las pruebas por lotes para expresiones de intención, puede que desee reservar alrededor del 20 % de las consultas reales que ha recopilado para utilizarlas en las pruebas por lotes de consultas. Puede ejecutar la prueba por lotes periódicamente, así como después de realizar cambios en el modelo lógico, el entrenamiento personalizado o los datos de enrutamiento.
Cada caso de prueba debe pertenecer a un conjunto de pruebas, por lo que antes de crear un caso de prueba, es posible que desee crear primero un conjunto de pruebas que refleje algún aspecto de las pruebas de consulta, como las pruebas de fallos, las pruebas en dominio o las pruebas fuera de dominio. Proporcionamos un conjunto denominado Conjunto de pruebas por defecto. Puede asignar casos de prueba a este conjunto de pruebas si aún no ha creado ningún otro.
Puede agregar un caso de prueba a una prueba por lotes de dos formas:
-
Después de probar una expresión en el probador de consultas, puede seleccionar un conjunto de pruebas en la lista desplegable Guardar como caso de prueba para guardarlo en ese conjunto.
-
Puede hacer clic en + Caso de prueba en el separador Conjuntos de pruebas del comprobador de lotes.
Para acceder al comprobador de lotes:
-
En la página Entidades, haga clic en Probar consultas.
Se abre el probador de consultas.
-
Haga clic en Ir a casos de prueba.
En el separador Conjuntos de pruebas, seleccione un conjunto de pruebas y ejecute todos los casos de prueba o seleccione y ejecute casos específicos. Los resultados se muestran en la página Resultados de la prueba. Se tarda un tiempo en completar las pruebas. Sabrá que la ejecución ha finalizado cuando En curso muestre
0
.
Referencia de OMRQL
Estas son las palabras clave que puede utilizar al definir consultas OMRQL para las expresiones que agregue al juego de datos de entidades de consulta. Tenga en cuenta que utiliza los nombres canónicos y no los nombres primarios y los sinónimos
Componente | Palabras clave de OMRQL | Ejemplo de OMRQL | Restricciones |
---|---|---|---|
Componentes básicos |
|
SELECCIONAR * DESDE EMP | OMRQL no puede asignar un nombre a los atributos a los que no se hace referencia en la expresión. |
Filtrado | DÓNDE | Empleado WHERE salario > 100000 | Ninguno. |
Enlace de entidades Consulte Atributos de enlace para obtener una explicación de cómo funciona. |
. (punto) | SELECT * FROM Employee WHERE Departments.location = 'NYC' | Ninguno. |
Orden |
|
SELECCIONAR nombre DE ORDEN DE Empleado POR salario DESC LIMIT 10 | OMRQL puede ordenar datos mediante ORDER BY <ATTR> [LIMIT N] solo si la expresión incluye el orden de palabras o sus sinónimos de lenguaje natural, como ordenado, más alto y más pequeño. |
Orden sin un atributo específico El asterisco ( |
ORDENAR POR * | SELECCIONE el nombre FROM Employee ORDER BY * DESC LIMIT 10 | ORDER BY * solo funciona de extremo a extremo cuando se define el valor "measure_by" para la entidad en la interfaz de usuario |
Funciones de agregado |
|
SELECCIONAR AVG(sal) de empleado | OMRQL solo puede contener DISTINCT si la expresión contiene esa palabra o un sinónimo de lenguaje natural, como diferente o único. |
Agrupamiento |
|
SELECT location, AVG(Employees.salary) FROM Department GROUP BY location | La cláusula FROM debe contener la entidad a la que pertenece el atributo group by |
Agrupación por entidad | AGRUPAR POR * | SELECT *, MAX(Employees.salary) FROM Department GROUP BY *
Nota: agrupa por entidad en la cláusula from (el backend convierte Agrupar por * en Agrupar por la clave primaria de la entidad raíz) |
|
Agrupación y filtrado | TENIENDO | SELECCIONAR Ubicación DE GRUPO DE Departamento POR Ubicación QUE TIENE AVG(Employees.salary) < 4000 | |
Operadores de comparación |
|
SELECT * from Department WHERE name IN ('Ventas', 'HR') | Para los operadores >, >=, < y <=, la expresión debe contener un sinónimo de lenguaje natural equivalente, como mayor que, al menos, menor que y como máximo.
Si la expresión no contiene un sinónimo de operador, OMRQL debe contener =. OMRQL solo puede contener LIKE si la expresión contiene esa palabra o un sinónimo de lenguaje natural como, por ejemplo, include, contains o substring. OMRQL solo puede contener ENTRE si la expresión contiene esa palabra o un sinónimo de lenguaje natural, como en el rango de. |
Operadores lógicos |
|
SELECCIONAR nombre FROM Empleado WHERE salario > 10000 Y rol = 'VP' | Ninguno. |
Todos los valores de la sentencia OMRQL deben coincidir exactamente con el valor y el formato de la base de datos. Tomemos, por ejemplo, la expresión "quién es el empleado cuyo nombre es Jones". Si los valores de la base de datos para el atributo name están en mayúsculas, el valor del nombre también debe estar en mayúsculas. Esto es "SELECT * FROM Emp WHERE name = 'JONES'".
Cuando la expresión que está asignando utiliza un sinónimo para el valor real de la base de datos, ese sinónimo debe definirse para el valor de la lista de valores y OMRQL debe utilizar el valor real de la base de datos. Por ejemplo, si la expresión es "mostrar el departamento cuya ubicación es la manzana grande", "manzana grande" se debe definir en la lista de valores dept_loc como sinónimo del valor "NEW YORK" y OMRQL debe ser "SELECT * FROM Dept WHERE loc = 'NEW YORK'".
A continuación se muestran algunos ejemplos de cómo escribir OMRQL para las expresiones:
Expresión | SQL | OMRQL | Comentarios |
---|---|---|---|
Mostrarme todos los empleados que trabajan como empleados | SELECT * FROM Emp WHERE job = 'CLERK' | SELECT * FROM Emp WHERE job = 'CLERK' | OMRQL es idéntica a SQL. |
Mostrarme el número de empleados que trabajan en el departamento de ventas | SELECT COUNT(*) FROM Emp AS T1 JOIN Dept AS T2 ON T1.deptno = T2.deptno WHERE T2.dname = 'VENTAS' | SELECT COUNT(*) FROM Emp WHERE dept.dname = 'VENTAS' | En lugar de JOIN, utilice "link_attribute.attribute_name" para hacer referencia a un atributo de otra entidad. |
Adams es un miembro de qué departamento? | SELECT * FROM Dept AS T1 JOIN Emp AS T2 ON T1.deptno = T2.deptno WHERE T2.ename = 'Adams' | SELECT * FROM Dept WHERE emp.ename = 'ADAMS' | En lugar de JOIN, utilice "link_attribute.attribute_name" para hacer referencia a un atributo de otra entidad. |
¿Cuál es la ubicación del departamento y el rol de puesto del empleado Adams? | SELECCIONE T1. UBICACIÓN, T2. TRABAJO DEL DEPARTAMENTO T1 UNIRSE AL EMPLEADO T2 EN T1. DEPTNO = T2. DEPTNO DONDE T2. NOMBRE = 'ADAMS' | SELECT loc, emp.job FROM Dept WHERE emp.ename = 'ADAMS' | Observe cómo OMRQL es más fácil de escribir que SQL. |
¿Cuántos empleados hay para cada rol de puesto? | SELECT COUNT(*), job FROM EMP GROUP BY job | SELECT COUNT(*), job FROM EMP GROUP BY job | OMRQL es idéntica a SQL. |
¿Qué empleado tiene el salario más alto? | SELECCIONAR * DESDE EMP ORDER POR salario DESC LIMIT 1 | SELECCIONAR * DESDE EMP ORDER POR salario DESC LIMIT 1 | OMRQL es idéntica a SQL. |
Mostrar el nombre del empleado y el nombre del departamento ordenados por el salario en orden ascendente | SELECCIONE T1.ename, T2.dname FROM Emp AS T1 JOIN Dept AS T2 ON T1.deptno = T2.deptno ORDER BY T1.sal ASC | SELECT ename, dept.dname FROM Emp ORDER BY salary ASC | Observe cómo OMRQL es más fácil de escribir que SQL. |
Número de empleados en cada ubicación | SELECT COUNT(*), loc FROM Emp AS T1 JOIN Dept AS T2 ON T1.deptno = T2.deptno GROUP BY T2.loc | SELECT loc, COUNT(emp) de Dept GROUP BY loc | Con GROUP BY, cuando se cuenta una entidad enlazada, se utiliza una nueva sintaxis COUNT(LINK) en lugar de COUNT(*). Esto hace que OMRQL sea más legible que SQL. |
Ver las ubicaciones con un salario medio de al menos 40000 | SELECCIONE T2.name FROM Emp AS T1 JOIN Dept AS T2 ON T1.deptno = T2.deptno GROUP BY T2.name HAVING AVG(T1.sal) >= 40000 | SELECCIONAR ubicación de departamento GRUPO POR ubicación con AVG(emp.sal) <= 40000 | Ejemplo de GROUP BY con cláusula HAVING. |
Salario medio de los empleados de cada departamento | SELECCIONE AVG(T1.sal), T2.dno FROM Emp AS T1 JOIN Dept AS T2 ON T1.deptno = T2.deptno GROUP BY T2.dno | SELECCIONAR *, AVG(sal) del departamento GROUP BY * | El objetivo aquí es agrupar por un atributo único en la entidad "departamento". La clave primaria es el candidato más adecuado, pero la visualización de la clave primaria puede no ser siempre útil.
En OMRL, nos agrupamos por *. El backend se agrupará por clave primaria y también mostrará los atributos mínimos de la entidad para que el resultado sea más fácil de utilizar |
Mostrar la ubicación y el salario mínimo de los empleados de cada departamento | Seleccione T2.dno, T2.loc, MIN(T1.sal) FROM Emp AS T1 JOIN Dept AS T2 ON T1.deptno = T2.deptno GROUP BY T2.dno, T2.loc | SELECT *, loc, MIN(sal) del departamento GROUP BY *, loc | En este caso, aún queremos agrupar por entidad de departamento, pero la expresión también solicita específicamente que se muestre la ubicación de los departamentos. Tenga en cuenta cómo las cláusulas SELECT y GROUP BY tienen atributos de visualización * y solicitados. |
Ver el nombre y la ubicación del departamento que tiene el salario medio más alto | Seleccione T2.name, T2.loc FROM Emp AS T1 JOIN Dept AS T2 ON T1.deptno = T2.deptno GROUP BY T2.name ORDER BY AVG(T1.sal) LIMIT 1 | SELECCIONAR *, nombre, ubicación del departamento GROUP BY *, nombre, ubicación ORDER BY AVG(emp.sal) LIMIT 1 | Otro ejemplo de agrupación por una entidad y visualización de los atributos solicitados, esta vez con ORDER BY LIMIT 1 |
Mostrar los 10 principales empleados | SELECCIONAR * desde EMP ORDER BY rating LIMIT 10 | SELECCIONAR * desde EMP ORDER BY * LIMIT 10 | Suponiendo que "mejores empleados" implique que estén ordenados por su calificación, la calificación se definirá como el atributo "measure_by" para la entidad Emp. |
Atributos de Enlace
Con la excepción de enlazar entidades, los componentes de OMRQL son similares a SQL. En lugar de una unión SQL, utilice un par de atributos de enlace para enlazar una entidad a otra. El atributo Link tiene nombres primarios y sinónimos que definen la relación entre las entidades. Por ejemplo, un enlace de atributo de empleado/departamento con una relación 1-1 puede tener un nombre principal "departamento" y sinónimos "funciona en", "pertenece a" y "equipo". Un enlace de atributo department/employees con una relación 1-many puede tener un nombre principal "employees" y sinónimos "members" y "workers".
Además de los atributos de enlace de clave primaria/clave ajena típicos, también puede tener estos tipos de atributos de enlace:
- Varios atributos de enlace de una entidad a otra que definen varias relaciones semánticas.
- Atributo de enlace de una entidad a sí misma que implica una autounión.
- Atributo de enlace para una tabla de intersección debido a una unión de varios a varios