- 类别:
:doc:`/sql-reference/functions-string`(AI 函数)
AI_COMPLETE(提示对象)¶
备注
AI_COMPLETE 是 COMPLETE (SNOWFLAKE.CORTEX) 的更新版本。要获得最新功能,请使用 AI_COMPLETE。
为提示对象生成响应(补全)。提示可以包含 FILE对象,其中可能包含图像或文档。
语法¶
该函数可以与位置或命名实参语法一起使用。
实参¶
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
对于图像输入,可以使用以下模型之一:
claude-4-opusclaude-4-sonnetclaude-3-7-sonnetclaude-haiku-4-5claude-sonnet-4-5claude-opus-4-5claude-sonnet-4-6claude-opus-4-6llama4-maverickllama4-scoutpixtral-largeopenai-o4-miniopenai-gpt-4.1openai-gpt-5openai-gpt-5-chatopenai-gpt-5-miniopenai-gpt-5-nanoopenai-gpt-5.1openai-gpt-5.2gemini-2.5-flashgemini-2.5-flash-litegemini-3-pro
对于文档输入,可以使用以下模型之一:
gemini-3-proclaude-4-opusclaude-4-sonnetclaude-3-7-sonnetclaude-haiku-4-5claude-sonnet-4-5claude-opus-4-5
受支持的模型可能会产生不同的 费用。
prompt提示 对象包含文本,以及图像或文档(可选)。
model_parameters 一个 对象,包含下列影响模型超参数的零个或多个选项。请参阅 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。
重要
如果您将 AI_COMPLETE 与提示对象一起使用,则无法提供 JSON 架构来获取结构化输出作为响应。
要获得结构化输出作为响应,请使用带 AI_COMPLETE(单字符串) 的 response_format 参数。有关使用结构化输出的更多信息,请参阅 AI_COMPLETE structured outputs。
示例¶
将多张图像作为输入传递¶
以下示例将两张图像作为输入传递给 AI_COMPLETE 函数,并询问两张图像是否都是猫的照片,从而比较这两张图像:
批量处理目录或表中的图像¶
要批量处理多个图像,对每个图像执行相同的操作,将图像文件存储在同一个暂存区。将 AI_COMPLETE 函数应用于表的每一行。
备注
该暂存区必须有一个 目录表 才能检索其文件的路径。
首先,通过从目录中检索图像位置,将其转换为 FILE 对象,并将生成的 FILE 对象存储在表列中来创建表。使用如下 SQL 语句:
然后,将 AI_COMPLETE 函数应用于包含 FILE 对象的列。以下示例对表中的每张图像进行了分类:
响应:
如果您已经有一个包含图像路径的表,则可以使用 TO_FILE 函数 在查询中构造 FILE 对象:
您也可以直接从暂存区的目录中检索要处理的图像,如下所示:
在表中提供图像和提示¶
要对表中的每张图像执行不同的操作,请在表中提供图像及其相应提示。在以下示例中,该表包含 img_path 列中每张图像的暂存区路径以及 prompt 列中的提示。
关于处理图像的使用说明¶
要处理多张图像,请在函数调用中指定一个提示对象,该对象定义提示模板和关联的图像文件。您可以使用 PROMPT 函数来创建此对象。提示模板可以包含编号占位符(` {0}`、
{1} ` 等),它们对应于提示对象中的图像。使用 :doc:/sql-reference/functions/to_file` 函数来指定提示对象中的文档文件。仅支持文本和图像。不支持视频和音频文件。
支持的图像格式:
.jpg.jpeg.png.gif.webp
pixtral和llama4模型也支持.bmp。大多数模型的最大图像大小为 10 MB,
claude模型的最大图像大小为 3.75 MB。claude模型不支持分辨率高于 8000x8000 的图像。包含图像的暂存区必须启用服务器端加密。不支持客户端加密暂存区。
该函数不支持自定义网络策略。
暂存区名称不区分大小写;路径区分大小写。
处理文档的使用说明¶
要处理多个文档,请在函数调用中指定一个提示对象,该对象定义提示模板和关联的文档文件。您可以使用 PROMPT 函数来创建此对象。提示模板可以包含编号占位符(
{0}、{1} ` 等),它们对应于提示对象中的文档。使用 :doc:/sql-reference/functions/to_file` 函数来指定提示对象中的文档文件。仅支持文本和文档。不支持视频和音频文件。
所有型号都支持以下格式:
.txt、.md和.pdf。Claude 模型还支持.txt、.md、.pdf、.doc、.docx、.xls、.xlsx、.csv和.xhtml。Claude 模型的最大文档大小为 4.5 MB。Gemini 3 Pro 的最大文档大小为 10 MB。
该函数不支持自定义网络策略。
暂存区名称不区分大小写;路径区分大小写。
