文本预测接口 1.1 文本预测接口
请求URL:[http|https]://automl.cn-hangzhou.aliyuncs.com/api/automl/predict 本接口(PredictMTModel)通过RPC方式,用于获取机翻自学习模型产出的结果。
1.1.1 输入参数 参数名称 必选 类型 描述 ModelId 是 Long 模型Id Content 是 String 预测内容 ModelVersion 否 String 可以传入模型的版本号,例如V1、V2等,不传默认用最新版本 1.1.2 输出参数 参数名称 类型 描述 code Int32 错误码 message String 错误信息 success Boolean 结果是否正确 result String 译文 1.1.3 示例
输入:
{
"ModelId": "532",
"Content": "你好",
"ModelVersion": "V1" //可以传入模型的版本号,例如V1、V2等,不传默认用最新版本
}
输出:
{"Data":["hello"],"RequestId":"fweo1j3931jd","Code":0}
1.2 文本预测SDK调用示例
package com.alibaba.nlp.automl.modelcenter.service;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
public class PredictDemo {
private void predictModel() {
String accessKeyId = "";
String accessKeySecret = "";
String regionId = "cn-hangzhou";
try {
// 创建DefaultAcsClient实例并初始化
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret); // 您的AccessKey Secret
IAcsClient client = new DefaultAcsClient(profile);
// 创建API请求并设置参数
CommonRequest request = new CommonRequest();
request.setDomain("automl.cn-hangzhou.aliyuncs.com");
request.setVersion("2019-07-01");
request.setAction("PredictMTModel");
request.setMethod(MethodType.POST);
request.putQueryParameter("ModelId", "647");
request.putQueryParameter("ModelVersion", "V1");
request.putBodyParameter("Content", "hello");
CommonResponse response = client.getCommonResponse(request);
System.out.println(response);
} catch (Exception e) {
e.printStackTrace();
}
}
}
文档预测接口
由于文档预测采用异步预测方式,需要先调用上传接口获取id,采用异步下载的方式,判断文档是否状态成功,之后获取文档内容。 2.1 文档测试接口 请求URL:[http|https]://automl.cn-hangzhou.aliyuncs.com/api/automl/predictMTModelByDoc 本接口(PredictMTModelByDoc)通过RPC方式,用于获取机翻自学习模型产出的结果。
2.1.1 输入参数 参数名称 必选 类型 描述 ModelId 是 Long 模型Id ModelVersion 否 String 可以传入模型的版本号,例如V1、V2等,不传默认用最新版本 FileType 是 String 目前支持word文档,docx格式。docx=word文档 FileContent 是 String 文件内容(base64加密字符串)限制:5MB NeedXliff 否 Boolean 是否需要返回XLIFF1.2协议 2.1.2 输出参数 参数名称 类型 描述 code Int32 错误码 message String 错误信息 success Boolean 结果是否正确 data String 文档id 2.1.3 示例
输入:
{
"ModelId": "532",
"ModelVersion": "V1", //可以传入模型的版本号,例如V1、V2等,不传默认用最新发布版本
"FileType": "docx",
//base64做encode
"FileContent": "UEsDBBQACAgIAMoKa08AAAAAAAAAAAAAAAATAAAAW0NvbnRlbnRfVHlwZ",
"NeedXliff": "true",
}
输出:
{
"Code": "200",
"RequestId": "aare83jnn9wj3",
"Data": "
{
"DocId": "1"
}
"
}
2.2 获取文档预测接口
请求URL:[http|https]://automl.cn-hangzhou.aliyuncs.com/api/automl/getPredictDoc
本接口(GetPredictDoc)通过RPC方式,用于获取机翻自学习模型产出的结果。
2.2.1 输入参数
参数名称 必选 类型 描述 DocId 是 Long 文档Id 2.2.2 输出参数 参数名称 类型 描述 code Int32 错误码 message String 错误信息 success Boolean 结果是否正确 data String 翻译结果json 2.2.3 示例
输入:
{
"DodelId": "1"
}
输出:
{
"Code": "200",
"RequestId": "aare83jnn9wj3",
"Message": "",
"Data": "
{
"fileType": "docx",
//返回文档内容通过base64进行解密输出2进制
"resultContent": "UEsDBBQACAgIAMoKa08AAAAAAAAAAAAAAAATAAAAW0NvbnRlbnRfVHlwZ",
"status": 2,
//Xliff1.2协议xml内容
"xliffInfo": ""
}
"
}
2.3 文档预测调用示例
package com.alibaba.nlp.automl.modelcenter.service;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.alibaba.nlp.automl.common.util.FileUtils;
public class PredictDemo {
@Test
public void testMTTranslateByDoc() {
//读取文件
String docPath = "/tmp/1.docx";
byte[] fileBytes = FileUtils.getFileBytes(docPath);
String fileContent = Base64.getEncoder().encodeToString(fileBytes);
try {
// 创建DefaultAcsClient实例并初始化
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret); // 您的AccessKey Secret
IAcsClient client = new DefaultAcsClient(profile);
// 创建API请求并设置参数
CommonRequest request = new CommonRequest();
request.setDomain("automl.cn-hangzhou.aliyuncs.com");
request.setVersion("2019-07-01");
request.setAction("PredictMTModelByDoc");
request.setMethod(MethodType.POST);
request.putQueryParameter("ModelId", "1723");
request.putQueryParameter("ModelVersion", "V1");
request.putBodyParameter("FileContent", fileContent);
request.putQueryParameter("FileType", "docx");
request.putQueryParameter("IsXLIFF", "true");
CommonResponse response = client.getCommonResponse(request);
logger.info("PredictDoc ok request:{} response:{}", JSON.toJSONString(request), JSON.toJSONString(response));
if (response.getHttpStatus() == 200) {
//轮询查询文档翻译状态
Thread.sleep(1000*30);
JSONObject data = JSON.parseObject(response.getData());
String docId = data.getString("DocId");
CommonRequest getRequest = new CommonRequest();
getRequest.setDomain("automl.cn-hangzhou.aliyuncs.com");
getRequest.setVersion("2019-07-01");
getRequest.setAction("GetPredictDoc");
getRequest.setMethod(MethodType.POST);
getRequest.putQueryParameter("DocId", docId);
response = client.getCommonResponse(getRequest);
logger.info("GetPredictDoc ok request:{} response:{}", JSON.toJSONString(request), JSON.toJSONString(response));
if (response.getHttpStatus() == 200) {
JSONObject getData = JSON.parseObject(response.getData());
String result = getData.getString("resultContent");
String status = getData.getString("status");
//需要循环判断是否翻译完成
if (status != null && status.equals("2")) {
String xliffInfo = getData.getString("xliffInfo");
String outputFilePath = "/tmp/test.docx";
FileUtils.writeFile(outputFilePath, result.getBytes());
if (xliffInfo != null) {
String xliffPath = "/tmp/xliff.docx";
FileUtils.writeFile(xliffPath, xliffInfo.getBytes());
}
}
}
}
} catch (Exception e) {
logger.error("testMTTranslateByDoc is error", e);
}
}
}
干预接口 3.1干预词包新增接口
请求URL:[http|https]://automl.cn-hangzhou.aliyuncs.com/api/automl/addMtIntervenePackage 本接口(AddMtIntervenePackage)通过RPC方式,用于获取机翻自学习模型产出的结果。
3.1.1 输入参数 参数名称 必选 类型 描述 PackageName 是 String 词包名称 ProjectId 是 Long 项目id SourceLanguage 是 String 源语种(zh,ja,en) TargetLanguage 是 String 目标语种(zh,ja,en) 3.1.2 输出参数 参数名称 类型 描述 code Int32 返回代码 message String 错误信息 RequestId String 请求Id PackageId Long 词包Id 3.1.3 示例
输入:
{
"PackageName": "test",
"ProjectId": "1",
"SourceLanguage": "zh",
"TargetLanguage": "en",
}
输出:
{
"Code": "200",
"RequestId": "aare83jnn9wj3",
"Message": "",
"PackageId": "1"
}
3.2 干预词新增接口 3.2 干预词新增接口
请求URL:[http|https]:[http|https]://automl.cn-hangzhou.aliyuncs.com/api/automl/addMTInterveneWord
本接口(AddMTInterveneWord)通过RPC方式,用于获取机翻自学习模型产出的结果。
3.2.1 输入参数 参数名称 必选 类型 描述 SourceText 是 String 原文 TargetText 是 String 干预文本 PackageId 是 Long 词包Id ProjectId 是 Long 项目id 3.2.2 输出参数 参数名称 类型 描述 code Int32 返回代码 message String 错误信息 RequestId String 请求Id WordId Long 词Id 3.2.3 示例
输入:
{
"PackageName": "test",
"ProjectId": "1"
}
输出:
{
"Code": "200",
"RequestId": "aare83jnn9wj3",
"Message": "",
"PackageId": "1"
}
3.3 干预词包绑定模型接口
请求URL:[http|https]:[http|https]://automl.cn-hangzhou.aliyuncs.com/api/automl/bindIntervenePackageAndModel
本接口(BindIntervenePackageAndModel)通过RPC方式,用于获取机翻自学习模型产出的结果。
3.3.1 输入参数 参数名称 必选 类型 描述 ModelId 是 Long 模型Id ModelVersion 否 String 模型版本,不传入选择最新版本 PackageId 是 Long 词包Id ProjectId 是 Long 项目id 3.3.2 输出参数 参数名称 类型 描述 code Int32 返回代码 message String 错误信息 RequestId String 请求Id Success Long 结果是否正确 3.3.3 示例
输入:
{
"PackageId": "1",
"ProjectId": "1",
"ModelId": "1",
"ModelVersion": "V1"
}
输出:
{
"Code": "200",
"RequestId": "aare83jnn9wj3",
"Message": "",
"Success": "true"
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。