关于算法:OpenAPI文档方便GpuMall智算云用户灵活调用资源

130次阅读

共计 5687 个字符,预计需要花费 15 分钟才能阅读完成。

​ 为了不便用户灵便调用 GPU 资源,平台提供通过 API 调用形式应用实例相干性能,目前仅对企业用户凋谢。

企业体验:GpuMall 智算云 | 省钱、好用、弹性。租 GPU 就上 GpuMall
立刻体验:https://gpumall.com/login?type=register&source=sifou

API 概览​

平台对外提供的 API 如下:


    
        API
        阐明
    


    
        获取平台 GPU 类型
        查问平台以后可用显卡类型
    
    
        获取镜像
        查问以后账户可用的镜像,包含平台官网镜像和自定义镜像
    
    
        创立实例
        创立实例,依据平台举荐规定抉择符合条件的最优机器执行创立打算。查问操作后果
        查问实例操作后果
    
    
        查问实例
        查问后果返回未开释实例
    
    
        实例操作
        API 调用仅反对开机、关机、重启和开释,更多简单操作请到网页端执行。

如何调用 API​

  1. 申请企业资质​

API 以后只针对企业用户凋谢,未开明企业资质请返回账户核心提交企业认证申请。

  1. 创立 API 密钥​

API 调用须要先创立 API 密钥,能够在 ” 账户核心 – OpenAPI 密钥 ” 页面创立密钥,点击增加后即下载密钥到本地,后续无奈再反复下载,请妥善保存,切勿泄露。

​编辑

  1. 终端节点​

终端节点即调用 API 的申请地址目前平台提供的服务器调用地址如下:


    
        申请地址
        协定类型
    


    
        https://api.gpumall.com
        HTTPS
    


  1. 认证鉴权​

所有 API 接口须要通过在 header 中携带平台的 API 密钥来进行身份认证。在 Header 中携带 API 密钥的音讯头域格局如下:

{
“gm-api-token”:”dWEwmaZxxxxxxxxx”
}

其中 gm-api-token 是平台自定义 header key。

  1. 返回后果​

API 申请返回对立应用 JSON (对应申请 / 响应 header 为 Content-Type: application/json) 格局,通用构造如下:

{
“code”: 0,
“message”: “success”,
“traceid”: “180114fedf26b1177b44121fa5c1e5d9”,
“data”: {}
}

返回后果参数阐明:


    
        音讯元素名
        形容
    


    
        code
        申请响应码,申请胜利时为 0,失败时为相应的错误码,具体错误码请参考附录错误码阐明。message
        申请胜利为 success, 申请失败为具体的业务错误信息
    
    
        data
        返回的业务数据
    


API 详情​

  1. 获取平台 GPU 类型​

接口阐明

 申请 URI:/api/v1/open-api/gpu/list
申请办法:GET

申请参数 无 返回后果


    
        参数名称
        类型
        形容
    


    
        gpus
        Array<string>
        显卡类型数组,与高可用云 / 社区云的显卡类型统一
    


返回值示例

{

"code": 0,
"message": "success",
"traceid": "180114fedf26b1177b44121fa5c1e5d9",
"data": {
    "gpus": [
        "RTX 3090",
        "RTX 4090",
        "RTX 2080 Ti",
    ]
}

}

  1. 获取镜像​

接口阐明

 申请 URI:/api/v1/open-api/image/list
申请办法:GET

申请参数 无 返回参数 Image 参数形容


    
        参数名称
        类型
        形容
    


    
        type
        String
        镜像类型,user / official, user: 备份镜像,official: 官网镜像
    
    
        imageId
        String
        镜像 Id,创立实例应用
    
    
        name
        String
        镜像名称
    


返回示例

{

"code": 0,
"message": "success",
"traceid": "90223a7f6632b1176c74fa17445cfe0e",
"data": {
    "images": [
        {
            "type": "official",
            "name": "torch2.1.1-cuda12.1.0-py3.10",
            "imageId": "torch2.1.1-cuda12.1.0-py3.10"
        },
        {
            "type": "user",
            "name": "AnythingV5-WebUI",
            "imageId": "imgbgl8mu4msk375gdsd32smbogsuffm"
        },
    ]
}

}

  1. 创立实例​

接口阐明

 申请 URI:/api/v1/open-api/instance/create
申请办法:POST

