카테고리:

문자열 및 이진 함수 (대규모 언어 모델)

AI_FILTER

자유 형식 프롬프트 입력을 부울로 분류합니다. 현재 텍스트 및 이미지 필터링을 모두 지원합니다.

리전 가용성

다음 표에서는 텍스트와 이미지 모두에 AI_FILTER 함수를 사용할 수 있는 리전을 보여줍니다.

데이터 타입
AWS US 서부 2
(오리건)
AWS US 동부 1
(북부 버지니아)
AWS 유럽 중부 1
(프랑크푸르트)
AWS 유럽 서부 1
(아일랜드)
AWS AP 동남부 2
(시드니)
AWS AP 북동부 1
(도쿄)
Azure 동부 US 2
(버지니아)
Azure 서유럽
(네덜란드)
AWS
(리전 간)
TEXT

IMAGE

구문

AI_FILTER 를 입력 문자열에 적용:

AI_FILTER( <input> )
Copy

AI_FILTER 를 단일 이미지에 적용:

AI_FILTER( <predicate> , <input> )
Copy

PROMPT 함수 를 활용하여 텍스트와 이미지가 모두 포함된 여러 열에 AI_FILTER 적용:

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

인자

필수:

입력 문자열을 지정하는 경우:

input

분류할 텍스트가 포함된 문자열입니다.

하나의 파일을 필터링하는 경우:

predicate

입력된 파일을 TRUE 또는 FALSE 로 분류하는 지침이 포함된 문자열입니다.

file

predicate 에 지정된 지침에 따라 파일이 분류되는 열입니다. AI_FILTER 함수에 대한 입력으로 IMAGE FILE 을 사용할 수 있습니다.

PROMPT() 함수를 사용하여 입력 형식을 지정하는 경우:

특히 여러 파일 열이 있는 더 복잡한 프롬프트의 경우 PROMPT 함수 를 사용하여 input 을 만들 수 있습니다.

PROMPT() 함수는 문자열과 FILE 데이터 타입에서 모두 형식 지정을 지원합니다. 자세한 사용법은 섹션을 참조하십시오.

반환

문이 지정된 텍스트에 대해 TRUE 또는 FALSE 로 평가되는지 여부를 나타내는 부울 값을 반환합니다.

액세스 제어 요구 사항

사용자는 SNOWFLAKE.CORTEX_USER 데이터베이스 역할 이 부여된 역할을 사용해야 합니다. 이 권한에 대한 자세한 내용은 필수 권한 섹션을 참조하십시오.

사용법 노트

최적의 성능을 위해 다음 지침을 따르십시오.

  • AI_FILTER 로 전송된 열에 NULL 값이 포함되어 있지 않은지 확인하십시오.

  • 입력 문자열 또는 PROMPT() 인자에 영어 일반 텍스트를 사용합니다.

  • 입력 텍스트 지침에 대한 세부 정보를 입력합니다. 예를 들어 “만족하는 것 같습니다”와 같은 문 대신 “다음 지원 기록에서 고객이 만족하는 것 같습니다”를 사용하십시오.

  • 입력을 질문 형식으로 표현하는 것도 고려해 보십시오. 예를 들어 “다음 지원 기록에서 고객이 만족하는 것 같나요?”라고 질문할 수 있습니다.

AI_FILTER: 텍스트

문자열 상수에 대한 간단한 스칼라 부울 함수로 호출할 수 있습니다.

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

텍스트 열이 있는 지침을 CONCAT , || 하여 이 함수를 사용할 수 있습니다.

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

여러 열에 걸쳐 보다 쉽게 템플릿 형식을 지정할 수 있도록 Snowflake는 PROMPT 함수 를 제공하며, 예를 들면 다음과 같습니다.

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. |
+--------------------------+

AI_FILTER 의 품질을 평가하는 동안 여러 열에서 후보 조건자를 비교하는 것이 도움이 될 수 있습니다.

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   |
+-------------+-------+--------+

JOIN 과 함께 AI_FILTER 사용하기

AI_FILTER 와 JOIN 을 사용하여 AI 가 추론할 수 있는 자연어 프롬프트를 통해 두 테이블을 연결하는 식을 표현할 수 있습니다.

중요

AI_FILTER 함수를 사용하는 JOIN 작업을 수행할 때 JOIN 의 각 테이블은 500행을 초과할 수 없습니다.

더 큰 규모의 조인을 사용하려면 계정 관리자에게 문의하여 적응형 최적화 미리 보기 기능을 사용하도록 설정하십시오.

다음 예에서는 AI_FILTER 함수를 사용하여 RESUMES 테이블을 JOBS 테이블과 조인합니다.

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: 이미지

다음 예에서는 지침에 따라 이미지 파일을 필터링합니다.

지침 조건자와 이미지 파일 열을 제공하여 이미지를 필터링합니다.

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      |
+--------------------------+

제한 사항

  • Snowflake AI 함수는 동적 테이블 증분 새로 고침을 지원하지 않습니다.

  • 다음 스테이지 유형의 스테이지 파일로 만든 FILEs 에서는 Snowflake AI 함수가 작동하지 않습니다.

    • 암호화 모드 TYPE = 'SNOWFLAKE_FULL' 이 있는 내부 스테이지

    • 고객 측에서 암호화된 모드가 있는 외부 스테이지:

      • TYPE = 'AWS_CSE'

      • TYPE = 'AZURE_CSE'

    • 사용자 스테이지, 테이블 스테이지

    • 큰따옴표로 묶인 이름을 가진 스테이지