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> )
Copy

Como especificar o objeto de configuração:

AI_SIMILARITY( <input1>, <input2>, <config_object> )
Copy

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

model

STRING

Para a entrada STRING, o padrão é 'snowflake-arctic-embed-l-v2'. Para a entrada IMAGE, o padrão é 'voyage-multimodal-3'

O modelo de incorporação usado para incorporação. Os valores suportados são:

  • 'snowflake-arctic-embed-l-v2'

  • 'nv-embed-qa-4'

  • 'multilingual-e5-large'

  • 'voyage-multilingual-2'

  • 'snowflake-arctic-embed-m-v1.5'

  • 'snowflake-arctic-embed-m'

  • 'e5-base-v2'

  • 'voyage-multimodal-3' (IMAGE)

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');
Copy

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!');
Copy

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'));
Copy

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;
Copy

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