AI Function

更新时间:
复制 MD 格式

云原生数据库PolarDB分布式版AI Function 提供包括大语言模型(Large Language Model,LLM)文本生成、向量化(Embedding)、语义相似度、交叉注意力精排、零样本分类、结构化抽取、文档解析、多模态向量化等一系列内置 SQL 函数。无需引入任何 AI SDK 或搭建外部推理服务,使用标准 SQL 调用即可完成企业级知识库检索、文本理解、推理生成等 AI 场景。

适用范围

  • 已开通PolarDB-X实例,且实例版本需为2.6.0_5.4.21-20260610及以上版本。

    说明
  • 仅支持企业版实例。

  • 开启实例AI能力:请在实例详情页右上角,单击开启AI能力以开启实例AI能力,开启AI能力后,会为实例创建一个AI网关供您可以使用AI Function功能。

AI Function汇总表

当前PolarDB-X支持的 AI Function 如下表所示。

  • AI 网关会自动为每个 AI Function 绑定最佳默认模型,调用 Function 时无需指定模型名,系统会自动使用对应的默认模型。

  • 如需切换为其他可用模型,可通过 Function 的第二个参数显式传入模型名。

重要

本文AI_GATEWAY_XXX_MODEL均为 AI 网关注册模型名称,具体名称由 AI 网关注册决定,您可通过查看已注册模型查看具体注册的模型名称。

Function 名称

描述

默认模型

AI_PROMPT

通过提示词调用大语言模型对文本进行推理生成。支持系统提示词、温度控制、思维链推理等参数。

AI_GATEWAY_LLM_MODEL(默认),另有多个可选 LLM 模型。

AI_EMBEDDING

对给定的文本计算一个固定维度的连续向量。

AI_GATEWAY_EMBEDDING_MODEL(默认)。

AI_SIMILARITY

计算查询文本与候选文本(或预存向量)的语义相似度。当输入第二个参数为已存储向量时不调用API,性能高。

AI_GATEWAY_EMBEDDING_MODEL(与 AI_EMBEDDING 一致)。

AI_RANK

对给定的查询和候选文档进行交叉编码器(Cross-Encoder)精排打分。

AI_GATEWAY_RERANK_MODEL(默认)。

AI_CLASSIFY

根据提供的分类标签对输入文本进行零样本分类,支持单标签和多标签模式。

AI_GATEWAY_LLM_MODEL(默认)。

AI_EXTRACT

从输入文本中按指定 JSON 模式(JSON Schema)提取结构化字段。

AI_GATEWAY_LLM_MODEL(默认)。

AI_SUMMARIZE

生成一段文本的摘要,支持指定字数、输出语言和摘要风格。

AI_GATEWAY_LLM_MODEL(默认)。

AI_PARSE_DOCUMENT

将公网 PDF、图片等非结构化文件解析成纯文本。

AI_GATEWAY_DOCUMENT_PARSE_MODEL(默认)。

AI_VL_EMBEDDING

对图片 URL、视频 URL 或纯文本生成多模态向量,支持图文混合检索。

AI_GATEWAY_VL_EMBEDDING_MODEL(默认)。

AI_TEXT2SQL

将自然语言描述转换为 SQL 语句,自动识别当前数据库的表结构生成可执行 SQL。

AI_GATEWAY_LLM_MODEL(默认)。

使用AI Function

AI_PROMPT

通过提示词调用大语言模型对文本进行推理并输出结果。支持系统提示词设定角色、温度控制生成多样性、思维链推理(Qwen3 系列)等高级能力。

语法

--基础调用,自动使用默认 LLM 模型
SELECT AI_PROMPT(prompt)

--指定模型
SELECT AI_PROMPT(prompt, model)

--指定模型与生成参数
SELECT AI_PROMPT(prompt, model, options)

参数说明

  • prompt:必填,待输入的提示词,支持字符类型(CHARVARCHARTEXT)。

  • model:可选,AI Function 使用的模型名称。默认使用内置 LLM 模型 AI_GATEWAY_LLM_MODEL

  • options:可选,JSON 字符串,控制 LLM 生成行为。各字段说明如下:

    字段

    类型

    说明

    temperature

    DOUBLE

    温度参数(0~2),越高越随机。

    max_tokens

    INT

    最大生成 Token 数。

    top_p

    DOUBLE

    核采样(Nucleus Sampling)参数。

    stop

    STRING / ARRAY

    停止生成的标记。

    system_prompt

    STRING

    系统提示词,设定 AI 角色。

    enable_thinking

    BOOLEAN

    启用思维链推理模式(Qwen3 系列),默认FALSE

返回值说明

  • 返回大模型对该问题的回答,类型为TEXT

  • prompt参数为 NULL 或空字符串("")时返回报错,例如,AI_PROMPT requires at least 1 argument: prompt / AI_PROMPT: prompt cannot be empty

