Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Cree una base de conocimientos mediante la conexión a un almacén de datos estructurado
Para conectar una base de conocimientos a un almacén de datos estructurado, debe especificar los siguientes componentes:
-
Configuración del motor de consultas
La configuración del servicio de cómputo que ejecutará las consultas SQL generadas. El motor de consultas se utiliza para convertir las consultas de los usuarios en lenguaje natural en consultas SQL que se pueden utilizar para extraer datos del almacén de datos. Puede elegir entre Amazon Redshift o Amazon Athena como motor de consultas. Al elegir esta configuración, debe especificar:
-
Los metadatos de la conexión de procesamiento, como el ID del clúster o el ARN del grupo de trabajo, según el motor de consultas elegido.
-
El método de autenticación para utilizar el motor de consultas, que puede consistir en utilizar un rol de servicio de IAM con los permisos adecuados, un usuario de la base de datos del motor de consultas o un AWS Secrets Manager secreto vinculado a las credenciales de la base de datos.
nota
Si elige Athena como motor de consultas, solo se admite la autenticación basada en roles de servicio de IAM.
-
-
Configuración de almacenamiento
La configuración del almacén de datos que contiene sus datos. Puede conectarse a Amazon Redshift Provisioned o Amazon Redshift Serverless y usar Amazon Redshift o como almacén de datos. AWS Glue Data Catalog
-
(Opcional) Consulte las configuraciones
Puede utilizar configuraciones de consulta opcionales para mejorar la precisión de la generación de SQL:
-
Tiempo máximo de consulta: cantidad de tiempo tras la cual se agota el tiempo de espera de la consulta.
-
Descripciones: proporciona metadatos o información complementaria sobre las tablas o columnas. Puede incluir descripciones de las tablas o columnas, notas de uso o cualquier atributo adicional. Las descripciones que añada pueden mejorar la generación de consultas SQL al proporcionar contexto e información adicionales sobre la estructura de las tablas o columnas.
-
Inclusiones y exclusiones: especifica un conjunto de tablas o columnas que se van a incluir o excluir para la generación de SQL. Este campo es fundamental si desea limitar el alcance de las consultas SQL a un subconjunto definido de tablas o columnas disponibles. Esta opción puede ayudar a optimizar el proceso de generación al reducir las referencias innecesarias a tablas o columnas.
Si especifica inclusiones, se ignorarán todas las demás tablas y columnas. Si especifica exclusiones, se ignorarán las tablas y columnas que especifique.
nota
Las inclusiones y exclusiones no sustituyen a las barandillas y solo tienen por objeto mejorar la precisión del modelo.
-
Consultas seleccionadas: conjunto de ejemplos predefinidos de preguntas y respuestas. Las preguntas se escriben como consultas en lenguaje natural (NLQ) y las respuestas son la consulta SQL correspondiente. Estos ejemplos ayudan al proceso de generación de SQL al proporcionar ejemplos de los tipos de consultas que se deben generar. Sirven como puntos de referencia para mejorar la precisión y la relevancia de los resultados generativos de SQL.
-
Amplíe la sección que se corresponda con su caso de uso:
Para conectarse a un banco de datos estructurado mediante el AWS Management Console, haga lo siguiente:
-
Inicie sesión en el rol de AWS Management Console uso de IAM con los permisos de Amazon Bedrock y abra la consola de Amazon Bedrock en. https://console.aws.amazon.com/bedrock/
-
En el panel de navegación izquierdo, seleccione Bases de conocimiento.
-
En la sección Bases de conocimiento, elija Crear y, a continuación, seleccione Base de conocimiento con almacén de datos estructurado.
-
Configure los siguientes detalles para la base de conocimientos:
-
(Opcional) Cambie el nombre predeterminado y proporcione una descripción para su base de conocimientos.
-
Seleccione el motor de consultas que se utilizará para recuperar los datos del almacén de datos.
-
Elija un rol de servicio de IAM con los permisos adecuados para crear y administrar esta base de conocimientos. Puede dejar que Amazon Bedrock cree el rol de servicio o elegir un rol personalizado que haya creado. Para obtener más información sobre la creación de un rol personalizado, consulteConfigure el motor de consultas y los permisos para crear una base de conocimientos con un almacén de datos estructurado.
-
(Opcional) Añada etiquetas para asociarlas a su base de conocimientos. Para obtener más información, consulte Etiquetado de los recursos de Amazon Bedrock.
-
Elija Siguiente.
-
-
Configure su motor de consultas:
-
Seleccione el servicio en el que creó un clúster o un grupo de trabajo. A continuación, elija el clúster o el grupo de trabajo que desee utilizar.
-
Seleccione el método de autenticación y proporcione los campos necesarios.
-
Seleccione el banco de datos en el que desea almacenar los metadatos. A continuación, elija o introduzca el nombre de la base de datos.
-
(Opcional) Modifique las configuraciones de consulta según sea necesario. Consulte el principio de este tema para obtener más información sobre las diferentes configuraciones.
-
Elija Siguiente.
-
-
Revise las configuraciones de la base de conocimientos y edite las secciones que considere necesarias. Confirme que desea crear su base de conocimientos.
Para conectarse a un almacén de datos estructurado mediante la API de Amazon Bedrock, envíe una CreateKnowledgeBasesolicitud con un punto final de tiempo de compilación de Agents for Amazon Bedrock con el siguiente cuerpo de solicitud general:
{ "name": "string", "roleArn": "string", "knowledgeBaseConfiguration": { "type": "SQL", "sqlKnowledgeBaseConfiguration": SqlKnowledgeBaseConfiguration }, "description": "string", "clientToken": "string", "tags": { "string": "string" } }
Los siguientes campos son obligatorios.
Campo | Descripción básica |
---|---|
Nombre | Un nombre para la base de conocimientos |
roleArn | Un rol de servicio de la base de conocimientos con los permisos adecuados. Puede usar la consola para crear automáticamente un rol de servicio con los permisos adecuados. |
knowledgeBaseConfiguration | Contiene configuraciones para la base de conocimientos. Para una base de datos estructurada, especifique SQL como sqlKnowledgeBaseConfiguration campo type e inclúyalo. |
Los siguientes campos son opcionales.
Campo | Uso |
---|---|
description | Para incluir una descripción de la base de conocimientos. |
clientToken | Para garantizar que la solicitud de la API se complete solo una vez. Para obtener más información, consulte Ensuring idempotency. |
etiquetas | Para asociar etiquetas con el flujo. Para obtener más información, consulte Etiquetado de los recursos de Amazon Bedrock. |
SQLKnowledgeBaseConfiguration
Depende del motor de consultas que utilice. Para Amazon Redshift, especifique el type
campo como REDSHIFT
e inclúyaloredshiftConfiguration
, que se asigna a. RedshiftConfiguration Para el RedshiftConfiguration, debe configurar los siguientes campos:
Puede configurar los siguientes tipos de motores de consultas:
Si las bases de datos de Amazon Redshift se aprovisionan en nodos de procesamiento dedicados, el valor del queryEngineConfiguration
campo debe tener RedshiftQueryEngineConfigurationel siguiente formato:
{ "type": "PROVISIONED", "provisionedConfiguration": { "clusterIdentifier": "string", "authConfiguration": RedshiftProvisionedAuthConfiguration }, }
Especifique el ID del clúster en el clusterIdentifier
campo. RedshiftProvisionedAuthConfigurationDepende del tipo de autorización que utilices. Seleccione la pestaña que coincida con su método de autorización:
Si utiliza Amazon Redshift Serverless, el valor del queryConfiguration
campo debe tener el siguiente RedshiftQueryEngineConfigurationformato:
{ "type": "SERVERLESS", "serverlessConfiguration": { "workgroupArn": "string", "authConfiguration": } }
Especifique el ARN de su grupo de trabajo en el campo. workgroupArn
RedshiftServerlessAuthConfigurationDepende del tipo de autorización que utilice. Seleccione la pestaña que coincida con su método de autorización:
Este campo se asigna a una matriz que contiene un único campo RedshiftQueryEngineStorageConfiguration, cuyo formato depende del lugar donde estén almacenados los datos.
Si los datos están almacenados en AWS Glue Data Catalog, RedshiftQueryEngineStorageConfiguration
deben tener el siguiente formato:
{ "type": "AWS_DATA_CATALOG", "awsDataCatalogConfiguration": { "tableNames": ["string"] } }
Agregue el nombre de cada tabla a la que desee conectar su base de conocimientos en la matriz a la que se tableNames
asigna.
nota
Introduzca los nombres de las tablas siguiendo el patrón descrito en Consultas entre bases de datos (${databaseName}.${tableName}
). Puede incluir todas las tablas ${databaseName.*}
especificándolo.
Si sus datos se almacenan en una base de datos de Amazon Redshift, RedshiftQueryEngineStorageConfiguration
deben tener el siguiente formato:
{ "type": "string", "redshiftConfiguration": { "databaseName": "string" } }
Especifique el nombre de la base de datos de Amazon Redshift en el databaseName
campo.
nota
Introduzca los nombres de las tablas siguiendo el patrón descrito en Consultas entre bases de datos ()${databaseName}.${tableName}
. Puede incluir todas las tablas ${databaseName.*}
especificándolo.
Si la base de datos se monta a través de Amazon SageMaker AI Lakehouse, el nombre de la base de datos estará en el formato${db}@${schema}
.
Este campo se asigna a lo siguiente, QueryGenerationConfigurationque puede usar para configurar la forma en que se consultan los datos:
{ "executionTimeoutSeconds": number, "generationContext": { "tables": [ { "name": "string", "description": "string", "inclusion": "string", "columns": [ { "name": "string", "description": "string", "inclusion": "string" }, ... ] }, ... ], "curatedQueries": [ { "naturalLanguage": "string", "sql": "string" }, ... ] } }
Si desea que se agote el tiempo de espera de la consulta, especifique la duración del tiempo de espera en segundos en el executionTimeoutSeconds
campo.
El generationContext
campo se asigna a un QueryGenerationContextobjeto en el que puede configurar tantas de las siguientes opciones como necesite.
importante
Si incluye un contexto de generación, el motor de consultas hace todo lo posible por aplicarlo al generar SQL. El contexto de generación no es determinista y solo pretende mejorar la precisión del modelo. Para garantizar la precisión, compruebe las consultas SQL generadas.
Para obtener información sobre los contextos de generación que puede incluir, amplíe las siguientes secciones:
Para mejorar la precisión de la generación de SQL para consultar la base de datos, puede proporcionar una descripción de la tabla o columna que proporcione más contexto que un nombre corto de tabla o columna. Puede hacer lo siguiente:
-
Para añadir una descripción a una tabla, incluya un QueryGenerationTableobjeto en la
tables
matriz. En ese objeto, especifique el nombre de la tabla en elname
campo y una descripción en eldescription
campo, como en el ejemplo siguiente:{ "name": "database.schema.tableA", "description": "Description for Table A" }
-
Para añadir una descripción a una columna, incluya un QueryGenerationTableobjeto en la
tables
matriz. En ese objeto, especifique el nombre de la tabla en elname
campo e incluya elcolumns
campo, que se asigna a una matriz de QueryGenerationColumn. En unQueryGenerationColumn
objeto, incluya el nombre de la columna en elname
campo y una descripción en eldescription
campo, como en el ejemplo siguiente:{ "name": "database.schema.tableA", "columns": [ { "name": "Column A", "description": "Description for Column A" } ] }
-
Puede añadir una descripción tanto para una tabla como para una columna, como en el siguiente ejemplo:
{ "name": "database.schema.tableA", "description": "Description for Table A", "columns": [ { "name": "columnA", "description": "Description for Column A" } ] }
nota
Introduzca los nombres de las tablas y columnas siguiendo el patrón descrito en las consultas entre bases de datos. Si la base de datos está en AWS Glue Data Catalog, el formato es
awsdatacatalog.gluedatabase.table
.
Puede sugerir tablas o columnas para incluirlas o excluirlas al generar SQL mediante el inclusion
campo de los QueryGenerationColumnobjetos QueryGenerationTableand. Puede especificar uno de los siguientes valores en el inclusion
campo:
-
INCLUIR: solo las tablas o columnas que especifique se incluyen como contexto al generar SQL.
-
EXCLUIR: las tablas o columnas que especifique se excluyen como contexto al generar SQL.
Puede especificar si desea incluir o excluir tablas o columnas de las siguientes maneras:
-
Para incluir o excluir una tabla, incluya un QueryGenerationTableobjeto en la
tables
matriz. En ese objeto, especifique el nombre de la tabla en elname
campo y si desea incluirla o excluirla en elinclusion
campo, como en el ejemplo siguiente:{ "name": "database.schema.tableA", "inclusion": "EXCLUDE" }
El motor de consultas no añade
Table A
el contexto adicional para generar SQL. -
Para incluir o excluir una columna, incluya un QueryGenerationTableobjeto en la
tables
matriz. En ese objeto, especifique el nombre de la tabla en elname
campo e incluya elcolumns
campo, que se asignará a una matriz de QueryGenerationColumn. En unQueryGenerationColumn
objeto, incluya el nombre de la columna en elname
campo y si desea incluirla o excluirla en elinclusion
campo, como en el ejemplo siguiente:{ "name": "database.schema.tableA", "columns": [ { "name": "database.schema.tableA.columnA", "inclusion": "EXCLUDE" } ] }
La generación de SQL pasa por alto
Column A
Table A
en el contexto al generar SQL. -
Puede combinar tablas y columnas al especificar inclusiones o exclusiones, como en el siguiente ejemplo:
{ "name": "database.schema.tableA", "inclusion": "INCLUDE", "columns": [ { "name": "database.schema.tableA.columnA", "inclusion": "EXCLUDE" } ] }
La generación de SQL incluye
Table A
, pero excluyeColumn A
, al agregar contexto para generar SQL.
importante
Las exclusiones de tablas y columnas no sustituyen a las barandillas. Estas inclusiones y exclusiones de tablas y columnas se utilizan como contexto adicional para que el modelo se tenga en cuenta al generar SQL.
Para mejorar la precisión de un motor de consultas a la hora de convertir las consultas de los usuarios en consultas SQL, puedes proporcionarles ejemplos en el curatedQueries
campo del QueryGenerationContextobjeto, que se asigna a una matriz de CuratedQueryobjetos. Cada objeto incluye los siguientes campos:
-
NaturalLanguage: ejemplo de una consulta en lenguaje natural.
-
sql: la consulta SQL que corresponde a la consulta en lenguaje natural.