Neste documento, descrevemos como testar o QueryData e atualizar o arquivo de conjunto de contexto. Você pode 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 contexto.
Para saber mais sobre conjuntos de contexto, consulte Visão geral dos conjuntos de contexto.Antes de começar
Verifique se um conjunto de contexto já foi criado e se o arquivo dele foi enviado ao agente QueryData. Para mais informações, consulte Gerenciar conjuntos de contexto no Cloud SQL Studio.
Test QueryData
Para testar um QueryData, siga estas etapas:
No console Google Cloud , 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 contexto que você está usando.
Clique em Testar conjunto de contexto.
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 precisão da consulta SQL.
Baixar e atualizar um conjunto de contexto
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 contexto atual. Em seguida, revise e atualize o modelo de consulta e faça upload do arquivo de contexto atualizado para o agente.
Para fazer o download e atualizar um conjunto de contexto, siga estas etapas:
- No painel "Explorer", clique em Ver ações.
- Clique em Baixar arquivo de contexto.
- Siga as etapas em Criar contextos usando a CLI do Gemini para atualizar o contexto com mais pares de consultas.
- No painel Explorer, clique em Ver ações ao lado do conjunto de contexto que você está usando.
- Clique em Editar conjunto de contexto.
- Clique em Procurar na seção Fazer upload do arquivo de conjunto de contexto e selecione o arquivo atualizado.
- Clique em Salvar para atualizar o conjunto de contexto.
Depois de ficar satisfeito com a precisão das respostas, use o endpoint QueryData para conectar seu aplicativo ao conjunto de contexto.
Encontrar o ID do conjunto de contexto
Para conectar um aplicativo de dados ao agente QueryData, você precisa do ID do conjunto de contexto.
No console Google Cloud , 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 contexto que você está usando.
Clique em Editar conjunto de contexto.
Anote o ID do contexto em ID do conjunto de contexto. O formato do ID do conjunto de contexto é semelhante a
projects/data-agents-project/locations/us-east1/contextSets/bdf_pg_all_templates.
Conectar QueryData ao aplicativo
Defina o ID do conjunto de contexto 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 contexto, 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 vincular ao 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": "MYSQL" "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 de acordo com o banco de dados consultado.database_reference: especifica informações relacionadas à sua instância de banco de dados.engine: o mecanismo de banco de dados. Defina comoMYSQLpara instâncias do Cloud SQL.project_id: o ID do projeto da instância de 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 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 "true" para gerar e retornar os resultados da consulta.generate_natural_language_answer: opcional. Se definido como "true", gera uma resposta em linguagem natural.generate_explanation: opcional. Se definido como "true", gera uma explicação da consulta SQL.generate_disambiguation_question: opcional. Se definido como verdadeiro, gera perguntas de disambiguaçã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 contexto.
- Saiba como criar contextos usando a CLI do Gemini
- Saiba como gerenciar conjuntos de contexto no Cloud SQL Studio.