使用示例

  • 基础推理

    SELECT AI_PROMPT('什么是 PolarDB-X?请用一句话回答。');

    返回结果如下。

    AI_PROMPT
    ---------
    PolarDB-X 是阿里巴巴自主研发的云原生分布式数据库,兼容 MySQL 协议,支持海量数据的高并发实时处理与分析。
  • 指定模型

    SELECT AI_PROMPT('用一句话解释什么是分布式数据库', 'AI_GATEWAY_LLM_MODEL');
  • 设定 AI 角色

    SELECT AI_PROMPT(
        '请帮我优化这条 SQL: SELECT * FROM orders WHERE status = 1',
        'AI_GATEWAY_LLM_MODEL',
        '{"system_prompt": "你是一个资深的数据库 DBA,专注于 SQL 性能优化。"}'
    );
  • 启用思维链推理

    SELECT AI_PROMPT(
        '请分析这段代码的时间复杂度并给出优化建议: for(int i=0;i<n;i++) for(int j=i;j<n;j++) sum+=a[j];',
        'AI_GATEWAY_LLM_MODEL',
        '{"enable_thinking": true}'
    );
  • 结合表数据为每行数据生成描述

    SELECT
        name,
        AI_PROMPT(CONCAT('请用一句话描述这个城市: ', name)) AS description
    FROM city
    LIMIT 3;

AI_EMBEDDING

将输入的文本转换为一个固定维度的连续向量(JSON 数组),用于语义检索、聚类、推荐等场景。

语法

--基础调用,自动使用默认 EMBEDDING 模型
SELECT AI_EMBEDDING(text)

--指定模型
SELECT AI_EMBEDDING(text, model)

--指定模型与向量维度
SELECT AI_EMBEDDING(text, model, options)

参数说明

  • text:必填,输入文本,支持字符类型(CHARVARCHARTEXT)。

  • model:可选,AI Function 使用的模型名称。默认使用内置 EMBEDDING 模型 AI_GATEWAY_EMBEDDING_MODEL

  • options:可选,JSON 字符串,可指定向量维度。

    字段

    类型

    说明

    dimension

    INT

    向量维度(默认由模型决定)。

返回值说明

  • 返回 JSON 类型,是一个浮点数数组,长度由模型或 dimension 参数决定。

  • text参数为 NULL 或空字符串("")时返回报错,例如AI_EMBEDDING requires at least 1 argument: text

使用示例

  • 基础向量化

    SELECT AI_EMBEDDING('PolarDB-X 是一款分布式数据库');

    返回结果是 JSON 数组,例如:

    AI_EMBEDDING
    ------------
    [0.123, -0.456, 0.789, ...]
  • 指定向量维度

    SELECT AI_EMBEDDING(
        'PolarDB-X 是一款分布式数据库',
        'AI_GATEWAY_EMBEDDING_MODEL',
        '{"dimension": 512}'
    );
  • 持久化存储向量(一次计算,永久复用)

    --建表时预留向量列
    CREATE TABLE documents (
        id BIGINT PRIMARY KEY AUTO_INCREMENT,
        content TEXT,
        embedding JSON
    );
    
    --批量生成并存储向量
    UPDATE documents
    SET embedding = AI_EMBEDDING(content)
    WHERE embedding IS NULL;

AI_SIMILARITY

计算查询文本与候选文本(或预存向量)的语义相似度,返回 0~1 之间的分值。当第二个参数传入 JSON 数组形式的向量时,函数直接使用该向量做相似度计算,不会调用任何 API,性能大幅提升,适合大规模在线检索。

语法

SELECT AI_SIMILARITY(query, text_or_vector [, similarity_type [, model]])

参数说明

参数

类型

是否必需

说明

query

STRING

查询文本。

text_or_vector

STRING / JSON

候选文本或预存向量(JSON 数组)。

similarity_type

STRING

相似度算法:

  • cosine(默认):余弦

  • euclidean:欧氏距离

  • dot:点积

model

STRING

指定 EMBEDDING 模型名,不指定时使用默认模型。

返回值说明

  • 返回 DOUBLE 类型的相似度 Score,取值区间:[0, 1],值越大相似度越高。

  • querytext_or_vector任一参数为 NULL 时返回报错,例如AI_SIMILARITY requires at least 2 arguments: input1, input2

使用示例

  • 文本对文本相似度

    SELECT AI_SIMILARITY('云原生数据库', 'PolarDB-X 是一款分布式云原生数据库') AS score;

    返回结果如下。

    score
    -----
    0.87
  • (推荐)使用预存向量做语义检索

    --直接读取 embedding 字段,零额外 API 调用
    SELECT id, name,
        AI_SIMILARITY('分布式事务专家', embedding) AS score
    FROM resumes
    WHERE status = 'processed' AND embedding IS NOT NULL
    ORDER BY score DESC
    LIMIT 10;

AI_RANK

使用 Cross-Encoder 精排模型对查询和候选文档进行深度语义匹配打分,精度高于向量余弦相似度,常用作召回结果的二次精排。

