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 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 abaixo de 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 Cloud de Confiance by S3NS 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 conversacional, o ponto final QueryData tem de ser usado na 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 consultas 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.

Os agentes e o contexto do agente podem ser criados nas regiões us-central1, us-east1, europe-west4 e asia-southeast1.

Modelos de consultas

Os modelos de consultas são um conjunto organizado de perguntas representativas em linguagem natural com as 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 de linguagem natural.
  • manifest: uma forma generalizada e gerada automaticamente da intenção.
  • parameterized_intent: um formulário do objetivo gerado automaticamente com base em modelos, 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 façam 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 gerado automaticamente com base em modelos, 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 Cloud SQL para SQL Server não é suportado.
  • 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?