Questo documento descrive come testare QueryData e aggiornare il file del set di contesto. Puoi testare la capacità di QueryData di generare query SQL da domande in linguaggio naturale. Se una query generata non è accurata, puoi aggiornare il file del set di contesto.
Per scoprire di più sui set di contesto, consulta la panoramica dei set di contesto.Prima di iniziare
Assicurati che sia già stato creato un set di contesti e che il file del set di contesti sia stato caricato nell'agente QueryData. Per saperne di più, consulta Gestisci i set di contesto in Bigtable Studio.
Per scaricare, aggiornare e caricare i file dei set di contesto, assicurati che l'utente IAM disponga del ruolo Dataplex Catalog Editor (roles/dataplex.catalogEditor) o Dataplex Catalog Admin (roles/dataplex.catalogAdmin) nel progetto. Per saperne di più, consulta Autorizzazioni per i set di contesti.
Testa QueryData
Per testare un QueryData, segui questi passaggi:
Nella console Google Cloud , vai alla pagina Bigtable.
Seleziona un'istanza dall'elenco.
Nel menu di navigazione, fai clic su Bigtable Studio.
Nel riquadro Explorer, fai clic su Visualizza azioni accanto al set di contesto che stai utilizzando.
Fai clic su Set di contesti di test.
Nell'editor di query, fai clic su Genera SQL utilizzando QueryData con: CONTEXT_SET_NAME per aprire il riquadro Aiutami a programmare.
Inserisci una domanda in linguaggio naturale nell'editor per generare una query SQL e fai clic su Genera.
Controlla l'accuratezza della query SQL. Fai clic su Inserisci per aggiungere la query all'editor.
Scarica e aggiorna un set di contesti
Se non sei soddisfatto della query SQL generata per una domanda in linguaggio naturale, scarica il file del set di contesto esistente. Puoi quindi rivedere e aggiornare il modello di query e ricaricare il file di contesto aggiornato nell'agente.
Per scaricare e aggiornare un set di contesti, segui questi passaggi:
- Nel riquadro Explorer, fai clic su Visualizza azioni accanto al set di contesto che stai utilizzando.
- Fai clic su Scarica file di contesto.
- Segui i passaggi descritti in Crea set di contesti utilizzando l'agente di progettazione del contesto per aggiornare il contesto con altre coppie di query.
- Nel riquadro Explorer, fai clic su Visualizza azioni accanto al set di contesto che stai utilizzando.
- Fai clic su Modifica set di contesti.
- Fai clic su Sfoglia nella sezione Carica file di contesto e seleziona il file del set di contesti aggiornato.
- Fai clic su Salva per aggiornare il set di contesti.
Quando l'accuratezza delle risposte ti soddisfa, puoi utilizzare l'endpoint QueryData per connettere la tua applicazione al set di contesto.
Trova l'ID set di contesti
Per connettere un'applicazione di dati all'agente QueryData, devi avere l'ID del set di contesti.
Nella console Google Cloud , vai alla pagina Bigtable.
Seleziona un'istanza dall'elenco.
Nel menu di navigazione, fai clic su Bigtable Studio.
Nel riquadro Explorer, fai clic su Visualizza azioni accanto al set di contesto che stai utilizzando.
Fai clic su Modifica set di contesti.
Prendi nota dell'ID contesto in ID set di contesti. Il formato dell'ID del set di contesti è simile a
projects/PROJECT_ID/locations/LOCATION/contextSetGroups/GROUP_ID/contextSets/CONTEXT_SET_ID@v1.
Connetti QueryData all'applicazione
Imposta l'ID del set di contesto nella chiamata al metodo QueryData per fornire il contesto creato per le origini dati del database come AlloyDB, Spanner, Cloud SQL, Cloud SQL per PostgreSQL, Firestore e Bigtable. Per saperne di più, consulta
Definisci il contesto dell'agente per i dati per le origini dati del database.
Dopo aver testato il set di contesto, puoi fare riferimento all'origine dati del database nella chiamata QueryData.
Esempio di richiesta QueryData con contesto creato
L'esempio seguente mostra una richiesta QueryData che utilizza l'origine dati del database bigtable_reference. Il campo agent_context_reference.context_set_id viene utilizzato per collegare l'insieme di contesti che contiene il contesto creato da te.
POST https://geminidataanalytics.googleapis.com/v1beta/projects/context-set-project/locations/us-central1:queryData
{ "parent": "projects/context-set-project/locations/us-central1", "prompt": "List the names and ratings of all hotels located in London.", "context": { "datasource_references": { "bigtable_reference": { "database_reference": { "project_id": "context-set-project", "instance_id": "evalbench" }, "agent_context_reference": { "context_set_id": "projects/context-set-project/locations/us-central1/contextSets/hotels_bigtable_all_templates" } } } }, "generation_options": { "generate_query_result": true, "generate_natural_language_answer": true, "generate_disambiguation_question": true, "generate_explanation": true } }
Il corpo della richiesta contiene i seguenti campi:
prompt: la domanda in linguaggio naturale dell'utente finale.context: contiene informazioni sulle origini dati.datasource_references: specifica il tipo di origine dati.bigtable_reference: obbligatorio quando si esegue una query sul database. Questo campo cambia in base al database su cui stai eseguendo la query.database_reference: specifica le informazioni relative alla tua istanza Bigtable.project_id: l'ID progetto a cui appartiene l'istanza Bigtable.instance_id: l'ID istanza dell'istanza Bigtable.table_ids: (Facoltativo) Gli ID tabella a cui applicare l'ambito dell'agente. Se non viene impostato, vengono incluse tutte le tabelle nell'istanza.
agent_context_reference: Link al contesto creato.context_set_id: l'ID completo del set di contesti che contiene il contesto che hai creato. Ad esempio,projects/PROJECT_ID/locations/LOCATION/contextSetGroups/GROUP_ID/contextSets/CONTEXT_SET_ID@v1.
generation_options: configura il tipo di output da generare.generate_query_result: impostato su true per generare e restituire i risultati della query.generate_natural_language_answer: (Facoltativo) Se impostato su true, genera una risposta in linguaggio naturale.generate_explanation: (Facoltativo) Se impostato su true, genera una spiegazione della query SQL.generate_disambiguation_question: (Facoltativo) Se impostato su true, genera domande di disambiguazione se la query è ambigua.
Esempio di risposta QueryData
Ecco un esempio di risposta corretta da una chiamata QueryData:
{
"generatedQuery": "SELECT COUNT(*) FROM `hotels` WHERE CAST(cf['location'] AS STRING) = 'London'",
"intentExplanation": "count of hotels in London",
"queryResult": {
"columns": [
{
"name": "$col1",
"type": "int64_type:{}"
}
],
"rows": [
{
"values": [
{
"value": "2"
}
]
}
],
"totalRowCount": "1"
},
"naturalLanguageAnswer": "Based on the data, there are 2 hotels located in London."
}
Passaggi successivi
- Scopri di più sui set di contesti.
- Scopri come creare set di contesti utilizzando l'agente di progettazione del contesto.
- Scopri come gestire i set di contesto in Bigtable Studio.