Este documento descreve como testar o QueryData e atualizar o arquivo de conjunto de contextos. É possível testar a capacidade do QueryData de gerar consultas SQL com base em perguntas em linguagem natural. Se uma consulta gerada não for precisa, atualize o arquivo de conjunto de contextos.
Para saber mais sobre conjuntos de contextos, consulte Visão geral dos conjuntos de contextos.Antes de começar
Verifique se um conjunto de contextos já foi criado e se o arquivo de conjunto de contextos foi enviado para o agente do QueryData. Para mais informações, consulte Gerenciar conjuntos de contextos no Cloud SQL Studio.
Testar o QueryData
Para testar um QueryData, siga estas etapas:
No Google Cloud console, acesse a página do Cloud SQL.
Selecione uma instância na lista.
No menu de navegação, clique em Cloud SQL Studio.
Faça login no Studio usando a autenticação do Identity and Access Management.
No painel Explorer, clique em Ver ações ao lado do conjunto de contextos que você está usando.
Clique em Testar conjunto de contextos.
No editor de consultas, clique em Gerar SQL para abrir o painel Me ajude com o código.
Insira uma pergunta em linguagem natural no editor para gerar uma consulta SQL e clique em Gerar.
Analise a consulta SQL para verificar a precisão.
Fazer o download e atualizar um conjunto de contextos
Se você não estiver satisfeito com a consulta SQL gerada para uma pergunta em linguagem natural, faça o download do arquivo de conjunto de contextos atual. Em seguida, revise e atualize o modelo de consulta e faça o upload do arquivo de contexto atualizado para o agente.
Para fazer o download e atualizar um conjunto de contextos, siga estas etapas:
- No painel Explorer, clique em Ver ações.
- Clique em Fazer o download do arquivo de contexto.
- Siga as etapas em Criar contextos usando a CLI do Gemini para atualizar o contexto com outros pares de consultas.
- No painel Explorer, clique em Ver ações ao lado do conjunto de contextos que você está usando.
- Clique em Editar conjunto de contextos.
- Clique em Procurar na seção Fazer upload do arquivo de conjunto de contextos e selecione o arquivo de conjunto de contextos atualizado.
- Clique em Salvar para atualizar o conjunto de contextos.
Depois de ficar satisfeito com a precisão das respostas, use o endpoint QueryData para conectar o aplicativo ao conjunto de contextos.
Encontrar o ID do conjunto de contextos
Para conectar um aplicativo de dados ao agente do QueryData, você precisa do ID do conjunto de contextos.
No Google Cloud console, acesse a página do Cloud SQL.
Selecione uma instância na lista.
No menu de navegação, clique em Cloud SQL Studio.
Faça login no Studio usando a autenticação do Identity and Access Management.
No painel Explorer, clique em Ver ações ao lado do conjunto de contextos que você está usando.
Clique em Editar conjunto de contextos.
Anote o ID do contexto em ID do conjunto de contextos. O formato do ID do conjunto de contextos é semelhante a
projects/data-agents-project/locations/us-east1/contextSets/bdf_pg_all_templates.
Conectar o QueryData ao aplicativo
Defina o ID do conjunto de contextos na chamada de método QueryData para fornecer contexto criado para fontes de dados de banco de dados, como AlloyDB, Spanner, Cloud SQL e Cloud SQL para PostgreSQL. Para mais informações, consulte Definir o contexto do agente de dados para fontes de dados de banco de dados.
Depois de testar o conjunto de contextos, você pode referenciar a fonte de dados do banco de dados na chamada QueryData.
Exemplo de solicitação QueryData com contexto criado
O exemplo a seguir mostra uma solicitação QueryData usando a fonte de dados do banco de dados cloud_sql_reference. O campo agent_context_reference.context_set_id é usado para criar um link para o contexto pré-criado armazenado no banco de dados.
{ "parent": "projects/context-set-project/locations/us-central1", "prompt": "How many accounts in the Prague region are eligible for loans?? A3 contains the data of region.", "context": { "datasource_references": [ { "cloud_sql_reference": { "database_reference": { "engine": "POSTGRESQL" "project_id": "context-set-project", "region": "us-central1", "instance_id": "context-set-primary", "database_id": "financial" }, "agent_context_reference": { "context_set_id": "projects/context-set-project/locations/us-east1/contextSets/bdf_pg_all_templates" } } } ] }, "generation_options": { "generate_query_result": true, "generate_natural_language_answer": true, "generate_disambiguation_question": true, "generate_explanation": true } }
O corpo da solicitação contém os seguintes campos:
prompt: a pergunta em linguagem natural do usuário final.context: contém informações sobre as fontes de dados.datasource_references: especifica o tipo de fonte de dados.cloud_sql_reference: obrigatório ao consultar o banco de dados. Esse campo muda com base no banco de dados que você está consultando.database_reference: especifica informações relacionadas à instância do banco de dados.engine: o mecanismo de banco de dados. Defina comoPOSTGRESQLpara instâncias do Cloud SQL.project_id: o ID do projeto da instância do banco de dados.region: a região da instância do Cloud SQL.instance_id: o ID da instância do Cloud SQL.database_id: o ID do banco de dados.
agent_context_reference: links para o contexto criado no banco de dados.context_set_id: o ID completo do conjunto de contextos do contexto armazenado no banco de dados. Por exemplo,projects/context-set-project/locations/us-east1/contextSets/bdf_gsql_gemini_all_templates.
generationOptions: configura o tipo de saída a ser gerada.generate_query_result: defina como verdadeiro para gerar e retornar os resultados da consulta.generate_natural_language_answer: opcional. Se definido como verdadeiro, gera uma resposta em linguagem natural.generate_explanation: opcional. Se definido como verdadeiro, gera uma explicação da consulta SQL.generate_disambiguation_question: opcional. Se definido como verdadeiro, gera perguntas de desambiguação se a consulta for ambígua.
Exemplo de resposta QueryData
Confira um exemplo de resposta bem-sucedida de uma chamada QueryData:
{
"generated_query": "-- Count the number of accounts in Prague that are eligible for loans\nSELECT\n COUNT(DISTINCT \"loans\".\"account_id\")\nFROM \"loans\"\nJOIN \"district\" -- Join based on district ID\n ON \"loans\".\"district_id\" = \"district\".\"district_id\"\nWHERE\n \"district\".\"A3\" = 'Prague'; -- Filter for the Prague region",
"intent_explanation": "The question asks for the number of accounts eligible for loans in the Prague region. I need to join the `district` table with the `loans` table to filter by region and count the distinct accounts. The `A3` column in the `district` table contains the region information, and I'll filter for 'Prague'. The `loans` table contains information about loans, including the `account_id` and `district_id`. I will join these two tables on their respective district IDs.",
"query_result": {
"columns": [
{
"name": "count"
}
],
"rows": [
{
"values": [
{
"value": "2"
}
]
}
],
"total_row_count": 1
},
"natural_language_answer": "There are 2 accounts in Prague that are eligible for loans."
}
A seguir
- Saiba mais sobre conjuntos de contextos.
- Aprenda a criar contextos usando a CLI do Gemini.
- Aprenda a gerenciar conjuntos de contextos no Cloud SQL Studio.