基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
AI 函数服务快速上手
更新时间:2026-08-27 17:01:57
本文面向首次使用 AI 函数服务的用户,通过最少步骤完成模型注册并运行第一个示例,帮助您快速跑通流程。
本文仅使用 AI_COMPLETE 函数介绍快速上手流程,其他函数请参考 AI 函数服务语法及示例。
说明
本文档使用新接口 REGISTER_PROVIDER 进行模型注册,从 V4.6.0 BP1 版本开始支持。旧接口 CREATE_AI_MODEL 等 PL 系统包子程序完整保留,存量用法可继续工作。
前提条件
- 已部署 OceanBase 集群并创建 MySQL 租户,且已连接到数据库。
- 已具备 AI 函数相关权限。详见 AI 函数服务权限。
- 已获取第三方模型服务的 API Key。
快速上手
步骤一:注册厂商配置
在首次使用前,需先注册厂商配置。本示例使用内置厂商 aliyun,只需填写 access_key,protocol 与 base_url 可省略,系统会自动填充默认值。请将 access_key 替换为实际的 API Key:
-- 本示例使用的是文本生成模型的 API Key
CALL DBMS_AI_SERVICE.REGISTER_PROVIDER('aliyun', '{
"access_key": "sk-xxxx"
}');
更多厂商配置方式请参见文末相关文档。
步骤二:(可选)配置模型参数
如需为特定模型设置调用参数,可使用 ALTER_MODEL_PROFILE:
CALL DBMS_AI_SERVICE.ALTER_MODEL_PROFILE('aliyun/qwen-plus', '{
"model_config": {
"max_tokens": 4096,
"temperature": 0
}
}');
步骤三:运行示例
使用 provider/model 格式调用 AI_COMPLETE,对一段文本做情感判断:
SELECT AI_COMPLETE('aliyun/qwen-plus', AI_PROMPT('你的任务是对提供的文本进行情感分析,判断其情感倾向为正面还是负面。
以下是需要分析的文本:
<text>
{0}
</text>
判断标准如下:
如果文本表达的是正面情感,输出 1;如果文本表达的是负面情感,输出 -1。不要输出其他东西。', '天气真好啊')) AS sentiment;
预期返回结果中 sentiment 为 1,表示正面情感。
步骤四:(可选)使用 Gateway 路由
如需在多个模型 endpoint 间按权重路由,可创建 Gateway:
CALL DBMS_AI_SERVICE.CREATE_AI_GATEWAY('prod_gateway', '{
"endpoints": [
{"name":"ep1","model":"aliyun/qwen-plus","weight":70},
{"name":"ep2","model":"deepseek/deepseek-chat","weight":30}
]
}');
创建后,可通过 Gateway 名称调用 AI 函数。Gateway 语法说明请参见 CREATE_AI_GATEWAY。
步骤五:综合应用(可选)
将多个 AI 函数组合使用,构建一个简单的智能问答系统。
注册所需厂商配置(可跳过)
本示例需要嵌入模型、文本生成模型和重排序模型。若步骤一已注册
aliyun厂商配置,且对应模型均通过该厂商访问,可跳过本步;否则请注册其他厂商配置:CALL DBMS_AI_SERVICE.REGISTER_PROVIDER('deepseek', '{ "access_key": "sk-xxxx" }');准备数据并生成向量
CREATE TABLE knowledge_base ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255), content TEXT, embedding TEXT ); INSERT INTO knowledge_base (title, content) VALUES ('OceanBase 简介', 'OceanBase 是一个强大的数据库系统,支持向量搜索和 AI 函数。'), ('向量搜索', '向量搜索可以用于语义搜索,找到相似的内容。'), ('AI 函数', 'AI 函数可以在 SQL 中直接调用 AI 模型。'); UPDATE knowledge_base SET embedding = AI_EMBED('aliyun/text-embedding-v3', content);向量搜索并重排序
SET @query = "什么是向量搜索?"; SET @query_vector = AI_EMBED('aliyun/text-embedding-v3', @query); -- 直接构建字符串数组格式的文档列表 SET @candidate_docs = '["OceanBase 是一个强大的数据库系统,支持向量搜索和 AI 函数。", "向量搜索可以用于语义搜索,找到相似的内容。"]'; SELECT AI_RERANK('aliyun/gte-rerank-v2', @query, @candidate_docs) AS ranked_results;返回结果如下,
index为文档索引,relevance_score为相关性分数:+-------------------------------------------------------------------------------------------------------------+ | ranked_results | +-------------------------------------------------------------------------------------------------------------+ | [{"index": 1, "relevance_score": 0.9904329776763916}, {"index": 0, "relevance_score": 0.16993996500968933}] | +-------------------------------------------------------------------------------------------------------------+ 1 row in set生成答案
基于检索与重排序结果,生成答案:
SELECT AI_COMPLETE('aliyun/qwen-plus', AI_PROMPT('基于以下文档内容,回答用户的问题。 用户问题:{0} 相关文档:{1} 请基于以上文档内容,简洁准确地回答用户的问题。', @query, CAST(JSON_EXTRACT(@candidate_docs, '$[1]') AS CHAR))) AS answer;返回结果如下:
+--------------------------------------------------------------------------------------------------------------------------------------------+ | answer | +--------------------------------------------------------------------------------------------------------------------------------------------+ | 根据提供的文档内容,向量搜索是一种用于语义搜索的技术,旨在通过比对向量数据来找到相似的内容。 | +--------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set通过上述步骤,您可以在 OceanBase 数据库内快速完成完整的 AI 应用流程:向量化、搜索、重排序、生成答案。
相关文档
- AI 模型注册:厂商配置与旧接口注册方式。
- AI 函数语法及示例:各函数语法、参数表及更多示例。
- AI 函数服务权限:权限授予与回收。