语法

SELECT AI_RANK(query, candidate [, model [, options]])

参数说明

  • query:必填,查询文本,支持字符类型(CHARVARCHARTEXT)。

  • candidate:必填,候选文本,与 query 进行相关性比较,支持字符类型(CHARVARCHARTEXT)。

  • model:可选,AI Function 使用的模型名称。默认使用内置 RERANK 模型 AI_GATEWAY_RERANK_MODEL

  • options:可选,JSON 字符串,控制精排参数。

返回值说明

  • 返回 DOUBLE 类型的相关性 Score,取值区间:[0, 1],值越大相关性越高。

  • querycandidate任一参数为空或NULL 时返回报错,例如AI_RANK requires at least 2 arguments: query, candidate

说明

性能建议:AI_RANK调用Cross-Encoder模型,单次耗时较高,应仅对召回结果(Top-20 以内)做精排,避免对全表数据直接精排。

使用示例

  • 基础打分

    SELECT AI_RANK(
        '如何优化数据库查询性能',
        '数据库索引设计与查询优化的 10 个最佳实践'
    ) AS score;

    返回结果如下。

    score
    -----
    0.91
  • 对文档列表精排

    SELECT id, title,
        AI_RANK('PolarDB-X 分布式事务', content) AS relevance
    FROM articles
    WHERE category = 'database'
    ORDER BY relevance DESC
    LIMIT 10;
  • 推荐用法:两阶段检索(先向量召回,再精排)

    SELECT id, name, summary, similarity_score,
        AI_RANK('Java 后端高级工程师', summary) AS rank_score
    FROM (
        SELECT id, name, summary,
            AI_SIMILARITY('Java 后端高级工程师', embedding) AS similarity_score
        FROM resumes
        WHERE embedding IS NOT NULL AND summary IS NOT NULL
        ORDER BY similarity_score DESC
        LIMIT 20
    ) recalled
    ORDER BY rank_score DESC;

AI_CLASSIFY

将文本零样本归类到您指定的候选标签中。无需训练,只需提供候选标签列表即可。支持单标签(默认)和多标签两种模式。

语法

SELECT AI_CLASSIFY(text, labels_json [, model [, options]])

参数说明

  • text:必填,需要分类的文本,支持字符类型(CHARVARCHARTEXT)。

  • labels_json:必填,JSON 数组形式的分类标签列表,标签数量建议在 2~20 之间。

  • model:可选,AI Function 使用的模型名称。默认使用内置 LLM 模型。

  • options:可选,JSON 字符串。

    字段

    类型

    说明

    multi_label

    BOOLEAN

    启用多标签分类模式,返回多个匹配标签的 JSON 数组。默认FALSE(单标签)。

返回值说明

  • 单标签模式下返回匹配的标签字符串。

  • 多标签模式下返回 JSON 数组形式的多个标签。

  • text参数为 NULL 或空字符串("")时返回报错,例如AI_CLASSIFY requires at least 2 arguments / AI_CLASSIFY: text cannot be empty

使用示例

  • 单标签分类(情感分析)

    SELECT AI_CLASSIFY(
        '这款产品用了一周,质量很棒,非常推荐!',
        '["positive", "negative", "neutral"]'
    ) AS sentiment;

    返回结果如下。

    sentiment
    ---------
    positive
  • 多标签分类

    SELECT AI_CLASSIFY(
        '本文介绍了使用 Kubernetes 部署分布式数据库的最佳实践',
        '["数据库", "云原生", "运维", "开发"]',
        '',
        '{"multi_label": true}'
    ) AS tags;

    返回结果如下。

    tags
    ----
    ["数据库", "云原生", "运维"]
  • 批量分类写回

    UPDATE resumes
    SET category = AI_CLASSIFY(
        raw_text,
        '["前端", "后端", "算法", "数据", "运维", "其他"]'
    )
    WHERE category IS NULL AND status = 'processed';

AI_EXTRACT

从非结构化文本中按指定 JSON Schema 提取结构化字段,返回 JSON 对象,可直接使用 JSON_EXTRACT 等函数展开为列。

语法

SELECT AI_EXTRACT(text, schema_json [, model])

参数说明

  • text:必填,输入文本,支持字符类型(CHARVARCHARTEXT)。

  • schema_json:必填,JSON 字符串,描述需要提取的字段及其含义。

  • model:可选,AI Function 使用的模型名称。默认使用内置 LLM 模型。

返回值说明

  • 返回 JSON 对象,包含每个 Schema 字段对应的提取结果。

  • text参数为 NULL 或空字符串("")时返回报错,例如 AI_EXTRACT requires at least 2 arguments / AI_EXTRACT: text cannot be empty

