- 카테고리:
문자열 및 이진 함수 (AI 함수)
AI_COMPLETE (단일 문자열)¶
참고
AI_COMPLETE 은 COMPLETE (SNOWFLAKE.CORTEX) 의 업데이트된 버전입니다. 최신 기능의 경우 AI_COMPLETE 를 사용하십시오.
지원되는 언어 모델을 사용하여 텍스트 프롬프트에 대한 응답(완료)을 생성합니다.
구문¶
이 함수에는 2개의 필수 인자와 4개의 선택 인자가 있습니다. 이 함수는 위치 또는 명명된 인자 구문과 함께 사용할 수 있습니다.
단일 문자열 입력으로 AI_COMPLETE 사용
AI_COMPLETE(
<model>, <prompt> [ , <model_parameters>, <response_format>, <show_details> ] )
인자¶
model사용할 모델을 지정하는 문자열입니다. 다음 모델 중 하나를 지정합니다.
claude-4-opusclaude-4-sonnetclaude-3-7-sonnetclaude-3-5-sonnetdeepseek-r1gemma-7bjamba-1.5-minijamba-1.5-largejamba-instructllama2-70b-chatllama3-8bllama3-70bllama3.1-8bllama3.1-70bllama3.1-405bllama3.2-1bllama3.2-3bllama3.3-70bllama4-maverickllama4-scoutmistral-largemistral-large2mistral-7bmixtral-8x7bopenai-gpt-4.1openai-o4-minireka-corereka-flashsnowflake-arcticsnowflake-llama-3.1-405bsnowflake-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?');
테이블 열의 응답¶
다음 예에서는 content 열을 입력으로 사용하여 reviews 테이블의 각 행에 대한 응답을 생성합니다. 각 쿼리 결과에는 해당 리뷰에 대한 비평이 포함되어 있습니다.
SELECT AI_COMPLETE(
'mistral-large',
CONCAT('Critique this review in bullet points: <review>', content, '</review>')
) FROM reviews LIMIT 10;
팁
이 예에 표시된 것처럼, 프롬프트의 태그 지정을 사용하여 생성되는 응답의 종류를 제어할 수 있습니다. 팁은 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
}
);
응답은 언어 모델의 메시지와 기타 정보가 포함된 문자열입니다. model_parameters 인자에 지시된 대로 응답이 잘립니다.
"The unique pattern on a snowflake is"
상세 출력¶
다음 예에서는 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
);
응답은 모델의 메시지와 관련 세부 정보가 포함된 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
}
}
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)),
);
응답은 정형 응답 형식을 따르는 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
);
응답은 추가 추론 메타데이터가 포함된 정형 응답을 포함하는 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
}
}
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
);
응답은 추가 추론 메타데이터가 포함된 정형 응답을 포함하는 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
}
}