AI 模型管理
版本提示
自 v5.2.0 起新增此模块。通过 app.aiModel 访问,提供云开发环境下 AI 模型分组的配置、查询、更新与删除能力,支持接入 OpenAI 兼容网关(如 DeepSeek、混元、Moonshot 等)。
AiModelService 围绕 AI 模型分组(AIModelGroup) 进行管理,每个分组包含:
GroupName:分组名,自定义分组不允许以cloudbase为前缀BaseUrl:模型服务地址(需为 OpenAI 兼容网关)Models:分组下的模型列表(数组,更新时为全量替换)Secret:访问模型服务的密钥,支持SecretId / SecretKey或ApiKeyStatus:分组状态,1开启 /2关闭Type:分组类型,builtin(云开发内置)/custom(用户自定义)
初始化
import CloudBase from '@cloudbase/manager-node'
const app = CloudBase.init({
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId'
})
const aiModel = app.aiModel
createAIModel
1. 接口描述
接口功能:创建一个自定义 AI 模型配置分组。
接口声明:app.aiModel.createAIModel(options): Promise<CreateAIModelResp>
注意
groupName 不允许以 cloudbase 为前缀,该前缀为系统保留。
云端会对 baseUrl + secret 做联通性校验,请确保填写真实可达的模型服务地址与有效密钥。
2. 输入参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| groupName | 是 | String | 分组名,不允许以 cloudbase 为前缀 |
| baseUrl | 否 | String | 模型服务地址(OpenAI 兼容网关),示例 https://api.deepseek.com/v1 |
| models | 否 | AIModel[] | 模型列表,见下方 AIModel 字段说明 |
| remark | 否 | String | 分组备注 |
| status | 否 | 1 | 2 | 模型状态,1 开启,2 关闭 |
| secret | 否 | AIModelSecret | 模型密钥,见下方 AIModelSecret 字段说明 |
| envId | 否 | String | 环境 ID,不传则使用当前环境 ID |
AIModel
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| Model | 否 | String | 模型名,示例 deepseek-chat |
| EnableMCP | 否 | Boolean | 是否开启 MCP,默认 false |
| Tags | 否 | String[] | 标签 |
AIModelSecret
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| SecretSource | 否 | String | 密钥来源,固定 custom |
| SecretId | 否 | String | 密钥 ID,与 SecretKey 配对使用 |
| SecretKey | 否 | String | 密钥 Key,与 SecretId 配对使用 |
| ApiKey | 否 | String | API Key,与 SecretId/SecretKey 二选一 |
3. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| Count | Number | 创建数量 |
| RequestId | String | 请求唯一标识 |
4. 示例代码
const res = await app.aiModel.createAIModel({
groupName: 'custom-deepseek',
baseUrl: 'https://api.deepseek.com/v1',
models: [
{ Model: 'deepseek-chat', EnableMCP: false }
],
remark: 'DeepSeek 自定义分组',
status: 1,
secret: {
SecretSource: 'custom',
ApiKey: 'sk-xxxxxxxxxxxxxxxx'
}
})
console.log(res.Count, res.RequestId)
updateAIModel
1. 接口描述
接口功能:更新已有的 AI 模型配置分组。
接口声明:app.aiModel.updateAIModel(options): Promise<UpdateAIModelResp>
注意
models 字段采用全量替换语义,如需保留原有模型,请在更新时将其一并传入。
2. 输入参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| groupName | 是 | String | 待更新的分组名 |
| baseUrl | 否 | String | 模型服务地址 |
| models | 否 | AIModel[] | 模型列表,全量替换 |
| remark | 否 | String | 备注 |
| status | 否 | 1 | 2 | 模型状态,1 开启,2 关闭 |
| secret | 否 | AIModelSecret | 模型密钥 |
| envId | 否 | String | 环境 ID,不传则使用当前环境 ID |
AIModel/AIModelSecret字段定义同createAIModel。
3. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| Count | Number | 更新数量 |
| RequestId | String | 请求唯一标识 |
4. 示例代码
const res = await app.aiModel.updateAIModel({
groupName: 'custom-deepseek',
models: [
{ Model: 'deepseek-chat', EnableMCP: true },
{ Model: 'deepseek-reasoner', EnableMCP: true }
],
status: 1
})
console.log(res.Count)
deleteAIModel
1. 接口描述
接口功能:批量删除 AI 模型配置分组。
接口声明:app.aiModel.deleteAIModel(options): Promise<DeleteAIModelResp>
2. 输入参数
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| groupNames | 是 | String[] | 分组名列表,至少 1 项,元素非空字符串 |
| envId | 否 | String | 环境 ID,不传则使用当前环境 ID |
3. 返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| Count | Number | 成功删除数量 |
| RequestId | String | 请求唯一标识 |