

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Gerar uma consulta a dados estruturados
<a name="knowledge-base-generate-query"></a>

Quando você conecta um armazenamento de dados estruturados à base de conhecimento, a base de conhecimento pode consultá-lo convertendo a consulta em linguagem natural do usuário em uma consulta SQL, com base na estrutura da fonte de dados que está sendo consultada. Quando você usa:
+ [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): a resposta exibe o resultado da execução da 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): a resposta gerada é baseada no resultado da execução da consulta SQL.
+ [GenerateQuery](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerateQuery.html): O Amazon Bedrock Knowledge Bases separa a conversão da consulta do processo de recuperação. Você pode usar essa operação de API para transformar uma consulta em SQL.

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

Você pode usar a resposta da operação de API `GenerateQuery` com uma ação `Retrieve` ou `RetrieveAndGenerate` subsequente ou inseri-la em outros fluxos de trabalho. `GenerateQuery` permite transformar consultas em consultas SQL de forma eficiente, levando em consideração a estrutura da fonte de dados da base de conhecimento.

Para transformar uma consulta de linguagem natural em uma consulta SQL, envie uma [GenerateQuery](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerateQuery.html)solicitação com um [endpoint de tempo de execução do Agents for Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt). A solicitação `GenerateQuery` contém os seguintes campos:
+ queryGenerationInput — Especifique `TEXT` como `type` e inclua a consulta no `text` campo.
**nota**  
As consultas devem ser escritas em inglês.
+ transformationConfiguration: especifique `TEXT_TO_SQL` como o `mode`. No campo `textToSqlConfiguration`, especifique `KNOWLEDGE_BASE` com o `type`. Em seguida, especifique o ARN da base de conhecimento.

A resposta retorna uma matriz contendo um [GeneratedQuery](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GeneratedQuery.html)objeto no `queries` campo. O objeto contém uma consulta SQL para a consulta no campo `sql`.

## Considerações importantes
<a name="knowledge-base-generate-query-considerations"></a>

Veja a seguir algumas considerações importantes ao gerar uma consulta usando dados estruturados.
+ 

**Inferência entre regiões e recuperação de dados estruturados**  
A recuperação de dados estruturados usa inferência entre regiões para selecionar o ideal Região da AWS em sua geografia para processar sua solicitação de inferência. Isso não gera cobranças adicionais e melhora a experiência do cliente ao maximizar os recursos disponíveis e a disponibilidade do modelo.

  As solicitações de inferência cruzada são mantidas dentro do Regiões da AWS que faz parte da geografia em que os dados residem originalmente. Seus dados permanecem armazenados na região de origem, mas os prompts de entrada e os resultados de saída podem se mover fora dessa região. Todos os dados serão transmitidos criptografados pela rede segura da Amazon.

  Para obter mais informações, consulte [Aumentar o throughput com inferência entre regiões](cross-region-inference.md).
+ 

**Precisão das consultas SQL geradas**  
A precisão de uma consulta SQL gerada pode variar dependendo do contexto, dos esquemas de tabela e da intenção da consulta de um usuário. Antes de usar as consultas geradas em sua workload, avalie-as para garantir que sejam adequadas ao seu caso de uso.
+ 

**Número de resultados recuperados**  
As limitações a seguir se aplicam ao gerar a resposta.
  + Ao usar as operações de API `InvokeAgent`, `RetrieveAndGenerate` e `RetrieveAndGenerateStream`, apenas dez resultados recuperados são usados ao gerar a resposta.
  + Ao usar a API `InvokeAgent`, se houver mais de dez linhas de resultados recuperados, o número total de linhas recuperadas não será transmitido ao agente para gerar a resposta. Se, em vez disso, você usar a API `RetrieveAndGenerate`, o número total de linhas será incluído no prompt para gerar a resposta final.
+ 

**Cota da API `GenerateQuery`**  
A API `GenerateQuery` tem uma cota de duas solicitações por segundo.

## Conceder permissões a um perfil para acessar as consultas geradas
<a name="knowledge-base-structured-permissions"></a>

Para sua base de conhecimento conectada a uma fonte de dados estruturados, se você quiser realizar algumas operações adicionais nas consultas geradas, deverá conceder permissões para realizar a ação de API `GenerateQuery`. Para permitir que o perfil do IAM consulte uma base de conhecimento conectada a um armazenamento de dados estruturados, anexe a seguinte política ao perfil:

------
#### [ 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": [
                "*"
            ]
        }
    ]
}
```

------

Você pode remover instruções das quais não precisa, dependendo do caso de uso:
+ `GenerateQuery`As instruções `GetKB` e devem ser chamadas [GenerateQuery](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerateQuery.html)para gerar consultas SQL que levem em consideração as consultas do usuário e sua fonte de dados conectada.
+ A instrução `Retrieve` deve chamar [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 dados do armazenamento de dados estruturados.
+ A instrução `RetrieveAndGenerate` deve chamar [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 dados do armazenamento de dados estruturados e gerar respostas baseadas nos dados.