- 카테고리:
문자열 및 이진 함수 (대규모 언어 모델)
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> )
AI_FILTER 를 단일 이미지에 적용:
AI_FILTER( <predicate> , <input> )
PROMPT 함수 를 활용하여 텍스트와 이미지가 모두 포함된 여러 열에 AI_FILTER 적용:
AI_FILTER( PROMPT('<template_string>', <col_1>, … ) )
인자¶
필수:
입력 문자열을 지정하는 경우:
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?');
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));
여러 열에 걸쳐 보다 쉽게 템플릿 형식을 지정할 수 있도록 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));
+--------------------------+
| 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 ;
+-------------+-------+--------+
| 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));
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);
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));
+--------------------------+
| FILE_PATH |
|--------------------------+
| 2cats.jpg |
+--------------------------+
| cat1.png |
+--------------------------+
| orange_cat.jpg |
+--------------------------+
제한 사항¶
Snowflake AI 함수는 동적 테이블 증분 새로 고침을 지원하지 않습니다.
다음 스테이지 유형의 스테이지 파일로 만든 FILEs 에서는 Snowflake AI 함수가 작동하지 않습니다.
암호화 모드
TYPE = 'SNOWFLAKE_FULL'
이 있는 내부 스테이지고객 측에서 암호화된 모드가 있는 외부 스테이지:
TYPE = 'AWS_CSE'
TYPE = 'AZURE_CSE'
사용자 스테이지, 테이블 스테이지
큰따옴표로 묶인 이름을 가진 스테이지