카테고리:

문자열 및 이진 함수 (AI 함수)

AI_COMPLETE (단일 문자열)

참고

AI_COMPLETE 은 COMPLETE (SNOWFLAKE.CORTEX) 의 업데이트된 버전입니다. 최신 기능의 경우 AI_COMPLETE 를 사용하십시오.

지원되는 언어 모델을 사용하여 텍스트 프롬프트에 대한 응답(완료)을 생성합니다.

구문

이 함수에는 2개의 필수 인자와 4개의 선택 인자가 있습니다. 이 함수는 위치 또는 명명된 인자 구문과 함께 사용할 수 있습니다.

단일 문자열 입력으로 AI_COMPLETE 사용

AI_COMPLETE(
    <model>, <prompt> [ , <model_parameters>, <response_format>, <show_details> ] )
Copy

인자

model

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

  • claude-4-opus

  • claude-4-sonnet

  • claude-3-7-sonnet

  • claude-3-5-sonnet

  • deepseek-r1

  • gemma-7b

  • jamba-1.5-mini

  • jamba-1.5-large

  • jamba-instruct

  • llama2-70b-chat

  • llama3-8b

  • llama3-70b

  • llama3.1-8b

  • llama3.1-70b

  • llama3.1-405b

  • llama3.2-1b

  • llama3.2-3b

  • llama3.3-70b

  • llama4-maverick

  • llama4-scout

  • mistral-large

  • mistral-large2

  • mistral-7b

  • mixtral-8x7b

  • openai-gpt-4.1

  • openai-o4-mini

  • reka-core

  • reka-flash

  • snowflake-arctic

  • snowflake-llama-3.1-405b

  • snowflake-llama-3.3-70b

지원되는 모델은 비용 이 다를 수 있습니다.

prompt

문자열 프롬프트

model_parameters

모델의 하이퍼 매개 변수에 영향을 미치는 다음 옵션 중 0개 이상이 포함된 오브젝트 입니다. LLM 설정 을 참조하십시오.

  • temperature: 언어 모델 출력의 임의성을 제어하는 0에서 1(포함) 사이의 값입니다. 온도가 높을수록(예: 0.7) 더 다양하고 무작위적인 출력이 생성되는 반면, 온도가 낮을수록(예: 0.2) 더 결정적이고 포커스가 맞춰진 출력이 생성됩니다.

    기본값: 0

  • top_p: 일반적으로 temperature 의 대안으로 사용되는 언어 모델의 임의성과 다양성을 제어하는 0에서 1(포함) 사이의 값입니다. top_p 는 모델이 출력할 가능성이 있는 토큰 세트를 제한하는 반면, temperature 는 각 단계에서 선택되는 토큰에 영향을 미친다는 것이 차이점입니다.

    기본값: 0

  • max_tokens: 응답의 최대 출력 토큰 수를 설정합니다. 값이 작으면 응답이 잘릴 수 있습니다.

    기본값: 4096 최대 허용 값: 8192

  • guardrails: Cortex Guard 를 사용하여 언어 모델에서 잠재적으로 안전하지 않고 유해한 응답을 필터링합니다. TRUE 또는 FALSE입니다.

    기본값: FALSE

response_format

다음 중 하나:

  • 응답이 따라야 하는 JSON 스키마 입니다. 이것은 문자열이 아닌 SQL 하위 오브젝트입니다. response_format 을 지정하지 않으면 응답은 응답이 포함된 문자열이거나 응답과 그에 대한 정보가 포함된 직렬화된 JSON 오브젝트입니다.

  • TYPE 키워드로 시작하는 SQL 유형의 정의입니다. 이 유형은 최상위 컨테이너 유형으로 OBJECT를 사용해야 하며, 이 OBJECT의 필드는 해당 JSON 필드 및 값에 매핑됩니다.

자세한 내용은 AI_COMPLETE 정형 출력 섹션을 참조하십시오.

show_details

응답과 그에 대한 정보가 포함된 직렬화된 JSON 오브젝트를 반환할지 여부를 나타내는 부울 플래그입니다.

반환

show_details 인자를 지정하지 않거나 FALSE 로 설정하고 response_format 을 지정하지 않거나 NULL 로 설정하면 응답이 포함된 문자열을 반환합니다.

show_details 인자를 지정하지 않거나 FALSE 로 설정하고 response_format 를 지정하는 경우 제공된 응답 형식에 따라 오브젝트를 반환합니다.

