跳到主要内容
Vane Data / API 参考

SQL ai_prompt

ai_prompt 只能用于 SQL SELECT 列表,并为每行输入生成一个文本、结构化结果或原始响应。

签名

query.sql
ai_prompt(
    prompt VARCHAR,
    return_format := NULL,
    system_message := NULL,
    provider := 'openai',
    model := NULL,
    return_raw_response := FALSE,
    on_error := 'raise',
    options := NULL
)


ai_prompt(prompt VARCHAR, image BLOB, ...)
ai_prompt(prompt VARCHAR, images BLOB[], ...)

媒体重载会在 prompt 后增加一个必填的位置参数,类型为 BLOB 或 BLOB[];后续命名参数不变。所选 Provider 和模型必须支持图像输入。原生 vLLM 只接受文本。

参数

参数SQL 类型说明默认值
promptVARCHAR逐行读取的文本输入必填
imageBLOB可选的第二个位置参数,表示一张图像—
imagesBLOB[]可选的第二个位置参数,表示多张图像—
return_format包含有效 JSON 的 VARCHAR、经隐式转换的 JSON,或 NULL用于原生结构化输出的 JSON SchemaNULL
system_messageVARCHAR 或 NULL系统指令NULL
providerVARCHAR已注册的 Provider'openai'
modelVARCHAR 或 NULL模型 IDNULL
return_raw_responseBOOLEAN把符合严格 JSON 语法的 Provider 响应作为 VARCHAR 返回FALSE
on_errorVARCHAR'raise' 或 'ignore''raise'
optionsSTRUCT 或 NULL文档列出的 PromptOptionsNULL

只有 prompt、image 和 images 可以读取行数据。Vane 会在准备查询时计算其他参数,因此这些参数不能依赖当前行。Provider 请求参数和执行设置放进 struct_pack(...)。只能使用文档中列出的选项;与 Provider 不兼容或疑似凭证的字段会在执行前被拒绝。

返回结果

没有 JSON Schema 时返回 VARCHAR。有效的 return_format 会在准备查询时确定原生 STRUCT 类型。设置 return_raw_response := TRUE 后始终返回符合严格 JSON 语法的 VARCHAR,即使同时提供了 JSON Schema。

示例

请通过 Vane 连接运行这条查询。该示例使用 OpenAI,因此需要先安装 vane-ai[openai],并在 worker 环境设置 OPENAI_API_KEY。

query.sql
SELECT
    id,
    text,
    ai_prompt(
        text,
        provider := 'openai',
        model := 'gpt-4o-mini',
        system_message := 'Summarize the support request in one sentence.'
    ) AS summary
FROM (VALUES
    (1, 'I was charged twice.'),
    (2, 'My parcel has not arrived.')
) AS documents(id, text)
ORDER BY id;

错误

prompt 为 NULL 时,会返回保留结果类型的 NULL,且不访问 Provider。能够在本地完成的校验——包括类型、配置参数常量性、未知 Provider、无效 JSON Schema 或选项,以及已知不兼容的模型与 Provider 组合——会在执行前报错。模型是否存在、是否有权使用、无法在本地确定的端点能力和 Provider 请求失败,则可能要到执行期间才能发现。on_error := 'ignore' 只处理逐行执行失败。

来源与相关页面