• 沒有找到結果。

4.4 机器翻译服务接口说明

4.4.3 文档翻译任务创建

功能介绍

由于文档翻译会需要较长的时间,因此翻译是异步的,也即接口分为创建翻译任务和 查询任务状态两个接口。

创建翻译任务接口创建任务完成后返回,然后用户通过调用查询任务状态接口来获得 翻译状态和临时URL。 用户可以使用临时URL下载翻译好的文件,每个临时URL有效 期为10分种。翻译结果会保存24小时(从翻译完成的时间算起)。24小时后如果再访 问,将会返回 “task id is not found”错误。

文档翻译任务创建接口用于提交文档翻译任务,其中要翻译的文档保存在用户的OBS 桶中。用户使用文档翻译服务时,服务需要拥有读取用户OBS桶权限,授权方法见配

置OBS访问权限。

文档翻译任务创建接口具体Endpoint请参见终端节点。

调用华为云NLP服务会产生费用,本API按文档页数阶梯计费,文本翻译不支持套餐包 抵扣,用户可以在自然语言处理价格计算器价格详情页了解具体计费说明。

调试

您可以在API Explorer中调试该接口。

前提条件

在使用本API之前,需要您完成服务申请和认证鉴权,具体操作流程请参见申请服务和

认证鉴权章节。

说明

用户首次使用需要先申请开通。服务只需要开通一次即可,后面使用时无需再次申请。如未开通 服务,调用服务时会提示ModelArts.4204报错,请在调用服务前先进入控制台开通服务,并注 意开通服务区域与调用服务的区域保持一致。

URI

● URI格式

POST /v1/{project_id}/machine-translation/file-translation/jobs

● 参数说明

4-95 URI 参数说明

参数名 必选 说明

project_id 是 项目编号。获取方法,请参见获取项目ID。

请求消息

请求参数说明请参见表4-96。

4-96 请求参数说明

参数名 参数类型 必选 说明

url String 是 存放在OBS的文档文件路径,私密

文件推荐使用临时授权URL调用服 务,如何获取OBS文件URL和临时授 权URL请参见配置OBS访问权限。

OBS的region要和请求服务的region 保持一致,region不一致则OBS不 可用,即使obs是公开访问权限。存 放在OBS的文档文件名必须是英文 字母。

from String 是 翻译原语言,文档翻译服务当前仅

支持中英互译。

to String 是 翻译目标语言,文档翻译服务当前

仅支持中英互译。

type String 是 文档格式,当前仅支持翻译

“docx”、“pptx”和“txt”格式 的文档。

4-97 支持的语言列表

语言(from) 语言(to) 说明

zh en 中文翻译为英文。

en zh 英文翻译为中文。

响应消息

响应参数说明请参见表 响应参数说明。

4-98 响应参数说明

参数名 参数类型 说明

job_id String 创建的任务标识, 如果创建任务成功时必存在。创建 失败无此参数。

error_code String 参见错误码列表,调用成功无此参数。

error_msg String 返回错误信息,调用成功无此参数。

示例

● 请求示例

POST https://{endpoint}/v1/{project_id}/machine-translation/file-translation/jobs Request Header:

Content-Type:application/json X-Auth-Token:

MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...

Request Body:

{

"url": "https://****.obs.cn-north-4.huawei.com/***.docx", "from": "zh",

-*-# 此demo仅供测试使用,建议使用sdk。需提前安装requests,执行pip install requests import requests

import json def nlp_demo():

url = 'https://{endpoint}/v1/{project_id}/machine-translation/file-translation/jobs' # endpoint和 project_id需替换

resp = requests.post(url, data=json.dumps(body), headers=header) print(resp.text)

if __name__ == '__main__':

nlp_demo() */public class NLPDemo {

public void nlpDemo() { try {

//endpoint和projectId需要替换成实际信息。

URL url = new URL("https://{endpoint}/v1/{project_id}/machine-translation/file-translation/

jobs");

String token = "对应region的token";

HttpURLConnection connection = (HttpURLConnection) url.openConnection();

connection.setRequestMethod("POST");

connection.setDoInput(true);

connection.setDoOutput(true);

connection.addRequestProperty("Content-Type", "application/json");

connection.addRequestProperty("X-Auth-Token", token);

//输入参数

//mtUrl请按照API说明,将文档上传至OBS后获取对应URL地址 String mtUrl = "https://*.obs.cn-north-4.myhuaweicloud.com/*.docx";

String from = "en";

String to = "zh";

String body = "{\"url\":\"" + mtUrl + "\" ,\"from\":\"" + from + "\" ,\"to\":\"" + to + "\" ,\"type

\":\"docx\"}";

OutputStreamWriter osw = new OutputStreamWriter(connection.getOutputStream(),

"UTF-8");

osw.append(body);

osw.flush();

InputStream is = connection.getInputStream();

BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));

while (br.ready()) {

System.out.println(br.readLine());

}

} catch (Exception e) { e.printStackTrace();

} }

public static void main(String[] args) { NLPDemo nlpDemo = new NLPDemo();

nlpDemo.nlpDemo();

} }

● 成功响应示例

{ "job_id": "567e6536-****-****-****-826321939656"

}

● 失败响应示例

{ "error_code": "NLP.0101",

"error_msg": "Authentication failed. Verify the token."

}