show_details 인자가 TRUE 로 설정되어 있고 response_format 을 지정하지 않은 경우 다음 키가 포함된 JSON 오브젝트를 반환합니다.

  • "choices": 모델의 응답 배열. (현재, 응답은 1개만 제공됩니다.) 각각의 응답은 최신 프롬프트에 대한 모델의 응답 값을 갖는 "messages" 키를 포함하는 오브젝트입니다.

  • "created": 응답이 생성된 시점의 UNIX 타임스탬프(1970년 1월 1일 자정 이후에 경과된 초).

  • "model": 응답을 생성한 모델의 이름.

  • "usage": 이 완성으로 소비되고 생성되는 토큰 수를 기록하는 오브젝트. 다음 하위 키를 포함합니다.

    • "completion_tokens": 생성된 응답의 토큰 수.

    • "prompt_tokens": 프롬프트의 토큰 수.

    • "total_tokens": 소비된 총 토큰 수로, 다른 두 값의 합입니다.

show_details 인자가 TRUE 로 설정되고 response_format 을 지정하는 경우 다음 키가 포함된 JSON 오브젝트를 반환합니다.

  • "structured_output": 지정된 응답 형식을 따르는 json 오브젝트입니다.

  • "created": 응답이 생성된 시점의 UNIX 타임스탬프(1970년 1월 1일 자정 이후에 경과된 초).

  • "model": 응답을 생성한 모델의 이름.

  • "usage": 이 완성으로 소비되고 생성되는 토큰 수를 기록하는 오브젝트. 다음 하위 키를 포함합니다.

    • "completion_tokens": 생성된 응답의 토큰 수.

    • "prompt_tokens": 프롬프트의 토큰 수.

    • "total_tokens": 소비된 총 토큰 수로, 다른 두 값의 합입니다.

단일 응답

단일 응답을 생성하려면 다음을 수행하십시오.

SELECT AI_COMPLETE('snowflake-arctic', 'What are large language models?');
Copy

테이블 열의 응답

다음 예에서는 content 열을 입력으로 사용하여 reviews 테이블의 각 행에 대한 응답을 생성합니다. 각 쿼리 결과에는 해당 리뷰에 대한 비평이 포함되어 있습니다.

SELECT AI_COMPLETE(
    'mistral-large',
        CONCAT('Critique this review in bullet points: <review>', content, '</review>')
) FROM reviews LIMIT 10;
Copy

이 예에 표시된 것처럼, 프롬프트의 태그 지정을 사용하여 생성되는 응답의 종류를 제어할 수 있습니다. 팁은 LLaMA 2 프롬프트 표시 가이드 를 참조하십시오.

모델 매개 변수 제어하기

다음 예에서는 응답을 제공하는 데 사용되는 model_parameters 를 지정합니다.

SELECT AI_COMPLETE(
    model => 'llama2-70b-chat',
    prompt => 'how does a snowflake get its unique pattern?',
    model_parameters => {
        'temperature': 0.7,
        'max_tokens': 10
    }
);
Copy

응답은 언어 모델의 메시지와 기타 정보가 포함된 문자열입니다. model_parameters 인자에 지시된 대로 응답이 잘립니다.

"The unique pattern on a snowflake is"
Copy

상세 출력

다음 예에서는 show_details 인자를 사용하여 추가적인 추론 세부 정보를 반환하는 방법을 보여줍니다.

SELECT AI_COMPLETE(
    model => 'llama2-70b-chat',
    prompt => 'how does a snowflake get its unique pattern?',
    model_parameters => {
        'temperature': 0.7,
        'max_tokens': 10
    },
    show_details => true
);
Copy

응답은 모델의 메시지와 관련 세부 정보가 포함된 JSON 오브젝트입니다. options 인자는 출력을 잘라내는 데 사용되었습니다.

{
    "choices": [
        {
            "messages": " The unique pattern on a snowflake is"
        }
    ],
    "created": 1708536426,
    "model": "llama2-70b-chat",
    "usage": {
        "completion_tokens": 10,
        "prompt_tokens": 22,
        "guardrail_tokens": 0,
        "total_tokens": 32
    }
}
Copy

JSON 응답 형식 지정하기

이 예에서는 함수의 response_format 인자를 통해 유형 리터럴을 제공하여 정형 응답을 반환하는 방법을 보여줍니다.

