接入指南:密钥配置与源码级解析)
LunaTranslator 传统在线翻译接口TS API接入指南密钥配置与源码级解析【免费下载链接】LunaTranslator视觉小说翻译器 / Visual Novel Translator项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslatorLunaTranslator 在「传统在线翻译接口」模块中为视觉小说翻译场景内置了百度、腾讯、有道、阿里、彩云、火山、谷歌、DeepL、Azure、小牛、Yandex、华为云等十余家云厂商的官方 API 接入实现。本文以仓库文档 docs/ru/useapis/tsapi.md简体中文版为 docs/zh/useapis/tsapi.md为主线结合 src/LunaTranslator/translator 下的真实实现与默认配置逐一讲解每家接口的密钥字段、鉴权方式、签名细节与配置要点帮助你快速在 LunaTranslator 中启用稳定可控的云翻译通道。一、什么是传统在线翻译接口LunaTranslator 的翻译引擎按类型划分为免费接口、官方 API 接口、离线接口与预处理接口等。「传统在线翻译接口」指各云厂商提供的、以 API Key / 密钥签名鉴权的正式翻译服务与需要自建模型或中转服务的 GPT 类接口相对特点是稳定性高、计费透明适合长时间批量翻译文本。在仓库默认配置 src/LunaTranslator/defaultconfig/config.json 中这些接口统一被标记为type: api例如baiduapi百度、aliyunapi阿里、tencentapi腾讯、yandexapiYandex、xiaoniu小牛、caiyunapi彩云、huoshanapi火山、youdaoapi有道、hwcloud华为云、azureAzure、deeplapi-freeDeepL。在翻译引擎基类 src/LunaTranslator/translator/basetranslator.py 中transtype属性解释了各类型的运行差异free免费接口可能被新的请求打断dev/api官方接口遵循请求间隔控制offline离线接口请求不会被新请求打断pre预处理接口不走常规翻译流水线也不使用翻译缓存。使用官方 API 时除了正确配置密钥还需要注意请求频率限制由globalconfig[requestinterval]统一控制相邻请求的最小间隔、代理设置这些type: api接口在默认配置中useproxy均为false默认直连以及语言代码的映射规则。二、统一接入机制所有传统 API 共用的底层流水线2.1 密钥配置与多 Key 轮换每个翻译引擎的密钥字段都在 src/LunaTranslator/defaultconfig/translatorsetting.json 中声明界面表现为可填写多组的textlist并带issecret: true标记输入时掩码显示。运行时读取统一走 src/LunaTranslator/myutils/commonbase.py 的multiapikeycurrent属性同一接口配置多组密钥时multiapikeywrapper按轮次自动切换实现多账号负载均衡checkempty负责在密钥为空时给出明确提示防止请求打到无凭据的接口。2.2 请求队列、翻译缓存与语言映射basetrans是所有传统 API 翻译器的基类维护一个带优先级的请求队列后台线程_fythread逐个消费请求间隔intervaledtranslate()依据globalconfig[requestinterval]单位秒控制相邻请求发送时机避免触发厂商限流翻译缓存shortorlongcacheget()以md5(srclang, tgtlang, content)为键缓存结果相同句子不会重复调用 API语言映射每个翻译器通过langmap()把 LunaTranslator 的标准语言码映射为厂商语言码未声明的语言默认使用标准语言码繁简处理部分引擎声明needzhconv True如 Yandex、华为云翻译结果经maybezhconvwrapper()自动做简繁转换以覆盖厂商不支持繁体输出的情况。2.3 语言映射的关键约定基类langmap()注释特别强调如果 API 支持繁体中文cht必须在 langmap 中显式声明否则引擎会先翻译成简体再通过本地简繁转换得到繁体。因此阅读下文各厂商的langmap时请特别留意是否出现TradChinese: cht、zh-TW、zh-Hant等条目——这直接决定繁体中文的翻译质量。三、各厂商传统翻译 API 接入详解3.1 百度baiduapi百度在 LunaTranslator 中支持三种接口通过配置项interface切换对应 translatorsetting.json 的baiduapi配置与 baiduapi.py 的translate()分发逻辑interface接口名称所需密钥调用入口0百度翻译开放平台_通用文本翻译APP ID、密钥translate_fy()1百度智能云API Key、Secret Keytranslate_bce()2百度翻译开放平台_大模型文本翻译APP ID、密钥translate_damoxing()开放平台通用翻译interface0调用https://api.fanyi.baidu.com/api/trans/vip/translateMD5 签名sign md5(appid q salt secretKey)salt为随机数是百度翻译开放平台的标准签名方式。百度智能云interface1先从https://aip.baidubce.com/oauth/2.0/token以grant_typeclient_credentials换取access_token按(API_KEY, SECRET_KEY)缓存避免重复换取再调用https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1完成翻译。开放平台大模型翻译interface2调用https://fanyi-api.baidu.com/ait/api/aiTextTranslate在Authorization: Bearer 密钥头携带密钥请求体含appid、q、from、to。百度引擎语言映射较完整西班牙语→spa、韩语→kor、法语→fra、日语→jp、越南语→vie、乌克兰语→ukr、阿拉伯语→ara、瑞典语→swe、拉丁语→lat并显式声明繁体中文→cht直接支持繁体输出。3.2 腾讯tencentapi配置字段SecretId、SecretKey、Region地区下拉共 17 个可选区域覆盖北京、上海、成都、重庆、广州、香港、孟买、首尔、新加坡、东京、曼谷、法兰克福、弗吉尼亚、硅谷、多伦多等。实现要点见 tencentapi.py端点tmt.tencentcloudapi.comActionTextTranslateVersion2018-03-21签名算法HmacSHA1请求参数按字典序拼接为method endpoint /? query用hmac.new(secret_key, s, sha1)计算签名与腾讯云官方签名流程一致语言映射仅一条繁体中文→zh-TW其余语言使用标准语言码。代码注释明确提示此处会实际调用成功后可能产生计费建议首次配置后先用少量文本手动测试。3.3 有道youdaoapi配置字段APP_KEY应用 ID、APP_SECRET应用密钥对应有道智云翻译开放平台的凭据体系。实现要点见 youdaoapi.py端点https://openapi.youdao.com/apiv3 签名sign sha256(APP_KEY input_text uuid curtime APP_SECRET)携带saltuuid、signTypev3、curtime秒级时间戳输入截断细节文本长度 ≤20 时直接使用原文参与签名超过 20 时取前 10 字符 长度 后 10 字符参与签名这是有道签名规范的要求LunaTranslator 已正确实现语言映射简体中文→zh-CHS。3.4 阿里aliyunapi配置字段Access_KeyAccessKey ID、SECRET_KEYAccessKey Secret来自阿里云 RAM 创建的密钥对。实现要点见 aliyunapi.py端点http://mt.cn-hangzhou.aliyuncs.com/api/translate/web/general源码使用 HTTP 明文端点敏感文本场景需自行评估请求体为 JSONActionTranslate、FormatTypetext、SourceLanguage、TargetLanguage、SourceText、Scenegeneral完整复刻阿里云 API 网关签名规范计算Content-MD5拼装stringToSign含日期、nonce、x-acs-signature-method:HMAC-SHA1、x-acs-version:2019-01-02HMAC-SHA1 生成Authorization: acs AccessKeyId:signature语言映射繁体中文→zh-tw。3.5 彩云caiyunapi配置字段仅Token一项。实现要点见 caiyunapi.py端点http://api.interpreter.caiyunai.com/v1/translator请求体 JSONtrans_type由语言码拼接形如srclang2tgtlang例如zh2ja并带detecttrue自动检测源语言鉴权请求头x-authorization: token Token语言映射繁体中文→zh-Hant。3.6 火山huoshanapi配置字段Access Key ID、Secret Access Key来自火山引擎账号体系。实现要点见 huoshanapi.py这是仓库中签名实现最完整的一个完整实现火山引擎 V4 签名SignerV4规范化请求 → 签名串 → 分层 HMAC-SHA256 派生签名密钥date → region → service → request→ 生成Authorization头服务信息主机open.volcengineapi.comActionTranslateTextVersion2020-06-01servicetranslateregioncn-north-1请求体含TargetLanguage、TextList仅当源语言非自动检测时携带SourceLanguage语言映射繁体中文→zh-Hant。3.7 谷歌googleapi配置字段keyAPI Key一项。原文档指向 Google Cloud Translation 基础版Basic文本翻译接口使用 API Key 鉴权LunaTranslator 对应实现位于 googleapi.py。启用前需在 Google Cloud Console 开通 Translation API 并生成 API Key使用前注意网络可达性。3.8 DeepLdeeplapi-free配置字段usewhich类型下拉Free / Pro、DeepL-Auth-Key、DeepL-Auth-Key-2可同时配置 Free 与 Pro 两套 Auth Key 并通过usewhich切换对应实现位于 deeplapi-free.py。DeepL 对免费额度与语种有明确限制正式使用前以官方 API 说明为准。3.9 Azureazure配置字段与原文档给出的两个关键请求头一一对应key1→ 请求头Ocp-Apim-Subscription-KeyAzure 门户密钥和终结点页面的订阅密钥Location→ 请求头Ocp-Apim-Subscription-Region区域多服务或区域型资源必填。实现要点见 azure.py端点https://api.cognitive.microsofttranslator.com/translateapi-version3.0请求体为数组[{text: query}]返回解析取response[0][translations][0][text]额外携带X-ClientTraceIduuid便于追踪请求语言映射繁体中文→zh-Hant、简体中文→zh-Hans是少数直接区分简繁的引擎。3.10 小牛xiaoniu配置字段apikey。实现要点见 xiaoniu.py端点https://api.niutrans.com/NiuTransServer/translation以表单form data提交from、to、src_text、apikey返回结果取tgt_text字段未声明语言映射繁体中文按基类约定先翻译为简体再做简繁转换。3.11 Yandexyandexapi配置字段keyAPI Key对应 Yandex Cloud Translate 服务账号 API Key。实现要点见 yandexapi.py端点https://translate.api.cloud.yandex.net/translate/v2/translate请求体 JSONtargetLanguageCode必填、texts为字符串数组、仅当源语言非自动检测时携带sourceLanguageCode鉴权请求头Authorization: Api-Key key声明needzhconv True翻译结果统一走简繁转换。3.12 华为云hwcloud配置字段akAccess Key Id、skSecret Access Key、endpoint默认cn-north-4。实现要点见 hwcloud.py是仓库中鉴权链路最长的一个端点映射内置{cn-north-4: nlp-ext.cn-north-4.myhuaweicloud.com}未匹配的 endpoint 也会回落为 cn-north-4翻译前先通过 IAMhttps://iam.myhuaweicloud.com/v3/projects用SignerSDK-HMAC-SHA256查询并缓存project_id随后POST /v1/{project_id}/machine-translation/text-translation调用机器翻译服务请求体含text、from、to、scenecommon完整实现华为云签名算法SDK-HMAC-SHA256规范化请求、字符串签名、Authorization: SDK-HMAC-SHA256 Access..., SignedHeaders..., Signature...声明needzhconv True翻译结果经过简繁转换。四、配置与排错要点汇总密钥字段对应初始化或首次请求报错时错误消息会附带引擎名称basetrans初始化失败通过displayinfomessage弹出见 basetranslator.py 的异常处理。请按上文表格逐一核对字段名尤其注意百度interface不同取值对应不同密钥组0/2 用 APP ID 密钥1 用 API Key Secret Key。请求间隔与限流所有传统 API 共用globalconfig[requestinterval]控制频率若仍触发限流请在翻译设置中调大该值。部分厂商如腾讯代码注释明确提示调用会产生计费建议先用短文本验证。繁体中文输出只有显式声明繁体映射的引擎百度、腾讯、彩云、火山、Azure直接返回繁体其余引擎小牛、Yandex、华为云等通过needzhconv本地简繁转换。签名类错误百度MD5、有道SHA256 v3、腾讯HmacSHA1、火山V4、阿里HMAC-SHA1、华为云SDK-HMAC-SHA256均为自带签名请求密钥正确且系统时间准确即可通过签名校验失败时优先检查设备时钟同步。地区参数腾讯Region、AzureLocation、华为云endpoint直接影响可用性与计费区域请与云控制台开通服务的区域保持一致。代理设置这批type: api接口默认useproxy为false如网络环境需要代理如谷歌接口可在对应引擎设置中开启。五、延伸阅读仓库内相关实现与配置文档原始内容docs/ru/useapis/tsapi.md、docs/zh/useapis/tsapi.md、docs/en/useapis/tsapi.md引擎基类与统一流水线src/LunaTranslator/translator/basetranslator.py多密钥轮换与空值检查src/LunaTranslator/myutils/commonbase.py各厂商实现baiduapi.py、tencentapi.py、youdaoapi.py、aliyunapi.py、caiyunapi.py、huoshanapi.py、azure.py、xiaoniu.py、yandexapi.py、hwcloud.py、googleapi.py、deeplapi-free.py密钥字段与界面声明src/LunaTranslator/defaultconfig/translatorsetting.json引擎注册与默认参数type、useproxy、名称src/LunaTranslator/defaultconfig/config.json【免费下载链接】LunaTranslator视觉小说翻译器 / Visual Novel Translator项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslator创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考