Um conjunto de contexto é o conhecimento de domínio que alimenta o
QueryData.
Ele define como sua lógica de negócios funciona antes que o aplicativo seja lançado, para que o QueryData possa responder a perguntas em linguagem natural com quase 100% de precisão e baixa latência on-line.
Embora o contexto de domínio possa assumir várias formas, os conjuntos de contexto são compatíveis com três tipos de contexto especializados:
- Modelos de consulta: consultas SQL pré-aprovadas para perguntas comuns de negócios.
- Aspectos da consulta: filtros modulares, como "família iniciante" ou "vista para o mar", que se conectam dinamicamente aos modelos.
- Pesquisas de valor: pesquisas de entidade que mapeiam frases do usuário para valores exatos do banco de dados e resolvem ambiguidades.
Os seguintes bancos de dados são compatíveis:
- AlloyDB para PostgreSQL
- Cloud SQL para MySQL
- Cloud SQL para PostgreSQL
- Spanner
- Firestore com compatibilidade com o MongoDB
- Bigtable
O que são conjuntos de contexto
Você cria e otimiza conjuntos de contexto no momento do design usando o
agente de engenharia de contexto.
O agente de engenharia de contexto executa um comparativo de mercado de referência representativo em
QueryData, pontua os resultados e refina iterativamente
(hill-climbs)
seu conjunto de contexto. Em seguida, ele compara a versão final com um conjunto de teste de validação não visto para evitar overfitting e faz o upload automático do conjunto de contexto para oGoogle Cloud.
Combinar seu banco de dados com um conjunto de contexto selecionado oferece dois benefícios principais de produção:
- Acurácia de quase 100% que generaliza: os esquemas de banco de dados descrevem tabelas e colunas, mas não podem dizer a um modelo qual distância conta como "perto" ou qual classificação torna uma escola "boa". Os conjuntos de contexto fundamentam o QueryData nas regras de negócios verificadas da sua organização, enquanto os padrões parametrizados permitem que um conjunto de contexto compacto generalize variações de frases, combinações de filtros e valores de entidade.
- Execução on-line rápida e baixa latência: a engenharia de contexto move o raciocínio de esquema
caro para o tempo de design:
- Execução de correspondência de contexto com um conjunto de contexto: execução rápida de passagem única por meio de correspondência de modelo pré-compilado e pesquisas de valor indexado.
- Síntese zero-shot para consultas inesperadas sem modelos: leva de 2 a 3 vezes mais tempo porque o modelo precisa analisar os metadados do esquema e sintetizar o SQL no ambiente de execução.
- Análise aberta de agentes usando ferramentas SQL brutas: geralmente leva mais de 30 segundos devido a consultas de tentativa e erro em várias etapas e loops de correção de erros.
Tipos de contexto em um conjunto de contextos
No momento da execução, o QueryData combina os três tipos de contexto em uma única passagem. Por
exemplo, se um usuário perguntar:
"Encontre casas perto de boas escolas em Del Mar para uma família que está começando, com vista para o mar"
O QueryData resolve a solicitação em quatro etapas coordenadas:
- Um modelo de consulta fornece a estrutura de consulta principal para "casas perto de boas
escolas em
$1", aplicando regras de negócios para distância (até 3 km) e classificação da escola (5 ou melhor). - As facetas de consulta injetam filtros modulares para "família iniciante" (3 a 4 quartos, 2 ou mais banheiros) e "vista para o mar" (pesquisa de similaridade vetorial).
- Uma pesquisa de valor encontra
'Del Mar'na colunacities.city_namee verifica o tipo de conceito. - As explicações de intent são combinadas em uma explicação certificada retornada com os resultados da consulta: "Casas em Del Mar a até 3 km de escolas com classificação 5 ou melhor, com 3 a 4 quartos e vista para o mar".
Modelos de consulta
Os modelos de consulta são um conjunto selecionado de perguntas representativas em linguagem natural com as consultas SQL correspondentes. Eles também incluem explicações para fornecer uma justificativa certificada de como uma pergunta foi interpretada.
Por exemplo, se um usuário pedir a um aplicativo imobiliário: "Encontre casas perto de boas escolas em Del Mar", o esquema do banco de dados por si só não define qual distância é considerada "perto", qual classificação torna uma escola "boa" ou como classificar as propriedades correspondentes. Um modelo de consulta captura essa interpretação exata de negócios, como propriedades a menos de 3 km de uma escola com classificação 5 ou melhor, ordenadas por uma pontuação ponderada de classificação e proximidade, e a generaliza para qualquer cidade.
Os principais componentes de um modelo de consulta são os seguintes:
- Exemplo de pergunta em linguagem natural: uma pergunta representativa feita em inglês simples, como "Encontre casas perto de boas escolas em Del Mar".
- Exemplo de consulta SQL: a consulta SQL verificada que responde à pergunta de acordo com suas regras de negócios.
- Padrão de pergunta generalizado: um padrão gerado automaticamente com valores específicos substituídos por descrições genéricas, como "Encontrar casas perto de boas escolas em uma determinada cidade", usado para corresponder às perguntas recebidas em variações de frases.
- Explicação da intent: uma explicação certificada e em linguagem simples das regras de negócios aplicadas pela consulta, como "Encontrar casas em
$1a menos de 3 km de uma escola com classificação de pelo menos 5". - Consulta SQL parametrizada: a consulta SQL executável
correspondente à explicação da intent, usando parâmetros como
$1.
Facetas de consulta
As facetas de consulta são um conjunto selecionado de condições representativas de linguagem natural com predicados SQL correspondentes. As facetas gerenciam filtragem e condições, o que permite que os modelos de consulta realizem pesquisas facetadas sem exigir um modelo separado para cada combinação de filtro.
Por exemplo, um usuário pode ampliar "Encontre casas perto de boas escolas em Del Mar" com outras condições:
- "...para uma família que está começando", que é mapeado para um filtro SQL estruturado,
como
properties.bedrooms BETWEEN 3 AND 4 AND properties.bathrooms >= 2.0. - "...com vista para o mar", que
usa operadores de IA de banco de dados, como
ai.ifou pesquisa de similaridade vetorial (<=>), em colunas não estruturadas, comolisting_description,listing_image_embeddingsecustomer_reviews.
Os principais componentes de uma faceta de consulta são:
- Snippet SQL: a condição de filtro SQL reutilizável, como
properties.bedrooms BETWEEN 3 AND 4 AND properties.bathrooms >= 2.0. - Padrão de condição generalizado: o padrão de linguagem natural que corresponde ao atributo, como "Adequado para uma família iniciante".
- Explicação da intent: uma explicação certificada da condição de filtro, retornada como parte da justificativa geral da resposta.
- Snippet SQL parametrizado: o fragmento SQL executável correspondente à explicação da intent.
Valorizar as consultas de pesquisa
As consultas de pesquisa de valor
são consultas definidas pelo desenvolvedor que usam funções de correspondência, como correspondência exata,
similaridade de trigrama difuso ou pesquisa vetorial semântica, para encontrar valores e o
contexto deles em um banco de dados. O QueryData usa a vinculação de valores nesses resultados para
identificar quais
tabelas e colunas
contêm um valor correspondente, entender o tipo de conceito do valor, corrigir
erros de ortografia e detectar ambiguidade antes de executar o SQL.
Por exemplo, se um usuário pedir a um aplicativo imobiliário "as propriedades vendidas em Westwod no mês passado", um modelo somente de esquema poderá filtrar por `WHERE name = 'Westwod'` e não retornar resultados. As consultas de pesquisa de valor usam a correspondência aproximada para resolver o
erro de ortografia "Westwod" para o valor do banco de dados 'Westwood'. Além disso, se
'Westwood' existir em vários tipos de conceito no banco de dados, como
City, Municipality e Brokerage, a vinculação de valor detectará a ambiguidade para
que QueryData possa pedir ao usuário para esclarecer qual conceito ele quis dizer, em vez
de adivinhar.
Os principais componentes de uma consulta de pesquisa de valor são os seguintes:
- Consulta de pesquisa: uma consulta SQL parametrizada que usa
correspondência exata, similaridade de trigrama (
pg_trgm) ou pesquisa vetorial para encontrar um valor em uma coluna. - Tipo de conceito: um rótulo semântico, como
City,MunicipalityouBrokerage, que especifica o que o valor representa e qual coluna filtrar. - Descrição: uma breve descrição da lógica de pesquisa.
A seguir