AI_SIMILARITY¶
Calcula uma pontuação de similaridade com base no valor de similaridade do vetor cosseno dos vetores de incorporação das entradas. Atualmente, ele oferece suporte ao cálculo de similaridade de texto e imagem.
Sintaxe¶
Como aplicar AI_SIMILARITY a entradas de cadeia de caracteres ou imagem:
AI_SIMILARITY( <input1>, <input2> )
Como especificar o objeto de configuração:
AI_SIMILARITY( <input1>, <input2>, <config_object> )
Argumentos¶
Obrigatório:
Se você estiver especificando cadeias de caracteres de entrada:
input1
,{input2}
As cadeias de caracteres com o texto que você está comparando e usando para calcular a pontuação de similaridade.
Se você estiver especificando imagens de entrada:
input1
,input2
Tipo de dados FILE referenciando as imagens a serem comparadas.
Nota
AI_SIMILARITY não oferece suporte ao cálculo da similaridade entre entradas de texto e imagem.
Opcional:
config_object
Um OBJECT contendo pares chave-valor usados para configurar o modelo.
Chave |
Tipo |
Padrão |
Descrição |
---|---|---|---|
|
Para a entrada STRING, o padrão é |
O modelo de incorporação usado para incorporação. Os valores suportados são:
|
Retornos¶
Retorna um valor flutuante no intervalo de -1 a 1 que representa a pontuação de similaridade calculada usando a similaridade vetorial entre dois vetores de incorporação para as entradas.
Requisitos de controle de acesso¶
Os usuários devem usar uma função que tenha a função do banco de dados SNOWFLAKE.CORTEX_USER. Consulte Privilégios obrigatórios para obter mais informações sobre esse privilégio.
Exemplos¶
AI_SIMILARITY: texto¶
Neste exemplo, a função está calculando uma pontuação de similaridade entre as duas entradas da instrução ‘Eu gostei do prato’
e ‘Esse prato é muito bom’
.
SELECT AI_SIMILARITY('I like this dish', 'This dish is very good');
Também podemos calcular a similaridade em colunas de texto.
SELECT
review
FROM restaurant_reviews
ORDER BY SNOWFLAKE.CORTEX.AI_SIMILARITY(review, 'I love the food here!');
AI_SIMILARITY: imagens¶
Neste exemplo, a função calcula uma pontuação de similaridade entre as duas imagens, cat.jpg
e 2cats.jpg
, armazenadas em um estágio Snowflake @file_stage
.
SELECT AI_SIMILARITY(TO_FILE('@file_stage', 'cat.jpg'), TO_FILE('@file_stage', '2cats.jpg'));
Também podemos calcular a similaridade entre as imagens usando a Snowflake Directory Table para o estágio que contém as imagens.
SELECT
to_file('@file_stage', relative_path)
FROM directory(@file_stage)
WHERE snowflake.cortex.ai_similarity(f, to_file(@file_stage, 'cat.jpg')) >= 0.5;
Limitações¶
As funções do Snowflake AI não são compatíveis com a atualização incremental dinâmica da tabela.
As funções do Snowflake AI não funcionam em FILEs criados a partir de arquivos de estágio dos seguintes tipos de estágio:
Estágios internos com modo de criptografia
TYPE = 'SNOWFLAKE_FULL'
Estágios externos com qualquer modo criptografado no lado do cliente:
TYPE = 'AWS_CSE'
TYPE = 'AZURE_CSE'
Estágio do usuário, estágio da tabela
Estágio com nomes entre aspas duplas