开发者社区> 问答> 正文

自学习平台调用的API有哪些?

自学习平台调用的API有哪些?

展开
收起
保持可爱mmm 2020-03-27 14:54:05 735 0
1 条回答
写回答
取消 提交回答
    1. 文本预测接口 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();
            }
        }
    }
    
    1. 文档预测接口

      由于文档预测采用异步预测方式,需要先调用上传接口获取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);
            }
        }
    }
    
    1. 干预接口 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"
        }
    
    1. 错误码 错误码 含义说明 200 正常返回 10001 参数校验异常 11009 调用额度已超出限制 13016 调用接口被限流(默认模型+用户维度10qps) 13017 模型鉴权失败 13018 未找到模型 13020 模型未发布成功 19999 服务器内部出现错误,请稍后重试或者联系客服人员帮忙解决。
    2020-03-27 14:56:33
    赞同 展开评论 打赏
问答分类:
API
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Boot2.0实战Redis分布式缓存 立即下载
CUDA MATH API 立即下载
API PLAYBOOK 立即下载