首批通过分布式安全可靠测评,为关键业务系统打造
AI 函数服务快速上手
更新时间:2026-06-10 15:54:05
本文面向首次使用 AI 函数服务的用户,通过最少步骤完成模型注册并运行第一个示例,帮助您快速跑通流程。
本文仅使用 AI_COMPLETE 函数介绍快速上手流程,其他函数请参考 AI 函数服务语法及示例。
前提条件
- 已部署 OceanBase 集群并创建 MySQL 租户,且已连接到数据库。
- 已具备 AI 函数相关权限。详见 AI 函数服务权限。
快速上手
步骤一:注册模型与端点
在首次使用前,你需要先注册 AI 模型及其访问端点。可参考 AI 模型注册 提供的模板,复制相应 AI 模型供应商的示例,只需将 API Key 替换为实际的 API Key 即可执行。以下为 AI_COMPLETE 情感分析模型(阿里云,兼容 OpenAI 格式)的注册示例:
CALL DBMS_AI_SERVICE.DROP_AI_MODEL ('ob_complete');
CALL DBMS_AI_SERVICE.DROP_AI_MODEL_ENDPOINT ('ob_complete_endpoint');
CALL DBMS_AI_SERVICE.CREATE_AI_MODEL(
'ob_complete', '{
"type": "completion",
"model_name": "THUDM/GLM-4-9B-0414"
}');
CALL DBMS_AI_SERVICE.CREATE_AI_MODEL_ENDPOINT (
'ob_complete_endpoint', '{
"ai_model_name": "ob_complete",
"url": "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions",
-- 需替换为实际的 access_key
"access_key": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxx",
"provider": "aliyun-openAI"
}');
步骤二:运行示例
这里以使用 AI_COMPLETE 情感分析模型,对一段文本做情感判断为例:
SELECT AI_COMPLETE("ob_complete", AI_PROMPT('你的任务是对提供的文本进行情感分析,判断其情感倾向为正面还是负面。
以下是需要分析的文本:
<text>
{0}
</text>
判断标准如下:
如果文本表达的是正面情感,输出 1;如果文本表达的是负面情感,输出 -1。不要输出其他东西。', '天气真好啊')) AS sentiment;
预期返回结果中 sentiment 为 1,表示正面情感。
步骤三:综合应用(可选)
将三个 AI 函数组合使用,三步构建一个简单的智能问答系统。
注册所有需要的模型和端点(可跳过)
本示例需要同时使用嵌入模型、文本生成模型和重排序模型,请确保已注册相应模型和端点,具体请参见步骤一。
说明
如果在前面的步骤中已经注册过相应的模型,请跳过对应的注册步骤,直接执行下一步。
准备数据并生成向量
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("ob_embed", content);向量搜索并重排序
SET @query = "什么是向量搜索?"; SET @query_vector = AI_EMBED("ob_embed", @query); -- 直接构建字符串数组格式的文档列表 SET @candidate_docs = '["OceanBase 是一个强大的数据库系统,支持向量搜索和 AI 函数。", "向量搜索可以用于语义搜索,找到相似的内容。"]'; SELECT AI_RERANK("ob_rerank", @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("ob_complete", 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 函数服务权限:权限授予与回收。