使用示例

  • 提取简历信息

    SELECT AI_EXTRACT(
        '张三,8 年 Java 开发经验,毕业于上海交通大学计算机系,曾就职于阿里巴巴,熟悉 Spring Boot、Kafka、MySQL。',
        '{"name": "姓名", "experience_years": "工作年限", "university": "毕业院校", "skills": "技能列表", "company": "前雇主"}'
    ) AS info;

    返回结果如下。

    {
      "name": "张三",
      "experience_years": "8 年",
      "university": "上海交通大学",
      "skills": "Java, Spring Boot, Kafka, MySQL",
      "company": "阿里巴巴"
    }
  • 提取后展开为列

    SELECT
        id,
        JSON_UNQUOTE(JSON_EXTRACT(info, '$.name'))       AS name,
        JSON_UNQUOTE(JSON_EXTRACT(info, '$.university')) AS university,
        JSON_UNQUOTE(JSON_EXTRACT(info, '$.skills'))     AS skills
    FROM (
        SELECT id,
            AI_EXTRACT(raw_text,
                '{"name":"姓名","university":"学校","skills":"技能"}') AS info
        FROM resumes
    ) t;

AI_SUMMARIZE

将长文本压缩为指定字数以内的摘要,保留核心信息。支持指定输出语言和摘要风格。

语法

SELECT AI_SUMMARIZE(text, max_words [, model [, options]])

参数说明

  • text:必填,输入文本,支持字符类型(CHARVARCHARTEXT)。

  • max_words:必填,摘要最大字数,模型会尽量逼近该值。设为 0 表示不做长度限制。

  • model:可选,AI Function 使用的模型名称。默认使用内置 LLM 模型。

  • options:可选,JSON 字符串。

    字段

    类型

    说明

    language

    STRING

    指定摘要输出语言(如 "Chinese""English")。

    style

    STRING

    摘要风格。设置范围:

    • (默认)连贯段落

    • bullet_points:要点列表

返回值说明

  • 返回 TEXT 类型的摘要内容。

  • text参数为 NULL 或空字符串("")时返回报错。例如 AI_SUMMARIZE: text cannot be empty

  • max_words参数取值小于0时返回报错。

使用示例

  • 基础摘要

    SELECT AI_SUMMARIZE(raw_text, 200) AS summary
    FROM resumes
    WHERE id = 1;
  • 指定输出语言(即使原文是英文,也输出中文摘要)

    SELECT AI_SUMMARIZE(raw_text, 200, '', '{"language": "Chinese"}') AS summary
    FROM resumes
    WHERE id = 1;
  • 要点列表风格

    SELECT AI_SUMMARIZE(raw_text, 300, '', '{"style": "bullet_points"}') AS summary
    FROM resumes
    WHERE id = 1;
  • 批量生成摘要并存储

    UPDATE resumes
    SET summary = AI_SUMMARIZE(raw_text, 200)
    WHERE summary IS NULL AND status = 'processed';

AI_PARSE_DOCUMENT

解析公网 PDF、图片等非结构化文件,将其内容转换为纯文本,支持自动识别文件类型。

语法

SELECT AI_PARSE_DOCUMENT(url [, input_format [, model [, options]]])

参数说明

参数

类型

是否必需

说明

url

STRING

文件的公网 URL。

input_format

STRING

文件格式提示,默认 auto(自动检测)。支持 pdfimage 等。

model

STRING

指定 DOCUMENT_PARSE 模型名,默认使用 AI_GATEWAY_DOCUMENT_PARSE_MODEL

options

STRING

额外选项(JSON 格式)。

返回值说明

  • 返回 TEXT 类型,是从文件中解析出的纯文本内容。

  • 当解析失败时,返回错误描述文本而不抛出异常。

使用示例

  • 解析公网 PDF

    SELECT AI_PARSE_DOCUMENT('https://example.com/report.pdf') AS content;
  • 指定文件格式

    SELECT AI_PARSE_DOCUMENT('https://example.com/report.pdf', 'pdf') AS content;
  • 解析图片

    SELECT AI_PARSE_DOCUMENT('https://example.com/scan.jpg') AS content;
  • 解析后接入处理流水线(解析 → 抽取 → 摘要)

    SELECT
        AI_PARSE_DOCUMENT('https://example.com/cv.pdf') AS raw_text,
        AI_EXTRACT(
            AI_PARSE_DOCUMENT('https://example.com/cv.pdf'),
            '{"name":"姓名","skills":"技能"}'
        ) AS structured,
        AI_SUMMARIZE(
            AI_PARSE_DOCUMENT('https://example.com/cv.pdf'), 200
        ) AS summary;
    说明

    优化提示:上述写法对每个 Function 都重复调用了AI_PARSE_DOCUMENT,建议使用临时表或子查询缓存解析结果,避免重复 API 调用。

AI_VL_EMBEDDING

对图片 URL、视频 URL 或纯文本生成多模态向量,支持图文混合语义检索。函数会自动检测输入类型,以 http://https:// 开头的输入按图片/视频处理,其他输入按文本处理。也可通过 options 显式指定。

