大模型翻译 API 简介
概念解释
大型模型翻译:翻译的好助手,使用此服务可以完成翻译、润色、扩写等功能。API可以处理各种复杂的语言结构、词汇和语境,提供高质量的翻译结果。 同时,可以根据用户的需 求和偏好进行定制化的翻译。用户可以通过调整参数、提供上下文信息或者进行反馈,使翻译结果更符合个人或特 定领域的要求,从而实现更加精准、个性化的翻译体验。
说明
Hi,您好,欢迎使用有道智云翻译API接口服务。如果您想快速体验服务,建议您前往翻译体验中心 或者在体验中心右下侧找到小程序二维码,扫描进行体验。
本文档主要针对需要集成HTTP API的技术开发工程师,详细描述大模型翻译能力相关的技术内容。
如果您有与我们商务合作的需求,可以通过以下方式联系我们:
商务邮箱: AIcloud_Business@corp.youdao.com
如果您对文档内容有任何疑问,可以通过以下几种方式联系我们:
客服QQ:1906538062
智云翻译技术交流QQ 1群: 652880659
智云翻译技术交流QQ 2群: 669384425
智云翻译技术交流QQ 3群: 807539209
智云翻译技术交流QQ 4群: 936752411
联系邮箱: zhiyun@corp.youdao.com
温馨提示:
- 本文档主要针对开发人员,接入测试前需要获取
应用ID
和应用密钥
,请按照新手指南 获取。 - 平台向每个账户赠送10元的体验金,实名再赠送40元体验金,供用户集成前测试所用,具体资费规则详见 大模型翻译服务报价 。
接口说明
大模型翻译API接口提供有道的翻译服务,包含了中英翻译、润色、扩写功能。您只需要通过调用大模型翻译API,传入待处理的文本,并指定要翻译的源语言(支持源语言语种自动检测)和目标语言种类,就可以得到相应的翻译结果。
大模型翻译API HTTPS地址:
https://openapi.youdao.com/llm_trans
协议须知
调用方在集成大模型翻译API时,请遵循以下规则。
规则 | 描述 |
---|---|
传输方式 | HTTPS |
请求方式 | GET/POST |
字符编码 | 统一使用UTF-8 编码 |
请求格式 | 表单 |
响应格式 | text/event-stream |
接口调用参数
调用API需要向接口发送以下字段来访问服务。
字段名 | 类型 | 含义 | 必填 | 备注 |
---|---|---|---|---|
i | text | 待翻译文本 | True | 必须是UTF-8编码,限制5000字符 |
prompt | text | 提示词 | False | 必须是UTF-8编码,限制1200字符、400单词 |
from | text | 源语言 | True | 参考下方支持语言 (可设置为auto) |
to | text | 目标语言 | True | 参考下方支持语言 |
streamType | text | 流式返回类型 | False | 参考下方 流式返回类型 |
appKey | text | 应用ID | True | 可在应用管理 查看 |
salt | text | 随机字符串,可使用UUID进行生产 | True | uuid (可使用uuid生成) |
sign | text | 签名 | True | sha256(应用ID+input+salt+curtime+应用密钥) |
signType | text | 签名类型 | True | v3 |
curtime | text | 当前UTC时间戳(秒) | True | TimeStamp |
handleOption | text | 处理模式选项 | False | 参考下方 处理模式选项 |
polishOption | text | 润色选项 | False | 参考下方 润色选项 |
expandOption | text | 扩写选项 | False | 参考下方 扩写选项 |
签名生成方法如下:
signType=v3;
sign=sha256(应用ID
+input
+salt
+curtime
+应用密钥
);
其中,input的计算方式为:input
=i前10个字符
+i长度
+i后10个字符
(当i长度大于20)或input
=i字符串
(当i长度小于等于20);不同语言获取时间戳,请参看此链接
如果对签名有疑问,可以参看各语言demo。
处理模式选项
handleOption取值 | 含义 |
---|---|
0 | 使用通用翻译模型处理请求,通用翻译模型仅提供翻译功能,参数中的 prompt 仅对通用翻译模型生效 |
1 | 使用专业翻译模型处理请求,专业翻译模型可提供翻译、润色、扩写功能,注意:当用户指定from、to为具体语种时,效果更好 |
2 | 使用润色扩写模型处理请求,润色扩写模型可提供翻译、润色、扩写功能,并且最终翻译结果优于专业翻译模型,推荐使用。注意:当用户指定from、to为具体语种时,效果更好 |
- “handleOption”参数在handleOption、polishOption、expandOption中优先级最高,即如果需要润色和扩写功能时,需要设置handleOption = “1” 或者 “2”。
润色选项
polishOption取值 | 含义 | polishOption取值 | 含义 |
---|---|---|---|
0 | 不润色 | ||
1 | 专业化润色 | 2 | 专业化翻译 |
3 | 口语化润色 | 4 | 口语化翻译 |
5 | 简洁化润色 | 6 | 简洁化翻译 |
7 | 丰富化润色 | 8 | 丰富化翻译 |
9 | 计算机领域润色 | 10 | 计算机领域翻译 |
11 | 医学领域润色 | 12 | 医学领域翻译 |
13 | 生物领域润色 | 14 | 生物领域翻译 |
15 | 机械领域润色 | 16 | 机械领域翻译 |
扩写选项
expandOption取值 | 含义 |
---|---|
0 | 不扩写 |
1 | 论文发表 |
2 | 正式邮件 |
- 润色和扩写不会同时生效,如果润色参数和扩写参数均存在时,润色优先。
流式返回类型
streamType取值 | 含义 |
---|---|
increment | 译文文本按照“增量形式”返回,默认按此方式返回。 |
full | 译文文本按照“全量形式”返回。 |
all | 同时返回“增量形式”、“全量形式”译文。 |
- “增量形式”,“全量形式”可参考下方输出结果理解。如果使用专业翻译模型和润色扩写模型,仅支持增量返回。
输出结果
- 输出结果为流式的ServerSentEvent。
正常结果的格式
部分 | event类型 | data结构 | 说明 |
---|---|---|---|
第1部分 | begin | 一个data示例: { "requestId": "1", "type": "zh-CHS2en"} 其中: - type字段表示翻译语言方向 | 一个正常返回结果中,有且仅有一个begin event。 |
第2部分 | message | 一个data示例: { "transFull": "The weather", "transIncre": "her"} 其中: - transFull字段表示“全量形式”译文 - transIncre字段表示“增量形式”译文 | 一个正常返回结果中,可能会有一个或一个以上的message event。 |
第3部分 | end | 一个data示例: { "requestId": "1", "type": "zh-CHS2en", "eventTokenUsage": { "inputToken": 5, "outputToken": 7, "totalToken": 12 }} 其中: - type表示翻译的语言方向 - eventTokenUsage中记录了token的用量 - inputToken表示输入token用量(prompt和i的token用量合计) - output表示输出token用量 - totalToken表示总计token用量 | 一个正常返回结果中,有且仅有一个end event。 |
正常结果的示例
示例一:“增量形式”译文
event:begin
data:{"requestId":"11","type":"zh-CHS2en"}
event:message
data:{"transFull":null,"transIncre":"The"}
event:message
data:{"transFull":null,"transIncre":" w"}
event:message
data:{"transFull":null,"transIncre":"eat"}
event:message
data:{"transFull":null,"transIncre":"her"}
event:message
data:{"transFull":null,"transIncre":" is"}
event:message
data:{"transFull":null,"transIncre":" really"}
event:message
data:{"transFull":null,"transIncre":" nice"}
event:message
data:{"transFull":null,"transIncre":" today"}
event:message
data:{"transFull":null,"transIncre":"."}
event:end
data:{"requestId":"11","type":"zh-CHS2en","eventTokenUsage":{"inputToken":5,"outputToken":7,"totalToken":12}}
示例二:“全量形式”译文
event:begin
data:{"requestId":"12","type":"zh-CHS2en"}
event:message
data:{"transFull":"The","transIncre":null}
event:message
data:{"transFull":"The w","transIncre":null}
event:message
data:{"transFull":"The weat","transIncre":null}
event:message
data:{"transFull":"The weather","transIncre":null}
event:message
data:{"transFull":"The weather is","transIncre":null}
event:message
data:{"transFull":"The weather is really","transIncre":null}
event:message
data:{"transFull":"The weather is really nice","transIncre":null}
event:message
data:{"transFull":"The weather is really nice today","transIncre":null}
event:message
data:{"transFull":"The weather is really nice today.","transIncre":null}
event:end
data:{"requestId":"12","type":"zh-CHS2en","eventTokenUsage":{"inputToken":5,"outputToken":7,"totalToken":12}}
示例三:“增量形式”译文 + “全量形式”译文
event:begin
data:{"requestId":"13","type":"zh-CHS2en"}
event:message
data:{"transFull":"The","transIncre":"The"}
event:message
data:{"transFull":"The w","transIncre":" w"}
event:message
data:{"transFull":"The weat","transIncre":"eat"}
event:message
data:{"transFull":"The weather","transIncre":"her"}
event:message
data:{"transFull":"The weather is","transIncre":" is"}
event:message
data:{"transFull":"The weather is really","transIncre":" really"}
event:message
data:{"transFull":"The weather is really nice","transIncre":" nice"}
event:message
data:{"transFull":"The weather is really nice today","transIncre":" today"}
event:message
data:{"transFull":"The weather is really nice today.","transIncre":"."}
event:end
data:{"requestId":"13","type":"zh-CHS2en","eventTokenUsage":{"inputToken":5,"outputToken":7,"totalToken":12}}
异常结果的格式
一个异常返回的结果由以下三个部分组成:
部分 | event类型 | data结构 | 说明 |
---|---|---|---|
第1部分 | begin | 一个data示例: { "requestId": "1", "type": "zh-CHS2en"} 其中: - type字段表示翻译语言方向,在异常返回时,type有可能是null | 一个异常返回结果中,有且仅有一个begin event。 |
第2部分 | message | 一个data示例: { "transFull": "The weather", "transIncre": "her"} 其中: - transFull字段表示“全量形式”译文 - transIncre字段表示“增量形式”译文 | 一个异常返回结果中,可能会有零个、一个或一个以上的message event。 |
第3部分 | error | 一个data示例: { "code": "40", "msg": "不支持的语言方向!", "eventTokenUsage": { "inputToken": 2, "outputToken": 3, "totalToken": 5 }} 其中: - code表示错误码 - msg表示错误信息 - eventTokenUsage中记录了token的用量 - inputToken表示输入token用量(prompt和i的token用量合计) - output表示输出token用量 - totalToken表示总计token用量 当异常返回时,可能发生token使用,也可能没有token使用。 | 一个异常返回结果中,有且仅有一个error event。 |
异常结果的示例
event:begin
data:{"requestId":"14","type":null}
event:error
data:{"code":"40","msg":"不支持的语言方向!","eventTokenUsage":{"inputToken":0,"outputToken":0,"totalToken":0}}
支持语言
下表为各语言对应代码:
英文名 | 中文名 | 代码 |
---|---|---|
English | 英语 | en |
Chinese | 简体中文 | zh-CHS |
auto | 自动识别 | auto |
注意:
其中auto可以识别中文、英文,其他语种无法识别。
服务配置
单次查询最大字符数 | 并发限制 | 支持语言 |
---|---|---|
5000 | 5qps | 中、英 |
错误代码列表
错误码 | 含义 |
---|---|
101 | 缺少必填的参数,首先确保必填参数齐全,然后确认参数书写是否正确。 |
102 | 不支持的语言类型 |
103 | 翻译文本过长 |
104 | 不支持的API类型 |
105 | 不支持的签名类型 |
106 | 不支持的响应类型 |
107 | 不支持的传输加密类型 |
108 | 应用ID无效,注册账号,登录后台创建应用并完成绑定,可获得应用ID和应用密钥等信息 |
109 | batchLog格式不正确 |
110 | 无相关服务的有效应用,应用没有绑定服务应用,可以新建服务应用。注:某些服务的翻译结果发音需要tts服务,需要在控制台创建语音合成服务绑定应用后方能使用。 |
111 | 开发者账号无效 |
112 | 请求服务无效 |
113 | q不能为空 |
114 | 不支持的图片传输方式 |
116 | strict字段取值无效,请参考文档填写正确参数值 |
201 | 解密失败,可能为DES,BASE64,URLDecode的错误 |
202 | 签名检验失败,如果确认应用ID和应用密钥的正确性,仍返回202,一般是编码问题。请确保翻译文本 q 为UTF-8编码. |
203 | 访问IP地址不在可访问IP列表 |
205 | 请求的接口与应用的平台类型不一致,确保接入方式(Android SDK、IOS SDK、API)与创建的应用平台类型一致。如有疑问请参考入门指南 |
206 | 因为时间戳无效导致签名校验失败 |
207 | 重放请求 |
301 | 辞典查询失败 |
302 | 翻译查询失败 |
303 | 服务端的其它异常 |
304 | 翻译失败,请联系技术同学 |
308 | rejectFallback参数错误 |
309 | domain参数错误 |
310 | 未开通领域翻译服务 |
401 | 账户已经欠费,请进行账户充值 |
402 | offlinesdk不可用 |
411 | 访问频率受限,请稍后访问 |
412 | 长请求过于频繁,请稍后访问 |
2 | 原文为空 |
20 | 原文超过长度限制 |
30 | 暂时无法完成翻译,请稍后重试! |
40 | 不支持的语言方向 |
2101 | 没有有效的底层服务节点 |
3401 | 涉及敏感内容 |
4001 | prompt长度超过限制 |
500 | 未知错误,请提供详细数据信息,联系技术人员协助排查 |