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
QueryDatana API Conversational Analytics.