- 카테고리:
문자열 및 이진 함수 (AI 함수)
COMPLETE (SNOWFLAKE.CORTEX) (멀티모달)¶
참고
AI_COMPLETE 는 이 함수의 최신 버전입니다. 최신 기능의 경우 AI_COMPLETE 를 참조하십시오. COMPLETE (SNOWFLAKE.CORTEX) 를 계속 사용할 수 있습니다.
이미지와 프롬프트가 주어지면 언어 모델을 사용하여 응답(완료)을 생성합니다. 이 함수 베리언트는 텍스트 모델과 함께 이미지 모델을 지원하며, 내부 Snowflake 스테이지 또는 외부 스테이지에 저장된 이미지를 처리합니다. COMPLETE 는 단일 이미지, 여러 이미지를 배치 방식으로 처리하거나 각 이미지에 동일하거나 다른 프롬프트를 적용하거나 단일 작업(예: 비교)에서 여러 이미지를 처리하는 데 사용할 수 있습니다.
구문¶
다음 중 하나를 사용하십시오.
SNOWFLAKE.CORTEX.COMPLETE(
'<model>', '<prompt>', <file_object>)
FROM <table>
SNOWFLAKE.CORTEX.COMPLETE(
'<model>', <prompt_object> )
FROM <table>
인자¶
model사용할 모델을 지정하는 문자열입니다. 다음 모델 중 하나를 지정합니다.
claude-3-5-sonnetpixtral-large
지원되는 모델마다 비용과 컨텍스트 윈도우가 다를 수 있습니다. 새로운 모델이 수시로 추가될 수 있습니다.
prompt이미지에 대한 질문이 포함되고 선택적으로 출력 형식을 지정하는 문자열(예: JSON)입니다. 이 인자 또는
prompt_object인자가 필요합니다.prompt_object번호가 매겨진 자리 표시자(
{0},\{1\}등)가 있는 문자열 프롬프트와 프롬프트에 삽입되는 하나 이상의 텍스트 또는 FILE 값이 포함된 SQL OBJECT 입니다. PROMPT 함수는 요구 사항이 있는 레이아웃으로 오브젝트를 만드는 편리한 방법입니다. 이 인자 또는prompt가 필요합니다.file_object처리할 이미지 파일이 포함된 FILE 오브젝트입니다. TO_FILE 함수를 사용하여 스테이지 경로에서 FILE 오브젝트를 생성합니다. 문자열 프롬프트를 사용할 때 필요합니다.
FROM table이미지 경로와 각 이미지에 대한 선택적 프롬프트가 포함된 테이블로, COMPLETE 로 한 번만 호출하면 이미지를 일괄 처리할 수 있습니다.
반환¶
언어 모델의 응답이 포함된 문자열입니다.
사용법 노트¶
컨텍스트 윈도우 제한을 초과하는 입력은 오류를 발생시킵니다. 컨텍스트 윈도우 제한을 초과하는 출력은 잘립니다.
여러 이미지를 처리하려면 프롬프트가 프롬프트 템플릿과 처리할 파일을 지정하는 오브젝트(일반적으로 PROMPT 함수를 사용하여 생성)여야 합니다.
텍스트와 이미지만 지원됩니다. 비디오 및 오디오 파일은 지원되지 않습니다.
파일 이름 확장자가
.jpg,.jpeg,.png,.gif,.webp인 이미지가 지원됩니다.pixtral-large는.bmp도 지원합니다.최대 이미지 크기는
pixtral-large의 경우 10 MB,claude-3-5-sonnet의 경우 3.75 MB 입니다. 또한claude-3-5-sonnet은 해상도가 8000x8000을 초과하는 이미지를 지원하지 않습니다.이미지가 포함된 스테이지에는 서버 측 암호화가 활성화되어 있어야 합니다. 클라이언트 측 암호화 스테이지는 지원되지 않습니다.
이 함수는 사용자 지정 네트워크 정책을 지원하지 않습니다.
스테이지 이름은 대/소문자를 구분하지 않지만 경로는 대/소문자를 구분합니다.
예¶
다음 예에서는 COMPLETE 함수의 기본 기능을 이미지와 함께 보여줍니다.
시각적 질문 답변¶
인플레이션율 차트는 데이터에 대한 질문에 답하는 데 사용됩니다.
SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
'Which country will observe the largest inflation change in 2024 compared to 2023?',
TO_FILE('@myimages', 'highest-inflation.png'));
응답:
Looking at the data, Venezuela will experience the largest change in inflation rates between 2023 and 2024.
The inflation rate in Venezuela is projected to decrease significantly from 337.46% in 2023 to 99.98% in 2024,
representing a reduction of approximately 237.48 percentage points. This is the most dramatic change among
all countries shown in the chart, even though Zimbabwe has higher absolute inflation rates.
이미지 분류¶
이 예에서는 단일 이미지에서 식별된 랜드마크를 분류합니다.
SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
'Classify the landmark identified in this image. Respond in JSON only with the landmark name.',
TO_FILE('@myimages', 'Seattle.jpg'));
응답:
{"landmark": "Space Needle"}
이미지에서 엔터티 추출¶
이 예제에서는 이미지에서 엔터티(오브젝트)를 추출하고 결과를 JSON 형식으로 반환합니다.
SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
'Extract the kitchen appliances identified in this image. Respond in JSON only with the identified appliances.',
TO_FILE('@myimages', 'kitchen.png'));
응답:
{
"appliances": [ "microwave","electric stove","oven","refrigerator" ]
}
디렉터리 또는 테이블에서 이미지 일괄 처리하기¶
여러 이미지를 일괄 처리하여 각각에 대해 동일한 작업을 수행하려면 이미지 파일을 같은 스테이지에 저장하십시오. COMPLETE 함수를 테이블의 각 행에 적용합니다.
참고
스테이지에는 파일 경로를 검색할 수 있는 디렉터리 테이블 이 있어야 합니다.
먼저, 디렉터리에서 이미지 위치를 검색하여 테이블을 만들고 이를 FILE 오브젝트로 변환한 후 결과물인 FILE 오브젝트를 테이블의 열에 저장합니다. 다음과 같은 SQL을 사용합니다.
CREATE TABLE image_table AS
(SELECT TO_FILE('@myimages', RELATIVE_PATH) AS img FROM DIRECTORY(@myimages));
그런 다음 FILE 오브젝트가 포함된 열에 COMPLETE 함수를 적용합니다. 다음 예에서는 테이블의 각 이미지를 분류합니다.
SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
PROMPT('Classify the input image {0} in no more than 2 words. Respond in JSON', img_file)) AS image_classification
FROM image_table;
응답:
{ "classification": "Inflation Rates" }
{ "classification": "beverage refrigerator" }
{ "classification": "Space Needle" }
{ "classification": "Modern Kitchen" }
{ "classification": "Pie Chart" }
{ "classification": "Economic Graph" }
{ "classification": "Persian Cat" }
{ "classification": "Labrador Retriever" }
{ "classification": "Jedi Cat" }
{ "classification": "Sleeping cat" }
{ "classification": "Persian Cat" }
{ "classification": "Garden Costume" }
{ "classification": "Floral Fashion" }
이미지 경로가 포함된 테이블이 이미 있는 경우 TO_FILE 함수 를 사용하여 쿼리 내에 FILE 오브젝트를 구성할 수 있습니다.
SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
PROMPT('Classify the input image {0} in no more than 2 words. Respond in JSON',
TO_FILE('@myimages', img_path)) AS image_classification
FROM image_table;
다음과 같이 스테이지의 디렉터리에서 처리할 이미지를 직접 검색할 수도 있습니다.
SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
PROMPT('Classify the input image {0} in no more than 2 words. Respond in JSON',
TO_FILE('@myimages', RELATIVE_PATH))) as image_classification
FROM DIRECTORY(@myimages);
테이블에 이미지 및 프롬프트 제공하기¶
테이블의 각 이미지에 대해 다른 작업을 수행하려면 테이블에 이미지와 해당 프롬프트를 제공하십시오. 다음 예제에서 테이블에는 img_path 열에 있는 각 이미지의 스테이지 경로와 prompt 열에 있는 프롬프트가 포함되어 있습니다.
SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
PROMPT('Given the input image {0}, {1}. Respond in JSON',
TO_FILE('@myimages', img_path), prompt) as image_result)
FROM image_table;
법적 고지¶
Snowflake AI 및 ML 섹션을 참조하십시오.