- 类别:
字符串和二进制函数 (AI Functions)
TRY_COMPLETE (SNOWFLAKE.CORTEX)¶
执行与 COMPLETE 函数相同的操作,但会返回 NULL,而不是在无法执行该操作时引发错误。
语法¶
SNOWFLAKE.CORTEX.TRY_COMPLETE( <model>, <prompt_or_history> [ , <options> ] )
实参¶
必填:
model指定要使用模型的字符串。指定以下值之一。
claude-4-opusclaude-4-sonnetclaude-3-7-sonnetclaude-3-5-sonnetdeepseek-r1llama3-8bllama3-70bllama3.1-8bllama3.1-70bllama3.1-405bllama3.3-70bllama4-maverickllama4-scoutmistral-largemistral-large2mistral-7bmixtral-8x7bopenai-gpt-4.1openai-o4-minisnowflake-arcticsnowflake-llama-3.1-405bsnowflake-llama-3.3-70b
受支持的模型可能会产生不同的 费用。
prompt_or_history用于生成补全的提示或对话历史记录。
如果
options不存在,给出的提示必须是字符串。如果
options存在,则实参必须是按时间顺序表示对话的对象的 数组。每个 对象 必须包含一个role键和一个content键。content值是提示或响应,具体取决于角色。角色必须是以下项之一。
role值
content值
'system'向语言模型提供的初始纯英文提示,为其提供响应风格的背景信息和说明。例如,“Respond in the style of a pirate.”。该模型不会根据系统提示生成回复。只能提供一个系统提示,如果存在,则必须是数组中的第一个。
'user'用户提供的提示。必须遵循系统提示(如果有)或助手响应。
'assistant'之前由语言模型提供的响应。必须遵循用户提示。过去的响应可用于提供有状态的对话体验;请参阅 使用说明。
可选:
options一个 对象,包含下列影响模型超参数的零个或多个选项。请参阅 LLM 设置 (https://www.promptingguide.ai/introduction/settings)。
temperature:一个从 0 到 1(含)的值,用于控制语言模型输出的随机性。温度越高(例如 0.7),输出就越多样和随机,而温度越低(例如 0.2),输出就越确定和集中。默认值:0
top_p:一个从 0 到 1(含)的值,用于控制语言模型的随机性和多样性,t通常用作temperature的替代项。不同的是,top_p限制模型输出的可能令牌集,而temperature影响每个步骤选择哪些令牌。默认值:0
max_tokens:设置响应中输出令牌的最大数量。数值小会导致响应截断。默认值:4096。最大允许值:8192
guardrails:使用 Cortex Guard 筛选来自语言模型的潜在不安全和有害的响应。TRUE 或 FALSE。默认:FALSE
response_format:响应应遵循的 JSON 架构 (https://json-schema.org/)。这是 SQL 子对象,不是字符串。如果未指定response_format,则响应是包含响应的字符串,或包含响应及其相关信息的序列化 JSON 对象。有关更多信息,请参阅 AI_COMPLETE structured outputs。
指定
options实参(即使它是空对象 ({})),它会影响解释prompt实参的方式和以及响应的格式。
返回¶
未指定 options 实参时,返回包含响应的字符串。
如果给定 options 实参,并且此对象包含 response_format 键,则返回符合指定 JSON 架构的 JSON 对象的字符串表示。
如果给定 options 实参,并且此对象 不 包含 response_format 键,则返回包含以下键的 JSON 对象的字符串表示。
"choices":模型响应的数组。(目前只提供一个响应。)每个响应都是一个包含"messages"键的对象,其值为模型对最新提示的响应。"created":生成响应时的 UNIX 时间戳(自 1970 年 1 月 1 日午夜以来的秒数)。"model":创建响应的模型的名称。"usage":记录此补全所消耗和生成的令牌数的对象。包括以下子键:"completion_tokens":生成的响应中的令牌数。"prompt_tokens":提示中的令牌数。"total_tokens":消耗的令牌总数,这是其他两个值的总和。
访问控制要求¶
Users must use a role that has been granted the SNOWFLAKE.CORTEX_USER database role. See Cortex LLM privileges for more information on this privilege.
使用说明¶
TRY_COMPLETE 不会保留从一个调用到下一个调用的任何状态。要使用 TRY_COMPLETE 函数提供有状态的对话式体验,请将对话中的所有先前用户提示和模型响应作为 prompt_or_history 数组的一部分进行传递(请参阅 聊天模型模板 (link removed))。请记住,每“轮”处理的令牌数量都会增加,费用也会按比例增加。
示例¶
以下示例在各种用例中使用 TRY_COMPLETE 函数。
生成单个响应¶
生成单个响应:
SELECT SNOWFLAKE.CORTEX.TRY_COMPLETE('snowflake-arctic', 'What are large language models?');
控制温度和令牌¶
此示例说明在单个响应中使用函数的 options 实参来控制推理超参数。请注意,在函数的这种形式中,提示必须以数组的形式提供,因为这种形式支持多个提示和响应。
SELECT SNOWFLAKE.CORTEX.TRY_COMPLETE(
'deepseek-r1',
[
{
'role': 'user',
'content': 'how does a snowflake get its unique pattern?'
}
],
{
'temperature': 0.7,
'max_tokens': 10
}
);
响应是包含来自语言模型的消息和其他信息的 JSON 对象。请注意,响应按照 options 实参的指示截断。
{
"choices": [
{
"messages": " The unique pattern on a snowflake is"
}
],
"created": 1708536426,
"model": "deepseek-r1",
"usage": {
"completion_tokens": 10,
"prompt_tokens": 22,
"total_tokens": 32
}
}
有关其他示例,请参阅 COMPLETE (SNOWFLAKE.CORTEX) 参考。
法律声明¶
请参阅 Snowflake AI 和 ML。