카테고리:

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

COMPLETE (SNOWFLAKE.CORTEX) (멀티모달)

중요

이 함수는 더 이상 사용되지 않습니다. 업데이트된 함수에 대한 자세한 내용은 AI_COMPLETE 섹션을 참조하십시오. Snowflake는 여전히 이 함수를 유지하지만 최상의 경험을 위해 업데이트된 함수를 사용하십시오.

이미지와 프롬프트가 주어지면 언어 모델을 사용하여 응답(완료)을 생성합니다. 이 함수 베리언트는 텍스트 모델과 함께 이미지 모델을 지원하며, 내부 Snowflake 스테이지 또는 외부 스테이지에 저장된 이미지를 처리합니다. COMPLETE 는 단일 이미지, 여러 이미지를 배치 방식으로 처리하거나 각 이미지에 동일하거나 다른 프롬프트를 적용하거나 단일 작업(예: 비교)에서 여러 이미지를 처리하는 데 사용할 수 있습니다.

구문

다음 중 하나를 사용하십시오.

SNOWFLAKE.CORTEX.COMPLETE(
    '<model>', '<prompt>', <file_object>)
FROM <table>
Copy
SNOWFLAKE.CORTEX.COMPLETE(
    '<model>', <prompt_object> )
FROM <table>
Copy

인자

model

사용할 모델을 지정하는 문자열입니다. 다음 모델 중 하나를 지정합니다.

  • claude-3-5-sonnet

  • pixtral-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 함수의 기본 기능을 이미지와 함께 보여줍니다.

시각적 질문 답변

인플레이션율 차트는 데이터에 대한 질문에 답하는 데 사용됩니다.

2023년 인플레이션율과 2024년 예상 인플레이션율을 보여주는 그래프

2023년과 2024년의 인플레이션율 비교(Statista)

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

응답:

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

응답:

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

응답:

{
    "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));
Copy

그런 다음 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;
Copy

응답:

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

다음과 같이 스테이지의 디렉터리에서 처리할 이미지를 직접 검색할 수도 있습니다.

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

테이블에 이미지 및 프롬프트 제공하기

테이블의 각 이미지에 대해 다른 작업을 수행하려면 테이블에 이미지와 해당 프롬프트를 제공하십시오. 다음 예제에서 테이블에는 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;
Copy