- 카테고리:
문자열 및 이진 함수 (대규모 언어 모델)
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-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-gpt4.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 오브젝트입니다.자세한 내용은 AI_COMPLETE Structured Outputs 섹션을 참조하십시오.
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':'json',
'schema':{'type' : 'object','properties' : {'sentiment_categories':{'type':'array','items':{'type':'object','properties':
{'food_quality' : {'type' : 'string'},'food_taste': {'type':'string'}, 'wait_time': {'type':'string'}, 'food_cost': {'type':'string'}},'required':['food_quality','food_taste' ,'wait_time','food_cost']}}}}
}
);
응답은 정형 응답 형식을 따르는 JSON 오브젝트입니다.
응답:
{
"sentiment_categories": [
{
"food_cost": "negative",
"food_quality": "positive",
"food_taste": "positive",
"wait_time": "neutral"
}
]
}
자세한 출력이 포함된 JSON 응답 형식 지정하기¶
이 예에서는 함수의 response_format
인자를 사용하여 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' : {'sentiment_categories':{'type':'array','items':{'type':'object','properties':
{'food_quality' : {'type' : 'string'},'food_taste': {'type':'string'}, 'wait_time': {'type':'string'}, 'food_cost': {'type':'string'}},'required':['food_quality','food_taste' ,'wait_time','food_cost']}}}}
},
show_details => true
);
응답은 추가 추론 메타데이터가 포함된 정형 응답을 포함하는 JSON 오브젝트입니다.
{
"created": 1738683744,
"model": "mistral-large2",
"structured_output": [
{
"raw_message": {
"sentiment_categories": [
{
"food_cost": "negative",
"food_quality": "positive",
"food_taste": "positive",
"wait_time": "neutral"
}
]
},
"type": "json"
}
],
"usage": {
"completion_tokens": 60,
"prompt_tokens": 94,
"total_tokens": 154
}
}