AI_COMPLETE

AI_COMPLETE
AI_COMPLETE
是云器 Lakehouse 平台中用于生成式 AI 任务的核心标量函数,允许用户在 SQL 环境中直接调用大语言模型(LLM),根据文本提示或多模态输入生成响应,从而完成文本补全、翻译、情感分析、代码生成及复杂推理等任务。

云器将 AI 计算下沉至存储层与执行引擎,数据在平台内部即可完成智能处理,无需流转至外部环境,在保障数据安全的同时大幅降低任务延迟。


语法

AI_COMPLETE
AI_COMPLETE
支持两种调用形式:

文本模式

-- 使用工作区默认模型(推荐) ai_complete(<prompt> [, json '{}']) -- 或手动指定连接 ai_complete('<connection>:<model>', <prompt> [, json '{}'])

图像模式

ai_complete('<connection>:<model>', (<prompt> AS prompt, <image_url> AS image) [, json '{}'])


参数说明

model(可选)

指定要调用的语言模型。从 2026 年 9 月起,该参数可以省略——模型通过工作区默认模型自动路由,无需在每次调用时显式传入。

省略 model 参数时调用方式最简洁:

SELECT ai_complete('请简要介绍量子计算的基本原理。');

工作区默认模型可通过以下方式配置:

方式一:创建新工作区时开启开关(推荐)

2026 年 9 月起新建的工作区,在创建时打开 "启用 AI Function" 开关,系统将自动配置默认模型,调用时无需传入 model 参数。对于此之前创建的工作区,需通过下方方式手动配置。

方式二:工作区级别 ALTER WORKSPACE 配置

通过

ALTER WORKSPACE
ALTER WORKSPACE
设置工作区默认模型,对所有使用该工作区的 session 生效:

ALTER WORKSPACE <workspace_name> SET PROPERTIES ( 'cz.sql.ai.complete.default.model' = '<connection>:<model>' ); SELECT ai_complete('请简要介绍量子计算的基本原理。');

方式三:会话级 SET 覆盖

在当前会话中临时指定默认模型,优先级高于工作区属性,仅当前 session 生效:

SET cz.sql.ai.complete.default.model=conn_bailian:qwen/qwen3.6-flash; SELECT ai_complete('请简要介绍量子计算的基本原理。');

方式四:API Connection 连接对象

通过

CREATE API CONNECTION
CREATE API CONNECTION
创建连接对象后,在调用时显式传入:

CREATE API CONNECTION conn_bailian TYPE ai_function PROVIDER = 'bailian' BASE_URL = 'https://dashscope.aliyuncs.com/api/v1' API_KEY = 'sk-xxxxxxxxxxxxxxxxxxxxxxxx'; SELECT ai_complete('conn_bailian:qwen3.5-plus', '请简要介绍量子计算的基本原理。');

CREATE API CONNECTION
CREATE API CONNECTION
各字段说明:

字段说明
TYPE
TYPE
固定为
ai_function
ai_function
PROVIDER
PROVIDER
模型供应商标识,如
'bailian'
'bailian'
'openai'
'openai'
'anthropic'
'anthropic'
BASE_URL
BASE_URL
模型服务的 API 基础地址
API_KEY
API_KEY
调用服务所需的认证密钥

prompt(必需)

待发送给模型的输入内容,为字符串类型。

文本模式:直接传入字符串:

SELECT ai_complete('用一句话解释什么是向量数据库');

支持通过

CONCAT
CONCAT
||
||
拼接动态内容:

SELECT ai_complete( CONCAT('用20字总结以下文本:', content) ) AS summary FROM articles;

图像模式:使用具名元组语法,同时传入文本提示和图像 URL:

SELECT ai_complete( 'conn_bailian:doubao-seed-2-0-pro-260215', ('图片中有什么?' AS prompt, GET_PRESIGNED_URL(USER VOLUME, 'images/product.jpg', 36000) AS image) );


options(可选)

使用

json '{}'
json '{}'
字面量语法传入,控制输出格式、执行行为和模型参数:

输出格式控制

参数键类型默认值说明
output.behavior
output.behavior
STRING
formatted_json
formatted_json
输出格式:
formatted_json
formatted_json
/
raw_string
raw_string
/
fail_on_error
fail_on_error

三种输出模式对比:

模式成功输出错误输出适用场景
formatted_json
formatted_json
{"value":"模型输出"}
{"value":"模型输出"}
{"value":"","error_message":"..."}
{"value":"","error_message":"..."}
生产环境默认,结构化输出便于下游解析
raw_string
raw_string
原始字符串NULL兼容旧行为,应急使用
fail_on_error
fail_on_error
原始字符串抛异常,整个 job 失败严格模式,不容忍单行错误

-- formatted_json(默认) SELECT ai_complete('Hello', json '{"output.behavior":"formatted_json"}'); -- 结果: {"value":"Hello! How can I help you today?"} -- raw_string SELECT ai_complete('Hello', json '{"output.behavior":"raw_string"}'); -- 结果: Hello! How can I help you today? -- fail_on_error SELECT ai_complete('Hello', json '{"output.behavior":"fail_on_error"}'); -- 结果(成功时同 raw_string): Hello! How can I help you today?

output.behavior
output.behavior
输入兼容性(大小写不敏感,
_
_
.
.
-
-
等价):

