Com a crescente importância da busca baseada em vetores em aplicações de IA como busca semântica, mecanismos de recomendação e processamento de linguagem natural, 4D introduz suporte nativo para consultas vetoriais na função query(). Essa melhoria traz comparações de similaridade de vetores diretamente para a linguagem de DataClass.query() e EntitySelection.query().
Consulta por semelhança de vetor
Agora é possível pesquisar entidades cujos campos vetoriais são semelhantes a um vetor de referência usando operadores de comparação familiares: >, >=, < e <=.
A sintaxe básica é:
// Call the OpenAI embeddings API to generate the vector for the input text
var $result:=$clientAI.embeddings.create("A general manager living in France"; $model)
Var $inputEmbedding:=$result.vector
var $results := ds.MyClass.query("myVectorField > :1"; {vector: $inputEmbedding})
Isso retorna entidades em que a similaridade com $myVector é maior do que o limite padrão (0,5), usando a métrica de similaridade padrão: similaridade de cosseno.
É possível ajustar sua pesquisa definindo explicitamente ambos:
-
Qual a métrica de similaridade mais relevante para o seu caso de utilização com o atributo de métrica
-
Qual a semelhança entre um resultado e o seu vetor de referência para ser considerado relevante com o atributo threshold
var $comparisonVector := {vector: $inputEmbedding; metric: mk cosine; threshold: 0.4}
var $results := ds.MyTable.query("myVectorField <= :1"; $comparisonVector)
COMBINANDO BUSCA SEMÂNTICA COM CONSULTA CLÁSSICA
Uma vantagem chave da abordagem de 4D é que consultas semânticas podem ser combinadas com filtros ORDA tradicionais na mesma consulta.
Isso permite criar buscas poderosas e precisas que combinam descoberta baseada em significado com critérios estruturados.
var $comparisonVector := {vector: $myVector; metric: mk cosine; threshold: 0.4}
var $results := ds.MyTable.query("myVectorField <= :1 AND salary>100000"; $comparisonVector)
Nesse exemplo, a consulta recupera empregados cujas descrições de trabalho são semanticamente próximas ao texto de entrada e cujo salário excede 100.000.
QUANDO UTILIZAR (E QUANDO NÃO UTILIZAR)
A Pesquisa Semântica (consulta) é ideal quando pretende que a sua aplicação compreenda o significado em vez de correspondências exactas.
É perfeita para:
-
Pesquisas difusas ou contextuais (por exemplo, “encontrar documentos semelhantes a este”)
-
Consultas em linguagem natural (por exemplo, “funcionários que trabalham em marketing e design”)
-
Motores de recomendação e funcionalidades de descoberta de conhecimentos
No entanto, não foi concebido para tarefas analíticas estruturadas.
Se a sua consulta for algo como “os 10 empregados mais bem pagos”, uma consulta clássica é mais rápida e mais adequada.
Combinando ambas as abordagens, é possível criar experiências de pesquisa inteligentes e precisas. A pesquisa semântica acrescenta um poder notável e combina perfeitamente com as consultas tradicionais baseadas em atributos ORDA.
Conclusão
Com a Busca Semântica (consulta) agora integrada em 4D, pode facilmente criar funcionalidades de busca e descoberta guiadas por IA em suas aplicações.
Selecione a métrica de similaridade que melhor se adequa ao seu caso de uso, ajuste o limite de relevância, e combine filtros semânticos e estruturados para resultados ótimos.
Esta nova capacidade traz o poder da compreensão baseada em IA diretamente para o seu modelo de dados 4D, abrindo a porta a consultas mais inteligentes e sensíveis ao contexto.
Atualmente, os campos vectoriais não são indexados, mas o suporte de indexação será introduzido numa versão futura de 4D. Esse aprimoramento futuro melhorará significativamente a performance e fará com que a Busca Semântica seja ainda mais rápida e eficiente para grandes conjuntos de dados.