支持的内容类型

  • 文本:任意非 URL 字符串,自动识别为文本。

  • 图片:jpg、jpeg、png、webp、bmp、tiff、tif、ico、dib、icns、sgi。

  • 视频:mp4、avi、mov。

  • Base64 Data URIdata:image/...data:video/...

语法

SELECT AI_VL_EMBEDDING(content [, model [, options]])

参数说明

  • content:必填,文本字符串、图片/视频 URL 或 Base64 Data URI。

  • model:可选,AI Function 使用的模型名称。默认使用内置 VL_EMBEDDING 模型 AI_GATEWAY_VL_EMBEDDING_MODEL

  • options:可选,JSON 字符串。

    字段

    类型

    说明

    content_type

    STRING

    显式指定内容类型:"text""image""video"。不指定时自动检测。

    dimension

    INT

    向量维度(默认由模型决定)。

    fps

    DOUBLE

    视频帧采样率(仅对视频有效)。

返回值说明

返回 JSON 类型的浮点数数组。

说明

AI_VL_EMBEDDING生成的文本向量与图片/视频向量位于同一多模态语义空间,可直接互相计算相似度。这与AI_EMBEDDING生成的纯文本向量空间不同,两者不可混用。

使用示例

  • 生成图片向量

    SELECT AI_VL_EMBEDDING('https://example.com/product.jpg') AS vec;
  • 生成文本向量(多模态空间)

    SELECT AI_VL_EMBEDDING('红色连衣裙') AS vec;
  • 生成视频向量并显式指定参数

    SELECT AI_VL_EMBEDDING(
        'https://example.com/clip.mp4',
        '',
        '{"content_type": "video", "dimension": 1024, "fps": 2.0}'
    ) AS vec;
  • 以图搜图

    SELECT id, product_name,
        AI_SIMILARITY(
            AI_VL_EMBEDDING('https://example.com/query.jpg'),
            image_embedding
        ) AS similarity
    FROM products
    WHERE image_embedding IS NOT NULL
    ORDER BY similarity DESC
    LIMIT 10;
  • 图文混合检索

    --同时计算文本相似度与图片相似度,加权求和
    SELECT id, product_name,
        (AI_SIMILARITY('红色连衣裙', text_embedding) * 0.4 +
         AI_SIMILARITY(AI_VL_EMBEDDING('https://example.com/red_dress.jpg'), image_embedding) * 0.6
        ) AS combined_score
    FROM products
    ORDER BY combined_score DESC
    LIMIT 20;

AI_TEXT2SQL

将自然语言查询转换为可执行 SQL 语句。函数自动识别当前数据库(USE database 选择的库)下的表结构,并将其与您的自然语言描述一同提交给大语言模型生成 SQL。当库中表数量较多时,会先让模型筛选相关表,再据此生成最终 SQL。

--基础调用
SELECT AI_TEXT2SQL(prompt);

--指定模型
SELECT AI_TEXT2SQL(prompt, model);

--指定模型与生成参数
SELECT AI_TEXT2SQL(prompt, model, options);

参数说明

  • prompt:必填,自然语言查询描述,支持字符类型(CHARVARCHARTEXT)。

  • model:可选,AI Function 使用的模型名称。默认使用 AI 网关配置的 LLM 模型 AI_GATEWAY_LLM_MODEL

  • options:可选,JSON 字符串,控制 LLM 生成行为(temperaturemax_tokens 等,与 AI_PROMPT 一致)。

返回值说明

  • 返回 TEXT 类型,是模型生成的 SQL 语句。

  • prompt参数为 NULL 或空字符串("")时返回报错。例如 AI_TEXT2SQL: text cannot be empty

使用示例

  • 基础查询生成

    --切换到目标数据库后调用
    USE my_database;
    
    SELECT AI_TEXT2SQL('查询所有年龄大于 30 的用户');

    返回类似:

    AI_TEXT2SQL
    -----------
    SELECT * FROM users WHERE age > 30;
  • 跨表聚合查询

    SELECT AI_TEXT2SQL('统计每个部门的员工数量和平均工资');
  • 中英文混合

    SELECT AI_TEXT2SQL('Find the top 10 best-selling products in the last 7 days');
  • 指定模型与温度

    SELECT AI_TEXT2SQL(
        '查询销售额最高的5个商品',
        'AI_GATEWAY_LLM_MODEL',
        '{"temperature": 0.1, "max_tokens": 500}'
    );
说明
  • AI_TEXT2SQL 仅生成 SQL 字符串,不会自动执行。生成的 SQL 应在执行前由您/应用进行评审(Review)。

  • 函数依赖当前数据库的表结构信息,调用前请确保已通过 USE <database> 切换到目标数据库。

  • 当库中表数量超过 10 时,模型会先识别相关表再生成 SQL,可能产生两次模型调用。

AI Function 与模型

模型管理

AI 网关启动后会自动注册以下类型的模型,并为每个 AI Function 配置最佳默认模型:

