文档翻译任务创建
功能介绍
由于文档翻译会需要较长的时间,因此翻译是异步的,也即接口分为创建翻译任务和查询任务状态两个接口。
创建翻译任务接口创建任务完成后返回,然后用户通过调用查询任务状态接口来获得翻译状态和临时URL。 用户可以使用临时URL下载翻译好的文件,每个临时URL有效期为10分种。翻译结果会保存24小时(从翻译完成的时间算起)。24小时后如果再访问,将会返回 “task id is not found”错误。
文档翻译任务创建接口用于提交文档翻译任务,其中要翻译的文档保存在用户的OBS桶中。用户使用文档翻译服务时,服务需要拥有读取用户OBS桶权限,授权方法见配置OBS访问权限。当前仅支持翻译“docx”、“pptx”和“txt”格式的文档,其中txt格式文档只支持UTF-8编码格式。
文档翻译任务创建接口具体Endpoint请参见终端节点。
调用华为云NLP服务会产生费用,本API按文档页数阶梯计费,文本翻译不支持套餐包抵扣,用户可以在自然语言处理价格计算器价格详情页了解具体计费说明。
本API调用限制为2次/秒。
调试
您可以在API Explorer中调试该接口。
前提条件
在使用本API之前,需要您完成服务申请和认证鉴权,具体操作流程请参见申请服务和认证鉴权章节。
用户首次使用需要先申请开通。服务只需要开通一次即可,后面使用时无需再次申请。如未开通服务,调用服务时会提示ModelArts.4204报错,请在调用服务前先进入控制台开通服务,并注意开通服务区域与调用服务的区域保持一致。
URI
- URI格式
POST /v1/{project_id}/machine-translation/file-translation/jobs
- 参数说明
表1 URI参数说明 参数名
必选
说明
project_id
是
项目ID。获取方法请参见获取项目ID。
请求消息
参数名 |
参数类型 |
必选 |
说明 |
---|---|---|---|
url |
String |
是 |
存放在OBS的文档文件路径,私密文件推荐使用临时授权URL调用服务,如何获取OBS文件URL和临时授权URL请参见配置OBS访问权限。OBS的region要和请求服务的region保持一致,region不一致则OBS不可用,即使obs是公开访问权限。存放在OBS的文档文件名必须是英文字母。 |
from |
String |
是 |
翻译原语言,文档翻译服务当前仅支持中英互译。 |
to |
String |
是 |
翻译目标语言,文档翻译服务当前仅支持中英互译。 |
type |
String |
是 |
文档格式,当前仅支持翻译“docx”、“pptx”和“txt”格式的文档,其中txt格式文档只支持UTF-8编码格式。 |
语言(from) |
语言(to) |
说明 |
---|---|---|
zh |
en |
中文翻译为英文。 |
en |
zh |
英文翻译为中文。 |
响应消息
请求示例
- 请求示例(创建文档翻译任务)
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", "to": "en", "type":"docx" }
- Python3语言请求代码示例(创建文档翻译任务)
# -*- coding: utf-8 -*- # 此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需替换 token = '用户对应region的token' header = { 'Content-Type': 'application/json', 'X-Auth-Token': token } body = { 'url': 'https://****.obs.cn-north-4.huawei.com/***.docx', 'from': 'zh', 'to': 'en', 'type':'docx' } resp = requests.post(url, data=json.dumps(body), headers=header) print(resp.json()) if __name__ == '__main__': nlp_demo()
- Java语言请求代码示例(创建文档翻译任务)
import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; /** * 此demo仅供测试使用,建议使用sdk */ 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." }