Vista geral dos agentes de dados

Os agentes de dados permitem-lhe interagir com os dados na sua base de dados através da linguagem de conversa. Pode criar agentes de dados definindo o contexto para um conjunto de tabelas na sua base de dados, o que permite que os agentes de dados traduzam perguntas em linguagem natural em consultas precisas para os seus exemplos de utilização de destino.

O contexto são informações específicas da base de dados que permitem ao MDG gerar consultas com elevada precisão. O contexto inclui modelos e facetas (fragmentos) que ajudam o agente a compreender o esquema da base de dados e a lógica empresarial das suas aplicações.

As seguintes bases de dados são suportadas:

  • AlloyDB para PostgreSQL
  • Cloud SQL para MySQL
  • Cloud SQL para PostgreSQL
  • Spanner

Quando usar agentes de dados

Pode usar os agentes de dados para criar aplicações de dados conversacionais ideais para exemplos de utilização como:

  • Automatização do serviço de apoio ao cliente: processar consultas de grande volume, como "Onde está a minha encomenda?" ou "Qual é o meu saldo atual?".
  • Assistentes de compras de comércio eletrónico: ajudam os utilizadores a navegar em grandes catálogos de produtos com consultas de linguagem natural, como "Mostra-me calçado de corrida com um preço inferior a 100 €".
  • Sistemas de reserva: permitem que os utilizadores verifiquem a disponibilidade e reservem compromissos, voos ou serviços de refeições através de interfaces de chat.
  • Ferramentas de operações em campo: permitem que os funcionários em mobilidade consultem os níveis de inventário, a disponibilidade de peças ou os detalhes dos pedidos de serviço em tempo real.

Como funcionam os agentes de dados

Para criar aplicações baseadas em agentes eficazes, o agente tem de compreender a organização dos seus dados e a lógica de negócio. Faculta estas informações sob a forma de contexto do agente.

Define o contexto do agente em ficheiros que contêm objetos JSON para modelos e facetas. Cria estes ficheiros de contexto com a ajuda da CLI do Gemini. Em seguida, carrega o ficheiro de contexto para um agente de dados que cria na Google Cloud consola. Este processo permite que o agente aprenda o esquema específico da base de dados e a lógica de negócio da aplicação.

O ficheiro de contexto do agente tem um aspeto semelhante ao seguinte:

{
  "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"
      }
    }
  ],
  "fragments": [
    {
      "fragment": "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_fragment": "T.\"A11\" BETWEEN $1 AND $2"
      }
    }
  ]
}

Quando um utilizador final faz uma pergunta em linguagem natural, o agente dá prioridade à correspondência da pergunta com os modelos e as facetas que foram auditados pelo programador que organiza o contexto. Assim que o agente identifica uma correspondência, usa o modelo de consulta e os detalhes selecionados para sintetizar uma consulta de base de dados. Em seguida, o agente executa essa consulta na base de dados para devolver resultados precisos.

O ponto final QueryData na API Conversational Analytics é uma ferramenta de agente que permite a integração programática com as suas aplicações para ativar a geração de consultas SQL a partir de perguntas em linguagem natural. Numa aplicação de conversa, o ponto final QueryData tem de ser usado numa estrutura que gere o histórico e o contexto da conversa.

Contexto do agente

O contexto do agente consiste num conjunto organizado de modelos e facetas no formato JSON que orientam o agente na tradução de perguntas em linguagem natural em consultas para uma base de dados específica. A definição do contexto garante a geração de SQL de alta precisão para padrões de consulta comuns.

Certifique-se de que o contexto do agente é preciso e abrangente na sua cobertura de consultas de aplicações esperadas para maximizar a precisão.

Modelos de consultas

Os modelos de consultas são um conjunto organizado de perguntas representativas em linguagem natural com consultas SQL correspondentes. Também incluem explicações para fornecer uma justificação declarativa para a geração de linguagem natural para SQL.

Um objeto de modelo de consulta tem um aspeto semelhante ao seguinte:

{
  "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"
      }
    }
  ]
},
...

Os principais componentes do objeto JSON do modelo de consulta são os seguintes:

  • nl_query: um exemplo de uma consulta de linguagem natural que o agente de dados processa.
  • sql: a consulta SQL para a consulta em linguagem natural.
  • intent: o objetivo ou a finalidade da consulta de linguagem natural. Se não estiver definido, este valor é predefinido para a consulta em linguagem natural.
  • manifest: uma forma generalizada e gerada automaticamente da intenção.
  • parameterized_intent: um formulário do objetivo baseado em modelos e gerado automaticamente, com os valores das entidades substituídos por parâmetros.
  • parameterized_sql: um formulário com base em modelos gerado automaticamente da consulta SQL que corresponde à intenção parametrizada.

Atributos de consulta

As facetas de consulta são um conjunto organizado de condições de linguagem natural representativas com predicados SQL correspondentes. As facetas gerem a filtragem e as condições, o que permite que os modelos de consultas realizem pesquisas com facetas.

Um objeto de faceta de consulta (fragmento) tem um aspeto semelhante ao seguinte:

{
...
"fragments": [
    {
      "fragment": "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_fragment": "T.\"A11\" BETWEEN $1 AND $2"
      }
    }
  ]
}

Os principais componentes do objeto JSON do fragmento são os seguintes:

  • fragment: um predicado SQL.
  • intent: uma explicação do predicado SQL.
  • manifest: uma forma generalizada e gerada automaticamente da intenção.
  • parameterized_intent: um formulário do objetivo baseado em modelos e gerado automaticamente, com os valores das entidades substituídos por parâmetros.
  • parameterized_fragment: um formulário com base em modelos gerado automaticamente do fragmento que corresponde à intenção parametrizada.

Limitações

Os agentes de dados têm as seguintes limitações:

  • O contexto do agente para bases de dados só suporta modelos e facetas.
  • O contexto do agente para bases de dados só é usado pelo ponto final QueryData na API Conversational Analytics.

O que se segue?