模型类型

默认模型名

适用 Function

说明

LLM

AI_GATEWAY_LLM_MODEL

AI_PROMPTAI_CLASSIFYAI_EXTRACTAI_SUMMARIZEAI_TEXT2SQL

大语言模型,用于文本生成、分类、抽取等。

EMBEDDING

AI_GATEWAY_EMBEDDING_MODEL

AI_EMBEDDINGAI_SIMILARITY

文本向量化模型。

RERANK

AI_GATEWAY_RERANK_MODEL

AI_RANK

交叉注意力精排模型。

DOCUMENT_PARSE

AI_GATEWAY_DOCUMENT_PARSE_MODEL

AI_PARSE_DOCUMENT

文档解析模型。

VL_EMBEDDING

AI_GATEWAY_VL_EMBEDDING_MODEL

AI_VL_EMBEDDING

多模态向量化模型。

说明

模型的注册、更新和管理由 AI 网关自动完成,您无需手动操作。AI 网关会根据最新的模型能力自动选择最佳模型版本。具体已注册的模型名称和底层映射,可通过 SHOW AI MODEL(企业版)查询。

查看已注册模型

企业版(SHOW AI MODEL / AI_DESCRIBE_MODEL)

  • 使用SHOW AI MODEL语句查看所有已注册的 AI 模型配置(包括内置模型和您自定义模型)。如需查看指定模型的基础信息,可使用 SHOW AI MODEL FROM <model_name>

    --查看所有已注册模型
    SHOW AI MODEL;
    
    --查看指定模型详情
    SHOW AI MODEL FROM AI_GATEWAY_LLM_MODEL;

    返回字段说明

    列名

    说明

    NAME

    模型配置名称(唯一标识)。

    MODEL

    底层模型标识(实际调用 API 时使用的模型名)。

    PROVIDER

    模型提供方:dashscopeopenaicustom

    ENDPOINT

    API 调用端点 URL。

    STATUS

    模型状态:ACTIVE(可用)、INACTIVE(已禁用)。

    DESCRIPTION

    模型描述信息。

    mysql> SHOW AI MODEL;
    +---------------------------------+--------------------+-----------+------------------+--------+-------------------------------+
    | NAME                            | MODEL              | PROVIDER  | ENDPOINT         | STATUS | DESCRIPTION                   |
    +---------------------------------+--------------------+-----------+------------------+--------+-------------------------------+
    | AI_GATEWAY_LLM_MODEL            | qwen3.5-plus       | dashscope | (AI网关管理)      | ACTIVE | 默认 LLM 模型(平衡)            |
    | AI_GATEWAY_LLM_MODEL_MAX        | qwen-max           | dashscope | (AI网关管理)      | ACTIVE | LLM 模型(最强推理)             |
    | AI_GATEWAY_LLM_MODEL_TURBO      | qwen-turbo         | dashscope | (AI网关管理)      | ACTIVE | LLM 模型(快速经济)             |
    | AI_GATEWAY_EMBEDDING_MODEL      | text-embedding-v4  | dashscope | (AI网关管理)      | ACTIVE | 默认文本向量化模型                |
    | AI_GATEWAY_RERANK_MODEL         | qwen3-vl-rerank    | dashscope | (AI网关管理)      | ACTIVE | 默认精排模型                     |
    | AI_GATEWAY_DOCUMENT_PARSE_MODEL | qwen-doc-turbo     | dashscope | (AI网关管理)      | ACTIVE | 默认文档解析模型                 |
    | AI_GATEWAY_VL_EMBEDDING_MODEL   | qwen3-vl-embedding | dashscope | (AI网关管理)      | ACTIVE | 默认多模态向量化模型              |
    +---------------------------------+--------------------+-----------+------------------+--------+-------------------------------+
  • 使用 SELECT AI_DESCRIBE_MODEL(model_name) 查看指定模型的完整详情(包括 endpoint、provider、底层 model、API Key(脱敏)、创建/修改时间、状态等),返回 JSON 字符串。

    SELECT AI_DESCRIBE_MODEL('AI_GATEWAY_LLM_MODEL');

    返回字段说明

    字段

    说明

    name

    模型配置名称(唯一标识)。

    provider

    模型提供方。

    endpoint

    API 调用端点 URL。

    model

    底层模型标识。

    api_key

    模型级 API Key,展示时会脱敏(如 sk-f****8jTh)。

    description

    模型描述信息。

    gmt_created

    模型注册时间。

    gmt_modified

    模型最后修改时间。

    status

    模型状态:ACTIVE(可用)、INACTIVE(已禁用)。

查看 AI 函数配置

企业版(SHOW AI FUNCTION)

使用SHOW AI FUNCTION语句查看所有 AI 函数及其当前配置的默认模型。

--查看所有 AI 函数
SHOW AI FUNCTION;

--查看指定函数
SHOW AI FUNCTION FROM AI_PROMPT;

返回列说明

