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à.
Crea una knowledge base collegandoti a un archivio dati strutturato
Per connettere una knowledge base a un data store strutturato, specifica i seguenti componenti:
-
Configurazione del motore di interrogazione
La configurazione per il servizio di calcolo che eseguirà le query SQL generate. Il motore di query viene utilizzato per convertire le query degli utenti in linguaggio naturale in query SQL che possono essere utilizzate per estrarre dati dall'archivio dati. Puoi scegliere tra Amazon Redshift o Amazon Athena come motore di query. Quando scegli questa configurazione, devi specificare:
-
I metadati della connessione di calcolo come l'ID del cluster o l'ARN del gruppo di lavoro a seconda del motore di query scelto.
-
Il metodo di autenticazione per l'utilizzo del motore di query, che può utilizzare un ruolo del servizio IAM con le autorizzazioni appropriate, un utente del database del motore di query o un AWS Secrets Manager segreto collegato alle credenziali del database.
Nota
Se scegli Athena come motore di query, è supportata solo l'autenticazione basata sui ruoli di servizio IAM.
-
-
Configurazione dello storage
La configurazione per il data store contenente i tuoi dati. Puoi connetterti ad Amazon Redshift Provisioned o Amazon Redshift Serverless e utilizzare Amazon Redshift o come archivio dati. AWS Glue Data Catalog
-
(Facoltativo) Configurazioni di interrogazione
È possibile utilizzare configurazioni di query opzionali per migliorare la precisione della generazione SQL:
-
Tempo massimo di interrogazione: il periodo di tempo dopo il quale la query scade.
-
Descrizioni: fornisce metadati o informazioni supplementari su tabelle o colonne. È possibile includere descrizioni delle tabelle o delle colonne, note sull'utilizzo o qualsiasi attributo aggiuntivo. Le descrizioni aggiunte possono migliorare la generazione di query SQL fornendo contesto e informazioni aggiuntivi sulla struttura delle tabelle o delle colonne.
-
Inclusioni ed esclusioni: specifica un set di tabelle o colonne da includere o escludere per la generazione di SQL. Questo campo è fondamentale se si desidera limitare l'ambito delle query SQL a un sottoinsieme definito di tabelle o colonne disponibili. Questa opzione può aiutare a ottimizzare il processo di generazione riducendo i riferimenti a tabelle o colonne non necessari.
Se si specificano inclusioni, tutte le altre tabelle e colonne vengono ignorate. Se si specificano delle esclusioni, le tabelle e le colonne specificate vengono ignorate.
Nota
Le inclusioni e le esclusioni non sostituiscono i guardrail e servono solo a migliorare la precisione del modello.
-
Interrogazioni curate: una serie di esempi di domande e risposte predefiniti. Le domande sono scritte come query in linguaggio naturale (NLQ) e le risposte sono le query SQL corrispondenti. Questi esempi facilitano il processo di generazione di SQL fornendo esempi dei tipi di query da generare. Servono come punti di riferimento per migliorare l'accuratezza e la pertinenza degli output SQL generativi.
-
Espandi la sezione corrispondente al tuo caso d'uso:
Per connetterti a un data store strutturato utilizzando il AWS Management Console, procedi come segue:
-
Accedi all' AWS Management Console utilizzo di un ruolo IAM con autorizzazioni Amazon Bedrock e apri la console Amazon Bedrock all'indirizzo. https://console.aws.amazon.com/bedrock/
-
Nel riquadro di navigazione a sinistra, scegli Knowledge base.
-
Nella sezione Knowledge base, scegli Crea, quindi seleziona Knowledge base con archivio dati strutturato.
-
Imposta i seguenti dettagli per la knowledge base:
-
(Facoltativo) Modificare il nome predefinito e fornire una descrizione per la knowledge base.
-
Seleziona il motore di query da utilizzare per recuperare i dati dal tuo data store.
-
Scegli un ruolo di servizio IAM con le autorizzazioni appropriate per creare e gestire questa knowledge base. Puoi lasciare che Amazon Bedrock crei il ruolo di servizio o scegliere un ruolo personalizzato che hai creato. Per ulteriori informazioni sulla creazione di un ruolo personalizzato, consultaConfigura il motore di query e le autorizzazioni per creare una knowledge base con archivio dati strutturato.
-
(Facoltativo) Aggiungi tag da associare alla tua knowledge base. Per ulteriori informazioni, consulta Etichettare le risorse di Amazon Bedrock.
-
Scegli Next (Successivo).
-
-
Configura il tuo motore di query:
-
Seleziona il servizio in cui hai creato un cluster o un gruppo di lavoro. Quindi scegli il cluster o il gruppo di lavoro da utilizzare.
-
Seleziona il metodo di autenticazione e fornisci i campi necessari.
-
Seleziona l'archivio dati in cui archiviare i metadati. Quindi, scegli o inserisci il nome del database.
-
(Facoltativo) Modificate le configurazioni delle interrogazioni secondo necessità. Fate riferimento all'inizio di questo argomento per ulteriori informazioni sulle diverse configurazioni.
-
Scegli Next (Successivo).
-
-
Esamina le configurazioni della Knowledge Base e modifica le sezioni necessarie. Conferma per creare la tua knowledge base.
Per connetterti a un data store strutturato utilizzando l'API Amazon Bedrock, invia una CreateKnowledgeBaserichiesta a un endpoint di build Agents for Amazon Bedrock con il seguente corpo di richiesta generale:
{ "name": "string", "roleArn": "string", "knowledgeBaseConfiguration": { "type": "SQL", "sqlKnowledgeBaseConfiguration": SqlKnowledgeBaseConfiguration }, "description": "string", "clientToken": "string", "tags": { "string": "string" } }
I seguenti campi sono obbligatori.
Campo | Descrizione di base |
---|---|
Nome | Un nome per la knowledge base |
roleArn | Un ruolo del servizio della Knowledge Base con le autorizzazioni appropriate. È possibile utilizzare la console per creare automaticamente un ruolo di servizio con le autorizzazioni appropriate. |
knowledgeBaseConfiguration | Contiene le configurazioni per la knowledge base. Per un database strutturato, specificare SQL type e includere il sqlKnowledgeBaseConfiguration campo. |
I seguenti campi sono facoltativi.
Campo | Utilizzo |
---|---|
description | Per includere una descrizione per la knowledge base. |
clientToken | Per garantire che la richiesta API venga completata una sola volta. Per ulteriori informazioni, consulta Garantire l'idempotenza. |
tags | Per associare i tag al flusso. Per ulteriori informazioni, consulta Etichettare le risorse di Amazon Bedrock. |
SQLKnowledgeBaseConfiguration
Dipende dal motore di query utilizzato. Per Amazon Redshift, specifica il type
campo come REDSHIFT
e includi il redshiftConfiguration
campo, che corrisponde a un. RedshiftConfiguration Per il RedshiftConfiguration, configuri i seguenti campi:
È possibile configurare i seguenti tipi di motore di query:
Se i database Amazon Redshift vengono forniti su nodi di calcolo dedicati, il valore del queryEngineConfiguration
campo deve essere a RedshiftQueryEngineConfigurationnel seguente formato:
{ "type": "PROVISIONED", "provisionedConfiguration": { "clusterIdentifier": "string", "authConfiguration": RedshiftProvisionedAuthConfiguration }, }
Specificare l'ID del cluster nel campo. clusterIdentifier
RedshiftProvisionedAuthConfigurationDipende dal tipo di autorizzazione che stai utilizzando. Seleziona la scheda che corrisponde al tuo metodo di autorizzazione:
Se utilizzi Amazon Redshift Serverless, il valore del queryConfiguration
campo deve essere RedshiftQueryEngineConfigurationnel seguente formato:
{ "type": "SERVERLESS", "serverlessConfiguration": { "workgroupArn": "string", "authConfiguration": } }
Specificate l'ARN del vostro gruppo di lavoro nel campo. workgroupArn
RedshiftServerlessAuthConfigurationDipende dal tipo di autorizzazione che stai utilizzando. Seleziona la scheda che corrisponde al tuo metodo di autorizzazione:
Questo campo è mappato su un array contenente un singolo RedshiftQueryEngineStorageConfiguration, il cui formato dipende da dove sono archiviati i dati.
Se i dati sono archiviati in AWS Glue Data Catalog, RedshiftQueryEngineStorageConfiguration
devono essere nel seguente formato:
{ "type": "AWS_DATA_CATALOG", "awsDataCatalogConfiguration": { "tableNames": ["string"] } }
Aggiungi il nome di ogni tabella a cui desideri connettere la tua knowledge base nell'array a cui tableNames
mappare.
Nota
Immettete i nomi delle tabelle nello schema descritto in Interrogazioni tra database ()${databaseName}.${tableName}
. È possibile includere tutte le tabelle specificando. ${databaseName.*}
Se i dati sono archiviati in un database Amazon Redshift, RedshiftQueryEngineStorageConfiguration
devono essere nel seguente formato:
{ "type": "string", "redshiftConfiguration": { "databaseName": "string" } }
Specificate il nome del vostro database Amazon Redshift nel databaseName
campo.
Nota
Inserisci i nomi delle tabelle secondo lo schema descritto in Interrogazioni tra database (). ${databaseName}.${tableName}
È possibile includere tutte le tabelle specificando. ${databaseName.*}
Se il database è montato tramite Amazon SageMaker AI Lakehouse, il nome del database è nel formato. ${db}@${schema}
Questo campo è associato a quanto segue, QueryGenerationConfigurationche puoi utilizzare per configurare il modo in cui vengono richieste le query sui dati:
{ "executionTimeoutSeconds": number, "generationContext": { "tables": [ { "name": "string", "description": "string", "inclusion": "string", "columns": [ { "name": "string", "description": "string", "inclusion": "string" }, ... ] }, ... ], "curatedQueries": [ { "naturalLanguage": "string", "sql": "string" }, ... ] } }
Se desideri che la query scada, specifica la durata del timeout in secondi nel campo. executionTimeoutSeconds
Il generationContext
campo è mappato su un QueryGenerationContextoggetto in cui è possibile configurare tutte le opzioni seguenti necessarie.
Importante
Se si include un contesto di generazione, il motore di query fa del suo meglio per applicarlo durante la generazione di SQL. Il contesto di generazione non è deterministico e serve solo a migliorare la precisione del modello. Per garantire l'accuratezza, verificate le query SQL generate.
Per informazioni sui contesti di generazione che puoi includere, espandi le seguenti sezioni:
Per migliorare l'accuratezza della generazione di SQL per l'interrogazione del database, è possibile fornire una descrizione della tabella o della colonna che fornisca un contesto più approfondito rispetto a un nome breve di tabella o colonna. Puoi eseguire le operazioni indicate di seguito:
-
Per aggiungere una descrizione per una tabella, includete un QueryGenerationTableoggetto nell'
tables
array. In quell'oggetto, specificate il nome della tabella nelname
campo e una descrizione neldescription
campo, come nell'esempio seguente:{ "name": "database.schema.tableA", "description": "Description for Table A" }
-
Per aggiungere una descrizione per una colonna, includete un QueryGenerationTableoggetto nell'
tables
array. In quell'oggetto, specificate il nome della tabella nelname
campo e includete ilcolumns
campo, che corrisponde a una matrice di QueryGenerationColumn. In unQueryGenerationColumn
oggetto, includi il nome della colonna nelname
campo e una descrizione neldescription
campo, come nell'esempio seguente:{ "name": "database.schema.tableA", "columns": [ { "name": "Column A", "description": "Description for Column A" } ] }
-
È possibile aggiungere una descrizione sia per una tabella che per una colonna al suo interno, come nell'esempio seguente:
{ "name": "database.schema.tableA", "description": "Description for Table A", "columns": [ { "name": "columnA", "description": "Description for Column A" } ] }
Nota
Immettete i nomi delle tabelle e delle colonne secondo lo schema descritto in Interrogazioni tra database. Se il database è in AWS Glue Data Catalog, il formato è.
awsdatacatalog.gluedatabase.table
È possibile suggerire tabelle o colonne da includere o escludere durante la generazione di SQL utilizzando il inclusion
campo negli QueryGenerationColumnoggetti QueryGenerationTableand. È possibile specificare uno dei seguenti valori nel inclusion
campo:
-
INCLUDE: solo le tabelle o le colonne specificate vengono incluse come contesto durante la generazione di SQL.
-
ESCLUDI: le tabelle o le colonne specificate vengono escluse come contesto durante la generazione di SQL.
È possibile specificare se includere o escludere tabelle o colonne nei seguenti modi:
-
Per includere o escludere una tabella, includete un QueryGenerationTableoggetto nell'
tables
array. In quell'oggetto, specificate il nome della tabella nelname
campo e se includerla o escluderla nelinclusion
campo, come nell'esempio seguente:{ "name": "database.schema.tableA", "inclusion": "EXCLUDE" }
Il motore di query non aggiunge il
Table A
contesto aggiuntivo per la generazione di SQL. -
Per includere o escludere una colonna, includete un QueryGenerationTableoggetto nell'
tables
array. In quell'oggetto, specificate il nome della tabella nelname
campo e includete ilcolumns
campo, che corrisponde a una matrice di QueryGenerationColumn. In unQueryGenerationColumn
oggetto, includete il nome della colonna nelname
campo e se includerla o escluderla nelinclusion
campo, come nell'esempio seguente:{ "name": "database.schema.tableA", "columns": [ { "name": "database.schema.tableA.columnA", "inclusion": "EXCLUDE" } ] }
La generazione SQL lo
Column A
ignoraTable A
nel contesto durante la generazione di SQL. -
È possibile combinare tabelle e colonne quando si specificano inclusioni o esclusioni, come nell'esempio seguente:
{ "name": "database.schema.tableA", "inclusion": "INCLUDE", "columns": [ { "name": "database.schema.tableA.columnA", "inclusion": "EXCLUDE" } ] }
La generazione SQL include
Table A
, ma esclude alColumn A
suo interno, quando si aggiunge un contesto per la generazione di SQL.
Importante
Le esclusioni di tabelle e colonne non sostituiscono i guardrail. Queste inclusioni ed esclusioni di tabelle e colonne vengono utilizzate come contesto aggiuntivo per il modello da considerare durante la generazione di SQL.
Per migliorare la precisione di un motore di query nella conversione delle query degli utenti in query SQL, potete fornire degli esempi nel curatedQueries
campo dell'QueryGenerationContextoggetto, che corrisponde a una serie di oggetti. CuratedQuery Ogni oggetto include i seguenti campi:
-
NaturalLanguage: un esempio di query in linguaggio naturale.
-
sql — La query SQL che corrisponde alla query in linguaggio naturale.