

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.

# Generación de una consulta de datos estructurados
<a name="knowledge-base-generate-query"></a>

Al conectar un almacén de datos estructurados a la base de conocimiento, esta puede consultar el almacén convirtiendo la consulta en lenguaje natural proporcionada por el usuario en una consulta SQL, en función de la estructura del origen de datos que se vaya a consultar. Cuando utiliza:
+ [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html): la respuesta devuelve el resultado de la ejecución de la consulta SQL.
+ [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html): la respuesta generada se basa en el resultado de la ejecución de la consulta SQL.
+ [GenerateQuery](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerateQuery.html): Amazon Bedrock Knowledge Bases desvincula la conversión de la consulta del proceso de recuperación. Puede utilizar esta operación de la API para transformar una consulta en SQL.

## Mediante la API de `GenerateQuery`
<a name="knowledge-base-generate-query-api"></a>

Puede usar la respuesta de la operación de la API `GenerateQuery` con una acción `Retrieve` o `RetrieveAndGenerate` posterior, o insertarla en otros flujos de trabajo. `GenerateQuery` le permite transformar de manera eficiente las consultas en consultas SQL teniendo en cuenta la estructura del origen de datos de su base de conocimiento.

Para convertir una consulta en lenguaje natural en una consulta SQL, envíe una [GenerateQuery](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerateQuery.html)solicitud a un [punto de ejecución de Agents for Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt). La solicitud `GenerateQuery` contiene los siguientes campos:
+ queryGenerationInput — Especifique `TEXT` como consulta `type` e inclúyala en el `text` campo.
**nota**  
Las consultas deben escribirse en inglés.
+ transformationConfiguration: especifique `TEXT_TO_SQL` como `mode`. En el campo `textToSqlConfiguration`, especifique `KNOWLEDGE_BASE` como `type`. A continuación, especifique el ARN de la base de conocimiento.

La respuesta devuelve una matriz que contiene un [GeneratedQuery](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GeneratedQuery.html)objeto en el `queries` campo. El objeto contiene una consulta SQL para la consulta en el campo `sql`.

## Consideraciones clave
<a name="knowledge-base-generate-query-considerations"></a>

A continuación, se incluyen algunas consideraciones importantes a la hora de generar una consulta con datos estructurados.
+ 

**Inferencia entre regiones y recuperación de datos estructurados**  
La recuperación de datos estructurados utiliza la inferencia entre regiones para seleccionar la opción óptima Región de AWS dentro de su zona geográfica y procesar la solicitud de inferencia. Esto no implica ningún cargo adicional y mejora la experiencia del cliente al maximizar los recursos disponibles y la disponibilidad del modelo.

  Las solicitudes de inferencia cruzada se mantienen dentro de la zona geográfica en la Regiones de AWS que residen originalmente los datos. Sus datos permanecen almacenados en la región de origen, pero es posible que las peticiones de entrada y los resultados de salida se muevan fuera de esta región. Todos los datos se transmitirán cifrados a través de la red segura de Amazon.

  Para obtener más información, consulte [Aumento del rendimiento con la inferencia entre regiones](cross-region-inference.md).
+ 

**Precisión de las consultas de SQL generativo**  
La precisión de una consulta de SQL generativo puede variar en función del contexto, los esquemas de las tablas y la intención de la consulta del usuario. Evalúe las consultas generativas para asegurarse de que se adapten a su caso de uso antes de utilizarlas en su carga de trabajo.
+ 

**Número de resultados recuperados.**  
Estas son las limitaciones que se aplican al generar la respuesta.
  + Cuando se utilizan las operaciones de la API `InvokeAgent`, `RetrieveAndGenerate` y `RetrieveAndGenerateStream`, solo se usan 10 resultados recuperados al generar la respuesta.
  + Cuando se utiliza la API `InvokeAgent`, si hay más de 10 filas de resultados recuperados, el número total de filas recuperadas no se pasa al agente para generar la respuesta. Si, en su lugar, utiliza la API `RetrieveAndGenerate`, el número total de filas se incluye en la petición para generar la respuesta final.
+ 

**Cuota de la API `GenerateQuery`**  
La `GenerateQuery` API tiene una cuota de 2 solicitudes por segundo.

## Concesión de permisos a un rol para acceder a las consultas generativas
<a name="knowledge-base-structured-permissions"></a>

En el caso de una base de conocimiento conectada a origen de datos estructurados, si desea realizar algunas operaciones adicionales en las consultas generativas, debe conceder permisos para realizar la acción de la API `GenerateQuery`. Para permitir que su rol de IAM consulte una base de conocimiento conectada a un almacén de datos estructurados, asocie la siguiente política al rol:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GetKB",
            "Effect": "Allow",
            "Action": [
                "bedrock:GetKnowledgeBase"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/KnowledgeBaseId"
            ]
        },
        {
            "Sid": "GenerateQueryAccess",
            "Effect": "Allow",
            "Action": [
                "bedrock:GenerateQuery",
                "sqlworkbench:GetSqlRecommendations"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Retrieve",
            "Effect": "Allow",
            "Action": [
                "bedrock:Retrieve"
            ],
            "Resource": [
                "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/KnowledgeBaseId"
            ]
        },
        {
            "Sid": "RetrieveAndGenerate",
            "Effect": "Allow",
            "Action": [
                "bedrock:RetrieveAndGenerate"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

Puede eliminar las instrucciones que no necesite en función del caso de uso:
+ Se requieren `GenerateQuery` las instrucciones `GetKB` y para poder realizar llamadas y [GenerateQuery](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerateQuery.html)generar consultas SQL que tengan en cuenta las consultas de los usuarios y la fuente de datos conectada.
+ La instrucción `Retrieve` es necesaria para llamar a [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Retrieve.html) para recuperar los datos del almacén de datos estructurados.
+ La instrucción `RetrieveAndGenerate` es necesaria para llamar a [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_RetrieveAndGenerate.html) para recuperar los datos del almacén de datos estructurados y generar las respuestas en función de los datos.