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 Cloud de Confiance by S3NS. 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:

{
  "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": "employee.\"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": "employee.\"A11\" BETWEEN $1 AND $2"
      }
    }
  ],
  "value_searches": [
    {
      "query": "SELECT $value as value, 'accounts.account_type' as columns, 'Account Type' as concept_type, 0 as distance, '{}'::text as context FROM \"accounts\" T WHERE T.\"account_type\" = $value",
      "concept_type": "Account Type",
      "description": "Exact match for account types"
    }
   ]
}

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