创建定制服务
更新时间:2024-11-14
功能介绍
用于创建服务。
使用说明
本文API支持通过Python SDK、Go SDK、Java SDK 和 Node.js SDK调用,调用流程请参考SDK安装及使用流程。
权限说明
调用本文API,需符合以下权限要求,权限介绍及分配,请查看角色与权限控制列表、账号创建与权限分配。需具有以下任一权限:
- 管理员权限:QianfanFullControlAccessPolicy
- 模型服务运维权限:QianfanServiceOperateAccessPolicy
SDK调用
调用示例
import os
from qianfan import resources
# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"
resp = resources.Service.V2.create_service(
model_set_id="am-b6ngmk0j3cap",
model_id="amv-6g8nng4auutg",
name="mydasvc",
url_suffix="daxx",
resource_config={
"type": "GPU-I-2",
"replicasCount": 1,
},
billing={
"paymentTiming": "Prepaid",
"reservation": {
"reservationTimeUnit": "Month",
"reservationLength": 1,
}
}
)
print(resp.body)
package main
import (
"context"
"fmt"
"os"
"github.com/baidubce/bce-qianfan-sdk/go/qianfan"
)
func main() {
// 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.Setenv("QIANFAN_ACCESS_KEY", "your_iam_ak")
os.Setenv("QIANFAN_SECRET_KEY", "your_iam_sk")
ca := qianfan.NewConsoleAction()
res, err := ca.Call(context.TODO(),
// 调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求地址的后缀
"/v2/service",
// 调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求参数-Query参数的Action
"CreateService",
// 对应本文HTTP调用-请求说明-请求参数-Body参数,具体使用请查看Body参数说明,根据实际使用选择参数
map[string]interface{}{
"modelSetId": "am-jb0kzci16x14",
"modelId": "amv-0590vsgisd6d",
"name": "api测试",
"description": "",
"urlSuffix": "apitest",
"resourceConfig": map[string]any{
"region":"bj",
"type": "GPU-1-1",
"qps": 10,
"replicasCount": 2,
},
"billing":map[string]any{
"paymentTiming":"Prepaid",
"reservation":map[string]any{
"reservationTimeUnit":"Month",
"reservationLength":1,
},
},
})
if err != nil {
panic(err)
}
fmt.Println(string(res.Body))
}
import com.baidubce.qianfan.Qianfan;
import com.baidubce.qianfan.model.console.ConsoleResponse;
import com.baidubce.qianfan.util.CollUtils;
import com.baidubce.qianfan.util.Json;
import java.util.Map;
public class Dome {
public static void main(String args[]){
// 使用安全认证AK/SK鉴权,替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
Qianfan qianfan = new Qianfan("your_iam_ak", "your_iam_sk");
ConsoleResponse<Map<String, Object>> response = qianfan.console()
// 调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求地址的后缀
.route("/v2/service")
// 调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求参数-Query参数的Action
.action("CreateService")
// 需要传入参数的场景,可以自行封装请求类,或者使用Map.of()来构建请求Body
// Java 8可以使用SDK提供的CollUtils.mapOf()来替代Map.of()
// 对应本文HTTP调用-请求说明-请求参数-Body参数,具体使用请查看Body参数说明,根据实际使用选择参数
.body(CollUtils.mapOf(
"modelSetId", "am-jb0kzci16x14",
"modelId", "amv-0590vsgisd6d",
"name", "api测试",
"description", "",
"urlSuffix", "apitest",
"resourceConfig", CollUtils.mapOf(
"region","bj",
"type", "GPU-1-1",
"qps", 10,
"replicasCount", 2
),
"billing",CollUtils.mapOf(
"paymentTiming","Prepaid",
"reservation",CollUtils.mapOf(
"reservationTimeUnit","Month",
"reservationLength",1
)
)
))
.execute();
System.out.println(Json.serialize(response));
}
}
import {consoleAction, setEnvVariable} from "@baiducloud/qianfan";
// 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
setEnvVariable('QIANFAN_ACCESS_KEY','your_iam_ak');
setEnvVariable('QIANFAN_SECRET_KEY','your_iam_sk');
async function main() {
//base_api_route:调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求地址的后缀
//action:调用本文API,该参数值为固定值,无需修改;对应本文HTTP调用-请求说明-请求参数-Query参数的Action
//data:对应本文HTTP调用-请求说明-请求参数-Body参数,具体使用请查看Body参数说明,根据实际使用选择参数
const res = await consoleAction({base_api_route: '/v2/service', action: 'CreateService', data: {
"modelSetId": "am-jb0kzci16x14",
"modelId": "amv-0590vsgisd6d",
"name": "api测试",
"description": "",
"urlSuffix": "apitest",
"resourceConfig": {
"region":"bj",
"type": "GPU-1-1",
"qps": 10,
"replicasCount": 2
},
"billing":{
"paymentTiming":"Prepaid",
"reservation":{
"reservationTimeUnit":"Month",
"reservationLength":1
}
}
}
});
console.log(res);
}
main();
返回示例
{
"requestId":"1bef3f87-c5b2-4419-936b-50f9884f10d4",
"result": {
"serviceId": "svco-dywitxxxxaq6j",
"instanceId":"44961088f51d4b91b4c539e9379f5daf"
}
}
{
"requestId":"1bef3f87-c5b2-4419-936b-50f9884f10d4",
"result":{
"instanceId":"44961088fxxxx9e9379f5daf"
}
}
{
"requestId":"1bef3f87-c5b2-4419-936b-50f9884f10d4",
"result": {
"serviceId": "svco-dywitxxxxaq6j",
"instanceId":"44961088xxxx539e9379f5daf"
}
}
{
requestId:'1bef3f87-c5b2-4419-936b-50f9884f10d4',
result: {
serviceId: 'svco-dywitxxxxaq6j',
instanceId:'44961088xxxx539e9379f5daf'
}
}
请求参数
注意:不同语言SDK的请求参数不同,请根据实际调用选择对应参数。
- Python SDK请求参数说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
model_set_id | string | 是 | 模型ID,示例:am-gh0azfeb9adu,说明: 通过以下方法获取该字段值:在控制台-我的模型查看,如下图所示 |
model_id | string | 是 | 模型版本ID,示例:amv-g73j3faikzpz,说明: 通过以下方式获取该字段值: · 方式一,通过调用获取模型详情接口,返回的modelVersionIdStr字段获取 · 方式二,在控制台-我的模型-点击某模型详情,在版本列表中查看 |
name | string | 是 | 服务名称,说明: 取值范围:字符串长度为 [2, 20] |
description | string | 否 | 服务描述,说明: 取值范围:字符串长度为 [0, 500] |
url_suffix | string | 是 | 服务URL后缀,说明: (1)取值范围:字符串长度为 [2, 20] (2)字符规则:支持小写英文字母、数字、下划线(_)、短横线(-),首尾必须为字母或数字 |
resource_config | dict | 是 | 资源配置 |
billing | dict | 是 | 订单、计费相关参数 |
resource_config说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
type | string | 是 | 资源类型,可选值如下: · CPU I型:CPU-1-1 · 加速卡I型:GPU-1-1、GPU-1-2、GPU-1-4、GPU-1-8 · 加速卡V型:GPU-5-1、GPU-5-2 · 加速卡VI型:GPU-6-1、GPU-6-2 · 加速卡VII型:GPU-7-1、GPU-7-2 |
qps | float | 否 | 单副本QPS,说明: (1)不填此字段,默认使用模型预估QPS (2)取值范围:(0, 50],精确到0.01 |
replicasCount | int | 否 | 购买副本数量 |
billing说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
paymentTiming | string | 是 | 付费类型,可选值: · Prepaid:预付费 · Postpaid: 后付费 |
reservation | object | 否 | 保留信息,说明: (1)只有当付费类型为预付费,即paymentTiming值为Prepaid时,该字段必填 (2)付费类型为后付费,无需填写此参数 |
reservation说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
reservationTimeUnit | string | 是 | 时间单位,可选值: · Month: 月 |
reservationLength | int | 是 | 购买时长,说明: · 时间单位为月,取值范围 [1-12] |
- 其它SDK请求参数说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
modelSetId | string | 是 | 模型ID,示例:am-gh0azfeb9adu,说明: 通过以下方法获取该字段值:在控制台-我的模型查看,如下图所示 |
modelId | string | 是 | 模型版本ID,示例:amv-g73j3faikzpz,说明: 通过以下方式获取该字段值: · 方式一,通过调用获取模型详情接口,返回的modelVersionIdStr字段获取 · 方式二,在控制台-我的模型-点击某模型详情,在版本列表中查看 |
name | string | 是 | 服务名称,说明: 取值范围:字符串长度为 [2, 20] |
description | string | 否 | 服务描述,说明: 取值范围:字符串长度为 [0, 500] |
urlSuffix | string | 是 | 服务URL后缀,说明: (1)取值范围:字符串长度为 [2, 20] (2)字符规则:支持小写英文字母、数字、下划线(_)、短横线(-),首尾必须为字母或数字 |
resourceConfig | object | 是 | 资源配置,说明: (1)付费资源类型为Tokens,即chargeType=Tokens时,该字段非必填 |
billing | object | 是 | 订单、计费相关参数 |
resourceConfig说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
region | string | 否 | 资源地域,说明: (1)如果不填写该字段,系统默认获取满足资源的region (2)如果填写该字段,可选值如下: · bj:北京 · bd:保定 |
type | string | 否 | 资源类型,说明: (1)可选值如下: · CPU I型:CPU-1-1 · 加速卡I型:GPU-1-1、GPU-1-2、GPU-1-4、GPU-1-8 · 加速卡V型:GPU-5-1、GPU-5-2 · 加速卡VI型:GPU-6-1、GPU-6-2 · 加速卡VII型:GPU-7-1、GPU-7-2 (2)付费资源类型为ComputingUnit,即chargeType=ComputingUnit时,该字段必填 |
qps | float | 否 | 单副本QPS,说明: (1)不填此字段,默认使用模型预估QPS (2)取值范围:(0, 50],精确到0.01 |
replicasCount | int | 是 | 购买副本数量 |
billing说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
paymentTiming | string | 是 | 付费类型,可选值: · Prepaid:预付费 · Postpaid: 后付费 |
reservation | object | 否 | 保留信息,说明: (1)只有当付费类型为预付费,即paymentTiming值为Prepaid时,该字段必填 (2)付费类型为后付费,无需填写此参数 |
chargeType | string | 否 | 付费资源类型,说明: (1)只有当付费类型为后付费,即paymentTiming值为Postpaid时,该字段必填,可选值如下: · ComputingUnit:算力单元,默认值为ComputingUnit · Tokens:Tokens消耗量 (2)付费类型为预付费,无需填写此参数 |
releaseTime | string | 否 | 定时释放时间,说明: (1)只有当付费类型为后付费,即paymentTiming值为Postpaid时,该字段有效 (2)支持RFC3339格式和标准格式,如 2030-01-25T12:30:30+08:00 、2030-01-25 12:30:30 |
reservation说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
reservationTimeUnit | string | 是 | 时间单位,可选值: · Month: 月 |
reservationLength | int | 是 | 购买时长,说明: · 时间单位为月,取值范围 [1-12] |
autoRenew | boolean | 否 | 是否自动续费,可选值: · true:是 · false:否,默认值为false |
autoRenewTimeUnit | String | 否 | 自动续费周期时间单位,默认值为month,可选值: · month:月 |
autoRenewTime | int | 否 | 自动续费时长,说明: (1)单位:月 (2)默认值为1,取值范围:[1,6] |
返回参数
名称 | 类型 | 描述 |
---|---|---|
requestId | string | 请求ID |
result | object | 请求结果 |
result说明
名称 | 类型 | 描述 |
---|---|---|
serviceId | string | 服务ID |
instanceId | string | 实例ID |