申请参数 Body


    
        参数名称
        类型
        必填
        形容
    


    
        type
        Integer
        是
        社区云: 1, 高可用云:2
    
    
        gpuName
        String
        是
        显卡类型,可通过获取显卡列表接口查问,或者从官网查问
    
    
        skuName
        String
        是
        领取形式, 取值范畴: 按量付费 (payg), 竞价 (bidding), 包天 (daily), 包周 (weekly), 包月 (monthly)
    
    
        gpuNum
        Integer
        是
        租用显卡数量
    
    
        cpuNum
        Integer
        否
        单卡调配 cpu 外围数
    
    
        memory
        Integer
        否
        单卡调配的内存
    
    
        diskType
        String
        否
        磁盘类型 (SSD/NVME)
    
    
        tags
        Array<String>
        否
        查问合乎某些标签的机器
    
    
        imageId
        String
        是
        创立实例应用的镜像 ID,可通过查问可用镜像列表获取
    
    
        autoRenew
        Boolean
        否
        是否设置到期主动续费,按量付费默认为主动续费,其余预付费领取形式默认为 false
    
    
        duration
        Integer
        否
        预付费实例租用周期,默认为 1
    
    
        cmd
        String
        否
        启动命令
    
    
        env
        String
        否
        环境变量
    
    
        dryRun
        Boole
        否
        空跑,为 true 时只做机器筛选和价格查看
    


返回参数 Data


    
        参数名称
        类型
        形容
    


    
        instanceId
        Int64
        实例 ID, dryRun=true 时为 0
    
    
        operationId
        Int64
        以后操作 ID,dryRun=true 时为 0
    
    
        spec
        Object<Spec>
        实例规格
    


Spec


    
        参数名称
        类型
        形容
    


    
        gpuName
        String
        显卡名称
    
    
        vram
        String
        单卡显存大小,单位:G
    
    
        skuName
        String
        领取类型,取值范畴:按量付费 (payg), 竞价 (bidding), 包天 (daily), 包周 (weekly), 包月 (monthly)
    
    
        price
        String
        单价
    
    
        cpuName
        String
        cpu 型号
    
    
        cpuCoreNum
        int
        cpu 外围数,依据租用卡数按比例调配
    
    
        memorySize
        int
        内存大小,依据租用卡数按比例调配
    
    
        payByVoucher
        int
        是否反对代金券领取, 反对:1, 不反对:0
    
    
        regionName
        String
        所在区域
    


返回示例

{

"code": 0,
"message": "success",
"traceid": "905b8753fb3db11760f67138872918cb",
"data": {
    "InstanceId": 512300905672709,
    "operationId": 512303116840965,
    "spec": {
        "gpuName": "RTX 3080",
        "vram": "10G",
        "skuName": "payg",
        "price": "10",
        "cpuCoreNum": 16,
        "cpuName": "Intel Xeon Processor (Skylake, IBRS)",
        "memorySize": 17179869184,
        "payByVoucher": 1,
        "regionName": "华东"
    }
}

}

  1. 查问操作状态​

接口阐明

 申请 URI:/api/v1/open-api/instance/op/result
申请办法:POST

申请参数 Body


    
        参数名称
        类型
        必填
        形容
    


    
        ids
        Array<int>
        是
        操作 ID 列表
    


返回参数 Operation


    
        参数名称
        类型
        形容
    


    
        instanceId
        Int64
        实例 ID
    
    
        status
        int
        操作实现状态 进行中:1,胜利:2,失败:3
    
    
        action
        String
        以后进行中的操作
    
    
        operationId
        String
        以后操作 ID
    
    
        isCompleted
        int
        操作是否已实现, 已实现:1, 未实现: 0
    
    
        startTime
        String
        开始工夫
    
    
        completeTime
        String
        实现工夫
    


返回示例

{

"code": 0,
"message": "success",
"traceid": "287bfb0b8e3fb11797f57d7a4f92b05b",
"data": {
    "operations": [
        {
            "instanceId": 512300905672709,
            "operationId": 512303116840965,
            "action": "stop",
            "status": 2,
            "isCompleted": 1,
            "startTime": "2024-02-06 17:06:45",
            "completeTime": "2024-02-06 17:06:47"
        }
    ]
}

}

  1. 查问实例列表​

接口阐明

 申请 URI:/api/v1/open-api/instance/query
申请办法:GET

申请参数 Query


    
        参数名称
        类型
        必填
        形容
    


    
        status
        String
        否
        实例状态, 可选枚举值: stopd, running, creating
    
    
        instanceId
        Int
        否
        查问单个实例
    
    
        pn
        Integer
        否
        分页页码
    
    
        ps
        Integer
        否
        每页大小, 默认为 20
    


返回参数


    
        参数名称
        类型
        形容
    


    
        instances
        Array<Instance>
        实例数组
    
    
        total
        Integer
        总数
    