列名

说明

FUNCTION

AI 函数名称。

DEFAULT_MODEL

当前配置的默认模型名。

ACTUAL_MODEL

默认模型对应的实际底层模型标识。

DESCRIPTION

函数描述。

mysql> SHOW AI FUNCTION;
+-------------------+---------------------------------+--------------------+----------------------------+
| FUNCTION          | DEFAULT_MODEL                   | ACTUAL_MODEL       | DESCRIPTION                |
+-------------------+---------------------------------+--------------------+----------------------------+
| AI_PROMPT         | AI_GATEWAY_LLM_MODEL            | qwen3.5-plus       | AI prompt function         |
| AI_EMBEDDING      | AI_GATEWAY_EMBEDDING_MODEL      | text-embedding-v4  | AI embedding function      |
| AI_CLASSIFY       | AI_GATEWAY_LLM_MODEL            | qwen3.5-plus       | AI classify function       |
| AI_RANK           | AI_GATEWAY_RERANK_MODEL         | qwen3-vl-rerank    | AI rank function           |
| AI_SIMILARITY     | AI_GATEWAY_EMBEDDING_MODEL      | text-embedding-v4  | AI similarity function     |
| AI_EXTRACT        | AI_GATEWAY_LLM_MODEL            | qwen3.5-plus       | AI extract function        |
| AI_SUMMARIZE      | AI_GATEWAY_LLM_MODEL            | qwen3.5-plus       | AI summarize function      |
| AI_PARSE_DOCUMENT | AI_GATEWAY_DOCUMENT_PARSE_MODEL | qwen-doc-turbo     | AI parse document function |
| AI_VL_EMBEDDING   | AI_GATEWAY_VL_EMBEDDING_MODEL   | qwen3-vl-embedding | AI vl embedding function   |
| AI_TEXT2SQL       | AI_GATEWAY_LLM_MODEL            | qwen3.5-plus       | AI text2sql function       |
+-------------------+---------------------------------+--------------------+----------------------------+

修改 AI 函数默认模型

说明

修改默认模型时请确保模型类型与函数匹配,例如AI_EMBEDDING应使用 EMBEDDING 类型模型。如果将不匹配类型的模型设为默认模型,后续调用该 Function 时可能会报错。

企业版(AI_UPDATE_FUNCTION)

使用 AI_UPDATE_FUNCTION 函数动态修改指定 AI 函数的默认模型。修改后立即在集群所有计算节点(CN)生效,无需重启。

语法

SELECT AI_UPDATE_FUNCTION(function_name, model_name);

参数说明

参数

类型

是否必需

说明

function_name

STRING

AI 函数名称(大小写不敏感),如 AI_PROMPTAI_EMBEDDING

model_name

STRING

已注册的模型名称(需在 SHOW AI MODEL 中存在)。

返回值说明

  • 成功返回字符串 "OK"

  • 若函数名无效,报错 Unknown AI function

  • 若模型名不存在,报错 Model not found

使用示例

  • 将 AI_PROMPT 的默认模型改为QWEN_MAX

    SELECT AI_UPDATE_FUNCTION('AI_PROMPT', 'AI_GATEWAY_LLM_MODEL');
    -- 返回: OK
  • 验证修改生效

    SHOW AI FUNCTION FROM AI_PROMPT;
    -- DEFAULT_MODEL 列显示: AI_GATEWAY_LLM_MODEL
  • 使用您自定义模型作为默认模型

    --先注册自定义模型
    SELECT AI_REGISTER_MODEL('my_gpt4', 'openai', 'https://api.openai.com/v1/chat/completions', 'gpt-4', '{"api_key":"sk-xxxx"}');
    
    --将 AI_PROMPT 默认模型改为自定义模型
    SELECT AI_UPDATE_FUNCTION('AI_PROMPT', 'my_gpt4');

指定 AI Function 调用的模型

每个 AI Function 都默认绑定一个推荐模型,调用 Function 时如未指定模型名,会自动使用对应类型的默认模型。如需切换为其他内置模型,仅需在 Function 调用时通过第二个参数显式传入模型名即可。

说明

不同 AI Function 需要适配特定类型的模型,例如 AI_EMBEDDING 需要 EMBEDDING 类型模型,AI_RANK 需要 RERANK 类型模型,AI_PARSE_DOCUMENT 需要 DOCUMENT_PARSE 类型模型。请勿将不匹配类型的模型传入对应 Function。

--默认调用 AI_GATEWAY_LLM_MODEL
SELECT AI_PROMPT('用一句话解释什么是分布式数据库');

--切换为更快的 Turbo 模型
SELECT AI_PROMPT('用一句话解释什么是分布式数据库', 'AI_GATEWAY_LLM_MODEL');

--切换为更强的 Max 模型
SELECT AI_PROMPT('用一句话解释什么是分布式数据库', 'AI_GATEWAY_LLM_MODEL');

最佳实践

