Visão geral do QueryData

Com o QueryData, você pode interagir com os dados no seu banco de dados usando linguagem de conversação e criar agentes de dados. O QueryData grava consultas para seu banco de dados usando conjuntos de contexto, que são coleções de código que contêm informações exclusivas sobre seu banco de dados. Esse contexto permite que o QueryData traduza perguntas em linguagem natural em consultas precisas para seus casos de uso de destino.

Quando usar QueryData

O QueryData é ideal para aplicativos como:

  • Automação de atendimento ao cliente: lide com consultas de alto volume, como "Onde está meu pedido?" ou "Qual é meu saldo atual?".
  • Assistentes de compras de e-commerce: ajudam os usuários a navegar por grandes catálogos de produtos com consultas em linguagem natural, como "Mostre tênis de corrida com menos de R$ 100".
  • Ferramentas de operações de campo: permitem que os funcionários móveis consultem níveis de inventário, disponibilidade de peças ou detalhes de tíquetes de serviço em tempo real.

Como o QueryData funciona

Para criar aplicativos de agente eficazes, o QueryData precisa entender a organização dos dados e a lógica de negócios. Você fornece essas informações na forma de um conjunto de contexto.

Você define o contexto em arquivos que contêm objetos JSON para cada tipo de contexto. Você cria esses arquivos de contexto com a ajuda da CLI do Gemini. Em seguida, faça upload do arquivo de contexto para um conjunto de contexto criado no console do Google Cloud. Esse processo permite que o QueryData aprenda o esquema específico do banco de dados e a lógica de negócios do aplicativo.

O arquivo de contexto é semelhante a este:

O arquivo de contexto do agente é semelhante a este:

{
  "templates": [
    {
      "nl_query": "Count prague loan accounts",
      "sql": "SELECT COUNT(T1.account_id) FROM bird_dev_financial.account AS T1 INNER JOIN bird_dev_financial.loan AS T2 ON T1.account_id = T2.account_id INNER JOIN bird_dev_financial.district AS T3 ON T1.district_id = T3.district_id WHERE T3.\"A3\" = 'Prague'",
      "intent": "How many accounts associated with loans are located in the Prague region?",
      "manifest": "How many accounts associated with loans are located in a given city?",
      "parameterized": {
        "parameterized_intent": "How many accounts associated with loans are located in $1",
        "parameterized_sql": "SELECT COUNT(T1.account_id) FROM bird_dev_financial.account AS T1 INNER JOIN bird_dev_financial.loan AS T2 ON T1.account_id = T2.account_id INNER JOIN bird_dev_financial.district AS T3 ON T1.district_id = T3.district_id WHERE T3.\"A3\" = $1"
      }
    }
  ],
  "facets": [
    {
      "sql_snippet": "T.\"A11\" BETWEEN 6000 AND 10000",
      "intent": "Average salary between 6000 and 10000",
      "manifest": "Average salary between a given number and a given number",
      "parameterized": {
         "parameterized_intent": "Average salary between $1 and $2",
         "parameterized_sql_snippet": "T.\"A11\" BETWEEN $1 AND $2"
      }
    }
  ]
}

Quando um usuário final faz uma pergunta em linguagem natural, o QueryData prioriza a correspondência da pergunta com os modelos e aspectos que foram auditados pelo desenvolvedor que selecionou o contexto. Depois que o QueryData identifica uma correspondência, ele usa o modelo de consulta e os atributos selecionados para sintetizar uma consulta de banco de dados. A lógica do conjunto de contexto executa essa consulta no banco de dados para retornar resultados precisos.

Uma etapa recomendada é definir pesquisas de valor no seu contexto. Com as pesquisas de valor, o agente pode mapear frases de valor para valores específicos armazenados nas colunas do banco de dados. Isso embasa o LLM nos seus dados reais, ajudando a resolver ambiguidades, como se um termo se refere a um nome de District ou a um City.

Se o agente não encontrar um modelo correspondente, ele usará pesquisas de valor para mapear frases em linguagem natural a valores específicos armazenados nas colunas do banco de dados. Isso embasa o LLM nos seus dados reais, ajudando a resolver ambiguidades, como se um termo se refere a um District, Name ou City.

O endpoint QueryData na API Análises de conversação é uma ferramenta agêntica que permite a integração programática com seus aplicativos para ativar a geração de consulta SQL com base em perguntas em linguagem natural. Em um aplicativo de conversa, o endpoint QueryData precisa ser usado na estrutura que gerencia o histórico e o contexto da conversa.

A seguir