Instance


    
        参数名称
        类型
        形容
    


    
        instanceId
        int64
        实例 ID
    
    
        name
        String
        自定义实例名称
    
    
        imageId
        String
        镜像 ID
    
    
        status
        String
        实例状态
    
    
        isPending
        int
        是否操作执行中, 1 为操作中
    
    
        gpuName
        String
        显卡名称
    
    
        gpuNum
        Integer
        显卡数量
    
    
        skuName
        String
        租用形式: payg(按量付费), daily(包天), weekly(包周), monthly(包月),card_less(无卡启动)
    
    
        createdAt
        String
        创立工夫
    
    
        cpuCoreNum
        Int
        cpu 外围数
    
    
        memorySize
        int64
        内存大小, 单位 Byte
    
    
        systemDiskSize
        int64
        系统盘调配空间 (根目录 /),单位 byte
    
    
        systemDiskUsedSize
        int64
        系统盘已用空间 (根目录 /), 单位 byte
    
    
        dataDiskSize
        int64
        数据盘调配空间 (/gm-data),单位 byte
    
    
        dataDiskUsedSize
        int64
        数据盘已用空间 (/gm-data), 单位 byte
    
    
        sshCmd
        String
        ssh 登录命令
    
    
        sshPwd
        String
        ssh 登录明码
    
    
        notebookUrl
        String
        JupyterLab Notebook 拜访地址
    
    
        tensorboardUrl
        String
        Tensorboard 拜访地址
    
    
        customServices
        Array<String>
        自定义端口拜访地址(数组,每个元素为一个端口的对应拜访地址)operationId
        int64
        实例最近一次操作 id
    


返回示例

{

"code": 0,
"message": "success",
"traceid": "3082737a3085b5177f74d5555f57a69f",
"data": {
    "instances": [
        {
            "instanceId": 504838617333765,
            "name": "AnythingV5-WebUI",
            "status": "stopd",
            "imageId": "stable-diffusion-webui_v1.7.0",
            "isPending": 0,
            "gpuName": "RTX 3080",
            "gpuNum": 0,
            "skuName": "payg",
            "operationId": 511642810499077,
            "cpuCoreNum": 1,
            "memorySize": 2147483648,
            "systemDiskSize": 32212254720,
            "systemDiskUsedSize": 4311059,
            "dataDiskSize": 53687091200,
            "dataDiskUsedSize": 0,
            "sshCmd": "ssh -p 59064 root@xxxxx",
            "sshPwd": "Q3rDHh7QEwgYsuPxYSdVbE9zzKQQW45e",
            "notebookUrl": "http://xxxxx:42757/lab?token=f4jzygqwno3fecinx9arnetu",
            "tensorboardUrl": "http://xxxxx:44634",
            "customServices": ["http://xxxxx:48548"],
            "createdAt": "2024-01-16 14:53:38"
        }
    ],
    "total": 1
}

}

  1. 实例操作​

接口阐明

 申请 URI:/api/v1/open-api/instance/action
申请办法:POST

申请参数 Body


    
        参数名称
        类型
        必填
        形容
    


    
        instanceId
        Int64
        是
        实例 ID
    
    
        action
        String
        是
        实例操作名称,仅反对 stop(实例关机), start(开机), restart(重启), release(开释)
    


返回参数


    
        参数名称
        类型
        形容
    


    
        operationId
        Int64
        操作 ID
    


返回示例

{

"code": 0,
"message": "success",
"traceid": "3082737a3085b5177f74d5555f57a69f",
"data": {"operationId": 511642810499077}

}

附录​

  1. 申请返回的通用构造​

{
“code”: 0,
“message”: “success”,
“traceid”: “180114fedf26b1177b44121fa5c1e5d9”,
“data”: {}
}

  1. HTTP 状态码​

    
        状态码
        含意
        形容
    


    
        404
        Not Found
        申请 URI 不存在
    
    
        403
        Forbidden
        申请未受权
    
    
        200
        OK
        申请胜利
    
    
        500
        Internal Server Error
        服务器谬误
    


  1. 罕用错误码​

    
        错误码
        错误信息
        形容
    


    
        10001
        服务器外部谬误
        未定义的服务器外部谬误, 可提供单反馈帮助解决
    
    
        10002
        未登录或者登录已过期
        个别是申请 header 中短少 gm-api-token
    
    
        10005
        参数谬误
        参数校验谬误
    
    
        10135
        实例操作谬误
        实例操作谬误,错误信息在 message 中
    

正文完
 0