SELECT AI_COMPLETE(
    model => 'llama2-70b-chat',
    prompt => 'Extract structured data from this customer interaction note: Customer Sarah Jones complained about the mobile app crashing during checkout. She tried to purchase 3 items: a red XL jacket ($89.99), blue running shoes ($129.50), and a fitness tracker ($199.00). The app crashed after she entered her shipping address at 123 Main St, Portland OR, 97201. She has been a premium member since January 2024.',
    model_parameters => {
        'temperature': 0,
        'max_tokens': 4096
    },
    response_format => TYPE OBJECT(note OBJECT(items_count NUMBER, price ARRAY(STRING), address STRING, member_date STRING)),
);
Copy

응답은 정형 응답 형식을 따르는 JSON 오브젝트입니다.

응답:

{
    "note": {
        "address": "123 Main St, Portland OR, 97201",
        "items_count": 3,
        "member_date": "January 2024",
        "price": [
        "$89.99",
        "$129.50",
        "$199.00"
        ]
    }
}

유형 리터럴을 사용하여 세부 정보가 포함된 JSON 응답 형식 지정하기

이 예에서는 함수의 response_format 인자를 통해 유형 리터럴을 사용하여 :samp:`{show_details}`와 결합된 정형 응답을 반환해 추가 추론 정보를 얻는 방법을 보여줍니다.

SELECT AI_COMPLETE(
    model => 'llama3.3-70b',
    prompt => 'Extract structured data from this customer interaction note: Customer Sarah Jones complained about the mobile app crashing during checkout. She tried to purchase 3 items: a red XL jacket ($89.99), blue running shoes ($129.50), and a fitness tracker ($199.00). The app crashed after she entered her shipping address at 123 Main St, Portland OR, 97201. She has been a premium member since January 2024.',
    response_format => TYPE OBJECT(note OBJECT(items_count NUMBER, price ARRAY(STRING), address STRING, member_date STRING)),
    show_details => TRUE
);
Copy

응답은 추가 추론 메타데이터가 포함된 정형 응답을 포함하는 JSON 오브젝트입니다.

{
  "created": 1758755328,
  "model": "llama3.3-70b",
  "structured_output": [
    {
      "raw_message": {
        "note": {
          "items_count": 3,
          "price": [
            "$89.99",
            "$129.50",
            "$199.00"
          ]
        }
      },
      "type": "json"
    }
  ],
  "usage": {
    "completion_tokens": 49,
    "prompt_tokens": 100,
    "total_tokens": 149
  }
}
Copy

JSON 스키마를 사용하여 세부 정보가 포함된 JSON 응답 형식 지정하기

이 예에서는 함수의 response_format 인자를 통해 JSON 스키마를 사용하여 :samp:`{show_details}`와 결합된 정형 응답을 반환해 추가 추론 정보를 얻는 방법을 보여줍니다.

SELECT AI_COMPLETE(
    model => 'llama2-70b-chat',
    prompt => 'Extract structured data from this customer interaction note: Customer Sarah Jones complained about the mobile app crashing during checkout. She tried to purchase 3 items: a red XL jacket ($89.99), blue running shoes ($129.50), and a fitness tracker ($199.00). The app crashed after she entered her shipping address at 123 Main St, Portland OR, 97201. She has been a premium member since January 2024.',
    model_parameters => {
        'temperature': 0,
        'max_tokens': 4096
    },
    response_format => {
            'type':'json',
            'schema':{'type' : 'object','properties' : {'note':{'type':'object','properties':
            {'items_count' : {'type' : 'number'},'price': {'type':'array','items':{'type':'string'}}, 'address': {'type':'string'}, 'member_date': {'type':'string'}},'required':['items_count','price' ,'address', 'member_date']}}}
    },
    show_details => true
);
Copy

응답은 추가 추론 메타데이터가 포함된 정형 응답을 포함하는 json 오브젝트입니다.

{
    "created": 1758057115,
    "model": "mistral-large2",
    "structured_output": [
        {
        "raw_message": {
            "note": {
            "address": "123 Main St, Portland OR, 97201",
            "items_count": 3,
            "member_date": "January 2024",
            "price": [
                "$89.99",
                "$129.50",
                "$199.00"
            ]
            }
        },
        "type": "json"
        }
    ],
    "usage": {
        "completion_tokens": 76,
        "prompt_tokens": 100,
        "total_tokens": 176
    }
}