Categorias:

Funções de cadeia de caracteres e binários (Large Language Model)

AI_FILTER

Classifica entradas de prompt de forma livre em um booliano. Atualmente, oferece suporte à filtragem de texto e imagem.

Disponibilidade de região

A tabela a seguir mostra as regiões em que você pode usar a função AI_FILTER para texto e imagens:

Tipo de dados
AWS US West 2
(Oregon)
AWS US East 1
(N. Virginia)
AWS Europe Central 1
(Frankfurt)
AWS Europe West 1
(Ireland)
AWS AP Southeast 2
(Sidney)
AWS AP Northeast 1
(Tokyo)
Azure East US 2
(Virginia)
Azure West Europe
(Países Baixos)
AWS
(Entre regiões)
TEXT

IMAGE

Sintaxe

Como aplicar AI_FILTER a uma cadeia de caracteres de entrada:

AI_FILTER( <input> )
Copy

Como aplicar AI_FILTER a uma única imagem:

AI_FILTER( <predicate> , <input> )
Copy

Como aplicar AI_FILTER a várias colunas com texto e imagens, alavancando o Função PROMPT:

AI_FILTER( PROMPT('<template_string>',  <col_1>,  ) )
Copy

Argumentos

Obrigatório:

Se você estiver especificando uma cadeia de caracteres de entrada:

input

Uma cadeia de caracteres contendo o texto a ser classificado.

Se você estiver filtrando em um arquivo:

predicate

Uma cadeia de caracteres que contém as instruções para classificar a entrada do arquivo como TRUE ou FALSE.

file

A coluna pela qual o arquivo é classificado com base nas instruções especificadas em predicate. Você pode usar IMAGE FILE como uma entrada para a função AI_FILTER.

Se você estiver usando a função PROMPT() para formatar as entradas:

Para prompts mais complicados, especialmente com várias colunas de arquivos, você pode usar Função PROMPT para ajudar a criar um input.

A função PROMPT() é compatível com a formatação dos tipos de dados de cadeia de caracteres e FILE. Para obter detalhes sobre o uso, consulte Exemplos.

Retornos

Retorna um valor booliano que indica se a instrução é avaliada como TRUE ou FALSE para o texto especificado.

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.

Notas de uso

Para um desempenho ideal, siga estas diretrizes:

  • Certifique-se de que as colunas enviadas para AI_FILTER não contenham valores NULL.

  • Use texto simples em inglês para cadeia de caracteres de entrada ou para os argumentos de PROMPT().

  • Forneça detalhes sobre a instrução de texto de entrada. Por exemplo, em vez de uma instrução como “parece satisfeito”, use “Na transcrição de suporte a seguir, o cliente parece satisfeito”.

  • Considere a possibilidade de formular a entrada na forma de uma pergunta. Por exemplo, “Na seguinte transcrição de suporte, o cliente parece satisfeito?”

Exemplos

AI_FILTER: texto

Pode ser chamado como uma função booliana escalar simples em constantes de cadeia de caracteres.

SELECT AI_FILTER('Is Canada in North America?');
Copy
TRUE

Você pode CONCAT , || instruções com colunas de texto para usar essa função:

WITH reviews AS (
            SELECT 'Wow... Loved this place.' AS review
  UNION ALL SELECT 'The pizza is not good.'
)
SELECT * FROM reviews
WHERE AI_FILTER(CONCAT('The reviewer enjoyed the restaurant: ', review));
Copy

Para facilitar a formatação de modelos em várias colunas, o Snowflake fornece Função PROMPT; por exemplo:

WITH reviews AS (

SELECT 'Wow... Loved this place.' AS review
UNION ALL SELECT 'The pizza is not good.'
)
SELECT * FROM reviews
WHERE AI_FILTER(PROMPT('The reviewer enjoyed the restaurant: {0}', review));
Copy
+--------------------------+
| REVIEW                   |
|--------------------------+
| Wow... Loved this place. |
+--------------------------+

Ao avaliar a qualidade de AI_FILTER, pode ser útil comparar os predicados candidatos entre as colunas.

WITH country AS (
          SELECT 'Switzerland' AS country,
UNION ALL SELECT 'Korea'
),
region AS (
            SELECT 'Asia' AS region,
  UNION ALL SELECT 'Europe'
)
SELECT country,
      region,
      AI_FILTER(PROMPT('{0} is in {1}', country, region)) AS result
FROM country CROSS JOIN region ;
Copy
+-------------+-------+--------+
| COUNTRY     |REGION | RESULT |
|-------------+-------+--------+
| Switzerland |Europe | TRUE   |
|-------------+-------+--------+
| Switzerland | Asia  | FALSE  |
|-------------+-------+--------+
| Korea       |Europe | FALSE  |
+-------------+-------+--------+
| Korea       | Asia  | TRUE   |
+-------------+-------+--------+

Uso do AI_FILTER com um JOIN

Você pode usar o AI_FILTER com um JOIN para expressar a vinculação de duas tabelas com um prompt de linguagem natural que a AI pode usar para raciocinar.

Importante

Ao realizar operações de JOIN que utilizam a função AI_FILTER, cada tabela no JOIN não pode exceder 500 linhas.

Para permitir uniões em maior escala, entre em contato com o gerente da sua conta para ativar a versão preliminar da otimização adaptável.

O exemplo a seguir une a tabela RESUMES com a tabela JOBS usando um prompt com a função AI_FILTER.

SELECT *
FROM RESUMES
JOIN JOBS
ON AI_FILTER(PROMPT('Evaluate if this resume {0} fits this job description {1}', RESUME.contents, JOBS.jd));
Copy

AI_FILTER: imagens

Os exemplos a seguir filtram arquivos de imagem com base em uma instrução.

Filtre imagens fornecendo um predicado de instrução e a coluna do arquivo de imagem:

WITH pictures AS (
  SELECT
      TO_FILE(file_url) AS img
  FROM DIRECTORY(@file_stage)
)
SELECT
FL_GET_RELATIVE_PATH(img) AS file_path FROM pictures
WHERE AI_FILTER('Is this a picture of a cat?', img);
Copy
WITH pictures AS (
  SELECT
      TO_FILE(file_url) AS img
  FROM DIRECTORY(@file_stage)
)
SELECT
    FL_GET_RELATIVE_PATH(img) AS file_path FROM pictures
WHERE AI_FILTER(PROMPT('{0} is a cat picture', img));
Copy
+--------------------------+
|        FILE_PATH         |
|--------------------------+
|        2cats.jpg         |
+--------------------------+
|        cat1.png          |
+--------------------------+
|      orange_cat.jpg      |
+--------------------------+

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 no FILEs criado 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