了解了 AI Function 的基础用法后,您可以通过以下典型场景将它们组合应用,解决复杂的业务问题。

两阶段语义检索(向量召回 + Cross-Encoder 精排)

构建企业级语义检索时,单一向量相似度的召回精度有限。推荐采用“向量粗排 + 精排”两阶段方案:先用 AI_SIMILARITY 基于预存向量做毫秒级召回,再用 AI_RANK 对前 N 条(Top-N)候选做高精度打分,最终输出最相关结果。

--1. 离线建库:批量计算并存储向量
UPDATE resumes
SET embedding = AI_EMBEDDING(raw_text)
WHERE embedding IS NULL;

--2. 在线检索:两阶段查询,一条 SQL 完成
SELECT id, name, summary, similarity_score,
    AI_RANK('Java 后端高级工程师', summary) AS rank_score
FROM (
    SELECT id, name, summary,
        AI_SIMILARITY('Java 后端高级工程师', embedding) AS similarity_score
    FROM resumes
    WHERE embedding IS NOT NULL AND summary IS NOT NULL
    ORDER BY similarity_score DESC
    LIMIT 20
) recalled
ORDER BY rank_score DESC;

关键要点

  • 离线阶段一次计算向量并落库,在线阶段直接读取,避免重复调用 Embedding API。

  • 内层只做向量计算(无 API 调用),外层 AI_RANK 仅对 Top-20 精排,整体延迟可控。

非结构化文档转结构化数据流水线

将解析、抽取、摘要、分类、向量化等多个 AI Function 串联,可在一条 SQL 中将 PDF/图片等非结构化数据转化为可分析的结构化数据并落库。

INSERT INTO resumes (raw_text, structured_info, summary, category, embedding)
SELECT
    AI_PARSE_DOCUMENT(file_url) AS raw_text,
    AI_EXTRACT(
        AI_PARSE_DOCUMENT(file_url),
        '{"name":"姓名","skills":"技能","experience_years":"工作年限"}'
    ) AS structured_info,
    AI_SUMMARIZE(AI_PARSE_DOCUMENT(file_url), 200) AS summary,
    AI_CLASSIFY(
        AI_PARSE_DOCUMENT(file_url),
        '["前端", "后端", "算法", "数据", "运维", "其他"]'
    ) AS category,
    AI_EMBEDDING(AI_PARSE_DOCUMENT(file_url)) AS embedding
FROM file_inbox
WHERE status = 'pending';
说明

优化提示:上述写法对每个 Function 都重复调用了 AI_PARSE_DOCUMENT,建议使用临时表或子查询缓存解析结果,避免重复 API 调用。

多模态商品检索(以图搜图 + 图文混合检索)

借助 AI_VL_EMBEDDING,可在统一的多模态语义空间中同时表达图片与文本,构建图文一体的商品检索系统。

  1. 商品入库:同时存储多模态向量与纯文本向量

    INSERT INTO products (name, image_url, text_embedding, image_embedding)
    VALUES (
        ?,
        ?,
        AI_EMBEDDING(?),
        AI_VL_EMBEDDING(?)
    );
  2. 以图搜图

  3. 图文混合检索:文本相似度与图片相似度加权融合

    SELECT id, product_name,
        (AI_SIMILARITY('红色连衣裙', text_embedding) * 0.4 +
         AI_SIMILARITY(AI_VL_EMBEDDING('https://example.com/red_dress.jpg'), image_embedding) * 0.6
        ) AS combined_score
    FROM products
    ORDER BY combined_score DESC
    LIMIT 20;

关键要点

  • AI_VL_EMBEDDINGAI_EMBEDDING 输出的向量位于不同语义空间,不可跨函数混用,建议在表中分别存储 text_embeddingimage_embedding

  • 加权系数可结合业务效果调整,例如重图片场景设 image 权重 0.7+,重文本场景设 text 权重 0.7+。

批量数据治理(分类、脱敏、清洗)

利用 AI Function 的批量调用能力,可在 SQL 中直接对存量数据做语义级治理,无需写额外的 ETL 程序。

  • 批量分类

    UPDATE feedback
    SET sentiment = AI_CLASSIFY(content, '["positive", "negative", "neutral"]')
    WHERE sentiment IS NULL;
  • 批量结构化抽取

    UPDATE orders
    SET parsed_info = AI_EXTRACT(
        order_notes,
        '{"customer_name":"客户姓名","delivery_address":"配送地址","special_requirements":"特殊要求"}'
    )
    WHERE order_notes IS NOT NULL AND parsed_info IS NULL;
  • 批量摘要

    UPDATE articles
    SET summary = AI_SUMMARIZE(content, 200)
    WHERE summary IS NULL;

关键要点

  • 推荐分批 UPDATE(如按主键范围),避免一次性扫描超大表导致单条 SQL 长时间占用资源。

  • 对延迟敏感的在线场景,建议将向量、摘要等结果预计算并落库,查询时直接复用。