

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Generazione di una query per dati strutturati
<a name="knowledge-base-generate-query"></a>

Quando si collega un datastore strutturato alla knowledge base, quest’ultima può interrogarlo convertendo la query in linguaggio naturale fornita dall’utente in una query SQL, in base alla struttura dell’origine dati oggetto della query. Quando utilizzi:
+ [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 risposta restituisce il risultato dell’esecuzione della query 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 risposta generata si basa sul risultato dell’esecuzione della query SQL.
+ [GenerateQuery](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerateQuery.html): Amazon Bedrock Knowledge Bases disaccoppia la conversione della query dal processo di recupero. Puoi utilizzare questa operazione API per trasformare una query in SQL.

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

È possibile utilizzare la risposta dell’operazione API `GenerateQuery` con un’azione `Retrieve` o `RetrieveAndGenerate` successiva o inserirla in altri flussi di lavoro. `GenerateQuery` consente di trasformare in modo efficiente le query in query SQL prendendo in considerazione la struttura dell’origine dati della knowledge base.

Per trasformare una query in linguaggio naturale in una query SQL, invia una [GenerateQuery](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerateQuery.html)richiesta con un [endpoint di runtime Agents for Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt). La richiesta `GenerateQuery` contiene i seguenti campi:
+ queryGenerationInput — Specificare `TEXT` come `type` e includere la query nel `text` campo.
**Nota**  
Le query devono essere scritte in inglese.
+ transformationConfiguration: specifica `TEXT_TO_SQL` come `mode`. Nel campo `textToSqlConfiguration`, specifica `KNOWLEDGE_BASE` come `type`. Quindi, specifica l’ARN della knowledge base.

La risposta restituisce un array contenente un [GeneratedQuery](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GeneratedQuery.html)oggetto nel `queries` campo. L’oggetto contiene una query SQL per la query nel campo `sql`.

## Considerazioni chiave
<a name="knowledge-base-generate-query-considerations"></a>

Di seguito sono riportate alcune considerazioni chiave per la generazione di una query utilizzando dati strutturati.
+ 

**Inferenza tra Regioni e recupero di dati strutturati**  
Il recupero dei dati strutturati utilizza l'inferenza interregionale per selezionare l'area geografica ottimale per Regione AWS elaborare la richiesta di inferenza. Ciò non comporta costi aggiuntivi e migliora l’esperienza del cliente massimizzando le risorse disponibili e la disponibilità del modello.

  Le richieste di inferenza incrociata vengono conservate all'interno della parte geografica in Regioni AWS cui risiedono originariamente i dati. I dati rimangono archiviati nella Regione di origine, ma i prompt di input e i risultati di output possono spostarsi al di fuori di questa Regione. Tutti i dati verranno trasmessi in modalità crittografata attraverso la rete sicura di Amazon.

  Per ulteriori informazioni, consulta [Aumentare il throughput con l’inferenza tra Regioni](cross-region-inference.md).
+ 

**Accuratezza delle query SQL generate**  
L’accuratezza di una query SQL generata può variare a seconda del contesto, degli schemi delle tabelle e dell’intento di una query utente. Valuta le query generate per assicurarti che siano adatte al tuo caso d’uso prima di utilizzarle nel tuo carico di lavoro.
+ 

**Numero di risultati recuperati**  
Le seguenti limitazioni si applicano quando si genera la risposta.
  + Quando si utilizzano le operazioni API `InvokeAgent`, `RetrieveAndGenerate` e `RetrieveAndGenerateStream`, solo 10 risultati recuperati vengono utilizzati nella generazione della risposta.
  + Quando si utilizza l’API `InvokeAgent`, se sono presenti più di 10 righe di risultati recuperati, il numero totale di righe recuperate non viene passato all’agente per la generazione della risposta. Se invece si utilizza l’API `RetrieveAndGenerate`, il numero totale di righe viene incluso nel prompt per la generazione della risposta finale.
+ 

**Quota API `GenerateQuery`**  
L’API `GenerateQuery` ha una quota di 2 richieste al secondo.

## Concedi a un ruolo le autorizzazioni per accedere alle query generate
<a name="knowledge-base-structured-permissions"></a>

Per la tua knowledge base collegata a un’origine dati strutturata, se desideri eseguire alcune operazioni aggiuntive sulle query generate, devi concedere le autorizzazioni per eseguire l’azione API `GenerateQuery`. Per consentire al tuo ruolo IAM di interrogare una knowledge base connessa a un datastore strutturato, collega la seguente policy al ruolo:

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

------

Puoi rimuovere le dichiarazioni non necessarie, a seconda del caso d’uso:
+ `GenerateQuery`Le istruzioni `GetKB` and devono essere chiamate per [GenerateQuery](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_GenerateQuery.html)generare query SQL che tengano conto delle query degli utenti e dell'origine dati connessa.
+ L’istruzione `Retrieve` è necessaria per chiamare [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) per recuperare i dati dal datastore strutturato.
+ L’istruzione `RetrieveAndGenerate` è necessaria per chiamare [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) per recuperare i dati dal datastore strutturato e generare risposte basate sui dati.