Testar QueryData no Bigtable Studio

Neste documento, descrevemos como testar o QueryData e atualizar o arquivo de conjunto de contexto. É 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 do 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 do conjunto de contexto foi enviado para o agente do QueryData. Para mais informações, consulte Gerenciar conjuntos de contexto no Bigtable Studio.

Para baixar, atualizar e fazer upload de arquivos de conjunto de contexto, verifique se o usuário do IAM tem o papel de Editor do Dataplex Catalog (roles/dataplex.catalogEditor) ou Administrador do Dataplex Catalog (roles/dataplex.catalogAdmin) no projeto. Para mais informações, consulte Permissões de conjuntos de contexto.

Testar QueryData

Para testar um QueryData, siga estas etapas:

  1. No console do Google Cloud , acesse a página do Bigtable.

    Acessar o Bigtable

  2. Selecione uma instância na lista.

  3. No menu de navegação, clique em Bigtable Studio.

  4. No painel Explorer, clique em Ver ações ao lado do conjunto de contexto que você está usando.

  5. Clique em Contexto de teste definido.

  6. No editor de consultas, clique em Gerar SQL usando o QueryData com: CONTEXT_SET_NAME para abrir o painel Me ajude com o código.

  7. Insira uma pergunta em linguagem natural no editor para gerar uma consulta SQL e clique em Gerar.

  8. Verifique se a consulta SQL está correta. Clique em Inserir para adicionar a consulta ao editor.

Fazer o download 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 o upload do arquivo de contexto atualizado para o agente.

Para baixar e atualizar um conjunto de contexto, siga estas etapas:

  1. No painel Explorer, clique em Ver ações ao lado do conjunto de contexto que você está usando.
  2. Clique em Baixar arquivo de contexto.
  3. Siga as etapas em Criar conjuntos de contexto usando o agente de engenharia de contexto para atualizar o contexto com mais pares de consulta.
  4. No painel Explorer, clique em Ver ações ao lado do conjunto de contexto que você está usando.
  5. Clique em Editar conjunto de contexto.
  6. Clique em Procurar na seção Fazer upload do arquivo de contexto e selecione o arquivo de conjunto de contexto atualizado.
  7. Clique em Salvar para atualizar o conjunto de contexto.

Quando estiver satisfeito com a precisão das respostas, use o endpoint QueryData para conectar o aplicativo ao conjunto de contexto.

Encontrar o ID do conjunto de contextos

Para conectar um aplicativo de dados ao agente QueryData, você precisa do ID do conjunto de contextos.

  1. No console do Google Cloud , acesse a página do Bigtable.

    Acessar o Bigtable

  2. Selecione uma instância na lista.

  3. No menu de navegação, clique em Bigtable Studio.

  4. No painel Explorer, clique em Ver ações ao lado do conjunto de contexto que você está usando.

  5. Clique em Editar conjunto de contexto.

  6. Anote o ID do contexto em ID do conjunto de contextos. O formato do ID do conjunto de contextos é semelhante a projects/PROJECT_ID/locations/LOCATION/contextSetGroups/GROUP_ID/contextSets/CONTEXT_SET_ID@v1.

Conectar o 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, Cloud SQL para PostgreSQL, Firestore e Bigtable. 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 bigtable_reference. O campo agent_context_reference.context_set_id é usado para vincular ao conjunto de contexto que contém o contexto que você criou.

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
  }
}

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.
      • bigtable_reference: obrigatório ao consultar o banco de dados. Esse campo muda de acordo com o banco de dados que você está consultando.
        • database_reference: especifica informações relacionadas à instância do Bigtable.
          • project_id: o ID do projeto ao qual a instância do Bigtable pertence.
          • instance_id: o ID da instância do Bigtable.
          • table_ids: opcional. Os IDs de tabela para definir o escopo do agente. Se não for definido, todas as tabelas na instância serão incluídas.
        • agent_context_reference: links para o contexto criado.
          • context_set_id: o ID completo do conjunto de contexto que contém o contexto criado. Por exemplo, projects/PROJECT_ID/locations/LOCATION/contextSetGroups/GROUP_ID/contextSets/CONTEXT_SET_ID@v1.
  • generation_options: 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

Veja um exemplo de resposta bem-sucedida de uma chamada 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."
}

A seguir