输入值解析结果
formatted_json
formatted_json
/
formatted.json
formatted.json
/
json
json
FORMATTED_JSON
raw_string
raw_string
/
raw.string
raw.string
/
raw
raw
RAW_STRING
fail_on_error
fail_on_error
/
fail.on.error
fail.on.error
/
fail-on-error
fail-on-error
/
fail
fail
FAIL_ON_ERROR

模型参数

参数键类型说明
model.params.temperature
model.params.temperature
FLOAT输出随机性,范围 [0, 2],越低越确定
model.params.max_tokens
model.params.max_tokens
INT最大输出 token 数
model.params.top_p
model.params.top_p
FLOAT核采样概率,范围 (0, 1]
model.params.enable_thinking
model.params.enable_thinking
BOOL是否开启 thinking 模式,批量处理建议设为
false
false

运行时参数

参数键类型默认值说明
task.concurrency
task.concurrency
STRING
"1"
"1"
批量处理并发度,上限 128(建议不超过 8)
response.timeout
response.timeout
STRING-单次请求超时时间(秒),如
"60"
"60"

-- 关闭 thinking 模式 + 控制并发 SELECT ai_complete( question, json '{"model.params":{"enable_thinking":false},"task.concurrency":"5"}' ) AS answer FROM questions;


返回值

返回 STRING 类型,具体格式取决于

output.behavior
output.behavior
设置:

  • formatted_json
    formatted_json
    (默认):返回
    {"value":"模型输出"}
    {"value":"模型输出"}
    格式的 JSON 字符串
  • raw_string
    raw_string
    /
    fail_on_error
    fail_on_error
    :返回模型输出的原始字符串

异常情况:

  • prompt 为
    NULL
    NULL
    或空字符串时,返回
    NULL
    NULL
  • endpoint 不存在时,报错
    CZLH-67000: No available endpoints found
    CZLH-67000: No available endpoints found
  • model 格式错误(无正确的前缀)时,报错
    CZLH-65000: Invalid model coordinates
    CZLH-65000: Invalid model coordinates

使用示例

基础文本补全(省略 model 参数)

SELECT ai_complete('中国的首都在哪里?') AS result;

批量处理表中数据

SELECT id, ai_complete( question, json '{"output.behavior":"raw_string","model.params":{"enable_thinking":false},"task.concurrency":"5"}' ) AS answer FROM questions;

CONCAT 动态拼接 prompt

SELECT product_id, ai_complete( CONCAT('请为以下商品写一段30字以内的卖点描述:', product_name) ) AS selling_point FROM products;

指定连接和模型

SELECT ai_complete( 'cz_ai_function_llm_demo_test:qwen/qwen3.6-flash', '中国的首都在哪里?' ) AS result;

三种输出模式对比

-- 结构化输出(生产推荐) SELECT ai_complete( '用一句话介绍量子计算', json '{"output.behavior":"formatted_json"}' ) AS result; -- 原始文本输出 SELECT ai_complete( '用一句话介绍量子计算', json '{"output.behavior":"raw_string"}' ) AS result;

图像描述

SELECT ai_complete( 'conn_bailian:doubao-seed-2-0-pro-260215', ('图片中有什么?' AS prompt, GET_PRESIGNED_URL(USER VOLUME, 'images/product.jpg', 36000) AS image) ) AS result;

与其它 AI 函数组合

-- AI_COMPLETE 生成文本 → AI_CLASSIFY 分类 SELECT ai_classify( ai_complete('写一条关于科技的新闻标题'), ARRAY('科技', '体育', '金融', '娱乐') ) AS category;


注意事项

  • 模型选择:图像模式必须使用支持多模态的模型(如
    doubao-seed-2-0-pro-260215
    doubao-seed-2-0-pro-260215
    )。纯文本模型不支持图像输入,传入图像时不报错但会忽略图片内容,仅根据文本 prompt 生成响应。
  • model 参数可省略:通过工作区开关(新工作区)、
    ALTER WORKSPACE
    ALTER WORKSPACE
    或会话级
    SET
    SET
    配置
    cz.sql.ai.complete.default.model
    cz.sql.ai.complete.default.model
    后,调用时无需传 model 参数,系统自动路由至默认模型。
  • output.behavior 推荐:生产环境推荐使用默认
    formatted_json
    formatted_json
    模式,便于下游解析;仅当需要兼容旧行为或追求极致简洁输出时使用
    raw_string
    raw_string
  • Thinking 模式:qwen3 系列模型默认开启 thinking 模式,会增加延迟和 token 消耗。批量处理场景建议通过 options 关闭:
    json '{"model.params":{"enable_thinking":false}}'
    json '{"model.params":{"enable_thinking":false}}'
  • 图像字段不可为 NULL:图像模式中
    image
    image
    字段传入 NULL 会报错
    invalid type of image field: void
    invalid type of image field: void
    ,需确保
    GET_PRESIGNED_URL()
    GET_PRESIGNED_URL()
    返回有效 URL。
  • NULL 与空字符串:prompt 为
    NULL
    NULL
    或空字符串时均返回
    NULL
    NULL
    ,不报错。
  • 错误码说明:endpoint 不存在报
    CZLH-67000
    CZLH-67000
    ;model 格式错误(缺少正确的连接前缀)报
    CZLH-65000
    CZLH-65000
  • Token 限制:不同模型有不同的上下文窗口限制,超出限制的输入会被截断或报错,处理长文本时注意控制输入长度。
  • 性能优化:批量处理场景建议设置
    task.concurrency
    task.concurrency
    提升吞吐量(建议值 4~8),并关闭 thinking 模式减少延迟。
联系我们
预约咨询
微信咨询
电话咨询
邮件咨询