服务调用参考
本文介绍自学习模型预测服务调用SDK接入说明。
Python SDK
导入SDK
pip install alibabacloud_indvi20190701
Python SDK Demo
说明
调用接口前,需配置环境变量,通过环境变量读取访问凭证。关于配置环境变量的操作,参见阿里云SDK身份验证配置-环境变量配置。
import os
from alibabacloud_tea_openapi.models import Config
from alibabacloud_indvi20190701.client import Client
from alibabacloud_indvi20190701.models import GetDetectionResultRequest
config = Config(
# 指定服务接入地址,以下值为固定
region_id='cn-hangzhou',
# 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
# 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
# 此处以把AccessKey ID和AccessKey Secret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
access_key_id=os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
access_key_secret=os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET')
)
client = Client(
config
)
service_name = "<your service name>"
image_url = "<your image url>"
request = GetDetectionResultRequest(service_name, image_url, 'regen')
res = client.get_detection_result(request)
print(res.body)
Java SDK
pom.xml引⼊Java SDK
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>indvi20190701</artifactId>
<version>1.0.0</version>
</dependency>
Java SDK Demo
说明
调用接口前,需配置环境变量,通过环境变量读取访问凭证。关于配置环境变量的操作,参见阿里云SDK身份验证配置-环境变量配置。
import com.aliyun.indvi20190701.Client;
import com.aliyun.indvi20190701.models.GetDetectionResultRequest;
import com.aliyun.indvi20190701.models.GetDetectionResultResponse;
import com.aliyun.teaopenapi.models.Config;
import com.aliyuncs.http.MethodType;
public class DetectTest {
public static void main(String[] args) {
// 下面填入您的服务名称
String serviceName = "<you serviceName>";
// 单图情况下ImageUrl是图片链接字符串,如:https://xxx/abc.jpg
// 多图情况下,ImageUrl是图片链接数组JSON字符串,如:
// ["https://xxx/abc.jpg","https://xxx/def.jpg"]
String imageUrl = "<you image url>";
String platformType = "regen";
GetDetectionResultRequest request = new GetDetectionResultRequest();
request.setDetectPath(serviceName);
request.setImageUrl(imageUrl);
request.setPlatformType(platformType);
try {
GetDetectionResultResponse response = getClient().getDetectionResult(request);
if (null == response) {
return;
}
if (!response.getBody().getSuccess()) {
System.err.println(response.getBody().getMessage());
return;
}
// 图片测试结果
String result = response.getBody().getResult();
System.out.println("result:" + result);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 此处通过从环境变量中读取AccessKey,初始化Client
*
* @return Client
* @throws Exception
*/
private static Client getClient() {
Client client = null;
try {
String regionId = "cn-hangzhou";
Config config = new Config();
// 指定服务接入地址,以下值为固定
config.setRegionId(regionId);
config.setEndpoint("indvi.cn-hangzhou.aliyuncs.com");
// 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
// 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
// 此处以把AccessKey 和 AccessKeySecret 保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// 初始化client
config.setMethod(MethodType.GET.toString());
config.setReadTimeout(200000000);
config.setConnectTimeout(200000000);
client = new Client(config);
} catch (Exception e) {
System.out.println("init client failed | excrption: " + e.getMessage());
}
return client;
}
}
API说明
请求参数
名称 | 类型 | 必要 | 描述 |
ServiceName | String | 是 | 调用的服务名称 |
ImageUrl | String | 是 | 需要预测的图片链接 |
返回值
名称 | 类型 | 描述 |
RequestId | String | 阿里云为请求生产的唯一标识符 |
Success | Boolean | 表示是否调用成功。true表示调用成功,false表示调用失败 |
Code | String | 错误码 |
ErrorMessage | String | 调用失败时,返回的出错信息 |
Result | String | 图片推测结果 |
错误码
错误码 | 代码 | 说明 |
SUCCESS | 200 | 成功 |
UNKONW_ERROR | -1 | 系统异常 |
EMPTYPARAM | 201 | 请求参数不能为空 |
UNKOWNPARAM | 202 | 请求参数不合法 |
NODATA | 203 | 无返回数据 |
ISEXIST | 204 | 对象已存在 |
NOTEXIST | 205 | 对象不存在或被删除 |
USERAUTHORITYINVALID | 403 | 用户无权限 |
TRAIN_FORBIDDEN | 405 | 产品训练服务未开通 |
DEPLOY_FORBIDDEN | 406 | 产品部署服务未开通 |
RAM_FORBIDDEN | 407 | 无RAM权限 |