LunaTranslator 傳統線上翻譯介面(傳統 API)配置實戰指南:從註冊金鑰到介面原始碼

LunaTranslator 傳統線上翻譯介面(傳統 API)配置實戰指南:從註冊金鑰到介面原始碼 LunaTranslator 傳統線上翻譯介面傳統 API配置實戰指南從註冊金鑰到介面原始碼【免费下载链接】LunaTranslator视觉小说翻译器 / Visual Novel Translator项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslator本文以 LunaTranslator 的官方文檔 docs/cht/useapis/tsapi.md 為主體系統講解「傳統線上翻譯介面」傳統 API在視覺小說翻譯器中的定位、各大雲端翻譯平台的申請與配置方法並結合 src/LunaTranslator/defaultconfig/translatorsetting.json 與 src/LunaTranslator/translator 下的介面實作原始碼深入剖析每個介面的憑證參數、簽名算法與呼叫鏈。讀完後你將能為 LunaTranslator 正確申請並配置百度、騰訊、有道、阿里、彩雲、火山、Google、DeepL、Azure、小牛、Yandex、華為雲等任一家翻譯 API並理解介面背後的工作原理與排錯思路。什麼是「傳統線上翻譯介面」在 LunaTranslator 中翻譯來源被劃分為幾大類免費用戶端翻譯如 Google 網頁版、Bing 等、傳統 API即各家雲端平台提供的通用文字翻譯 HTTP 介面、大模型翻譯介面OpenAI 相容的 Chat Completions見 docs/zh/guochandamoxing.md以及離線翻譯。本文的主角「傳統 API」對應的是依賴廠商正式金鑰、走標準簽名認證流程的雲端文字翻譯服務它們通常具備以下特徵需要先在廠商平台註冊帳號、開通服務並建立金鑰Access Key / Secret Key / Token 等請求需要攜帶簽名或認證訊息部分平台簽名算法較為複雜MD5、HMAC-SHA1、HMAC-SHA256、SDK-HMAC-SHA256 等翻譯品質穩定、語種覆蓋廣適合對翻譯結果要求較高的場景多數按字數計費介面在呼叫時即可能產生費用。在原始碼中這些介面統一繼承自 basetranslator.py 的basetrans基類。從transtype的註解free/dev/api/offline/pre可以看出api類型的介面走標準的「請求間隔 多金鑰輪詢 結果快取」管線intervaledtranslate、multiapikeywrapper、shortorlongcacheget而basetrans中的langmap()方法basetranslator.py負責把 LunaTranslator 的標準語言碼映射為各家 API 自己的語言代碼例如繁體中文在不同平台可能是cht、zh-Hant、zh-TW。配置前的通用準備無論選擇哪一家平台在 LunaTranslator 中的配置流程都一致在「翻譯設定」中新增/選擇對應的傳統 API 介面前往平台申請對應的憑證本文各節會逐一列出將憑證填入介面的參數欄位啟用後即可使用可同時配置多個介面並設定優先級或對同一介面填多組金鑰進行輪詢多組金鑰用|分隔。需要說明的是原始文檔為每個平台給出了官方註冊/文檔入口連結考慮到連結可能變更本文以平台名稱 需要申請的憑證類型的方式描述讀者按名稱在對應雲平台官方站點檢索即可找到入口。多金鑰與請求間隔從 basetranslator.py 的intervaledtranslate可以看到所有 API 類翻譯請求都受globalconfig[requestinterval]全域請求間隔控制避免短時間內發送過多請求觸發限流而multiapikeywrapper負責多組金鑰的自動輪詢當某一組金鑰報錯時會自動切換或降低其權重。這意味著你完全可以為某個介面同時填入多把金鑰來提升額度。各大平台申請與配置詳解百度三種介面百度是唯一同時提供三個不同介面選項的平台在 translatorsetting.json 的baiduapi配置節點中interface下拉清單依次為百度翻譯開放平台_通用文本翻譯需要APP ID與密鑰APP ID、密钥均標記為issecret: true。對應原始碼 baiduapi.py 的translate_fy呼叫端點為https://api.fanyi.baidu.com/api/trans/vip/translate簽名算法為md5(appid q salt secretKey)salt為 3276865536 之間的隨機數。百度智能雲需要API Key與Secret Key。對應 baiduapi.py 的translate_bce先用API Key/Secret Key向https://aip.baidubce.com/oauth/2.0/token換取access_tokenget_access_token見 baiduapi.py再呼叫https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1進行翻譯。百度翻譯開放平台_大模型文本翻譯需要APP ID與密鑰對應 baiduapi.py 的translate_damoxing端點為https://fanyi-api.baidu.com/ait/api/aiTextTranslate以Authorization: Bearer 密钥認證。文檔中提到的兩個申請入口對應上述兩類平台「百度翻譯開放平台」用於申請 APP ID/密鑰「百度智能雲」用於申請 API Key/Secret Key。三種介面的語言映射統一由 baiduapi.py 的langmap定義如日文jp、韓文kor、法文fra、繁體中文cht等。騰訊騰訊雲機器翻譯使用SecretId與SecretKeytranslatorsetting.json 的tencentapi另有可選的Region參數預設提供ap-beijing、ap-shanghai、ap-chengdu、ap-chongqing、ap-guangzhou、ap-hongkong、ap-mumbai、ap-seoul、ap-singapore、ap-tokyo、ap-bangkok、eu-frankfurt、na-ashburn、na-siliconvalley、na-toronto等 17 個地域選項。原始碼 tencentapi.py 展示了完整的騰訊雲簽名流程端點為tmt.tencentcloudapi.com請求TextTranslate動作Version: 2018-03-21將所有參數按字典序排序後拼接成GET endpoint /? 排序後的 queryget_string_to_sign以 SecretKey 為金鑰、HMAC-SHA1 計算簽名並做 Base64 編碼sign_str最後透過 GET 請求送出。原始碼註解明確提示「此處會實際調用成功後可能產生計費」。有道有道智雲翻譯需要APP_KEY應用ID與APP_SECRET應用密鑰配置節點為 translatorsetting.json 的youdaoapi。有道 v3 簽名的特殊性在於長文本截斷原始碼 youdaoapi.py 中若待翻譯文本超過 20 字元則取「前 10 字元 總長度 後 10 字元」作為簽名輸入簽名為sha256(appKey input salt(uuid) curtime appSecret)請求端點為https://openapi.youdao.com/api。阿里阿里雲機器翻譯需要AccessKey ID與AccessKey Secret配置節點aliyunapi見 translatorsetting.json。文檔提醒需先開通機器翻譯服務再到 RAM 控制台建立金鑰。原始碼 aliyunapi.py 顯示其呼叫端點為http://mt.cn-hangzhou.aliyuncs.com/api/translate/web/general簽名採用經典的阿里雲風格對請求體做 MD5 → Base64 得到Content-MD5再按POST\naccept\nmd5\ncontent-type\ndate\nx-acs-signature-method:HMAC-SHA1\nx-acs-signature-nonce\nx-acs-version\npath格式組裝待簽名串用 HMAC-SHA1 簽名後放入Authorization: acs AccessKeyID:signature頭。彩雲LingoCloud彩雲小譯需要Token訪問令牌配置節點caiyunapitranslatorsetting.json。原始碼 caiyunapi.py 顯示其呼叫http://api.interpreter.caiyunai.com/v1/translator在x-authorization: token Token頭中攜帶憑證請求體包含source、trans_type格式為源語言2目標語言與detect欄位。文檔中的申請入口為彩雲「靈光 API」的訪問令牌申請頁面。火山火山引擎火山引擎機器翻譯需要Access Key ID與Secret Access Key配置節點huoshanapi見 translatorsetting.json。原始碼 huoshanapi.py 完整實現了火山引擎的HMAC-SHA256 / SignerV4簽名流程端點open.volcengineapi.comAction: TranslateText、Version: 2020-06-01將請求方法、規範化 URI/Query、簽名頭與 body 雜湊組成規範請求後逐層派生簽名金鑰get_signing_secret_key_v4最終寫入Authorization頭。呼叫體為{TargetLanguage:..., TextList: [...]}返回結果按TranslationList解析。GoogleGoogle Cloud Translation 需要keyAPI Key配置節點googleapitranslatorsetting.json。原始碼 googleapi.py 呼叫https://translation.googleapis.com/language/translate/v2/GET 參數為key、target、q源語言為自動偵測時可不傳source。注意返回結果經過 HTML unescape 處理unescape避免lt;等實體符號污染翻譯結果。DeepLDeepL 官方 API 需要DeepL-Auth-KeyAuth Key配置節點deeplapi-freetranslatorsetting.json提供Free與Pro兩種套餐切換usewhichFree 套餐對應DeepL-Auth-Key端點為https://api-free.deepl.com/v2/translatePro 套餐對應DeepL-Auth-Key-2端點為https://api.deepl.com/v2/translate。原始碼 deeplapi-free.py 顯示請求以Authorization: DeepL-Auth-Key key頭認證參數為text與target_lang同時其srclang/tgtlang屬性的特殊之處在於將繁體中文映射為ZH-HANT見 deeplapi-free.py。AzureAzure 翻譯器需要兩項關鍵訊息文檔中特別標出原始碼 azure.py 也一一對應key1對應請求頭Ocp-Apim-Subscription-Key在 translatorsetting.json 中標記為機密Location對應請求頭Ocp-Apim-Subscription-Region當使用多服務或區域非全域資源時必須填寫可在 Azure 入口網站的「金鑰與端點」頁面找到。請求端點為https://api.cognitive.microsofttranslator.com/translateapi-version: 3.0並會生成X-ClientTraceIdUUID用於追蹤。語言映射將繁體中文/簡體中文映射為zh-Hant/zh-Hans見 azure.py。小牛NiuTrans小牛翻譯需要apikey配置節點xiaoniutranslatorsetting.json。原始碼 xiaoniu.py 呼叫https://api.niutrans.com/NiuTransServer/translation以apikey參數認證返回tgt_text欄位。YandexYandex Cloud Translate 需要keyAPI Key配置節點yandexapitranslatorsetting.json並設定needzhconv True見 yandexapi.py表示返回的簡體中文結果需要額外轉換為繁體時由框架處理。原始碼 yandexapi.py 呼叫https://translate.api.cloud.yandex.net/translate/v2/translate以Authorization: Api-Key key認證。文檔提到的申請方式是 Yandex Cloud 的服務帳號service account認證。華為雲華為雲 NLP 機器翻譯需要akAccess Key Id、skSecret Access Key與endpoint預設cn-north-4配置節點hwcloudtranslatorsetting.json。原始碼 hwcloud.py 是各介面中簽名最完整的一份它內建了完整的SDK-HMAC-SHA256 SignerSigner類先向https://iam.myhuaweicloud.com/v3/projects以金鑰簽名獲取project_id並快取於self.cacheproject再以POST https://nlp-ext.cn-north-4.myhuaweicloud.com/v1/{project_id}/machine-translation/text-translation發送翻譯請求請求體包含text、from、to與scene: common每次請求的Authorization頭由 Signer 依規範請求動態生成。各介面參數速查表平台配置節點translatorsetting.json需要填寫的憑證/參數對應實作檔案認證/簽名方式百度開放平台baiduapiinterface0/2APP ID、密鑰baiduapi.pyMD5 簽名 / Bearer Token百度智能雲baiduapiinterface1API Key、Secret Keybaiduapi.pyOAuth access_token騰訊tencentapiSecretId、SecretKey、Regiontencentapi.pyHMAC-SHA1 簽名有道youdaoapiAPP_KEY、APP_SECRETyoudaoapi.pySHA256 v3 簽名阿里aliyunapiAccess_Key、SECRET_KEYaliyunapi.pyHMAC-SHA1 Content-MD5彩雲caiyunapiTokencaiyunapi.pyx-authorization: token火山huoshanapiAccess Key ID、Secret Access Keyhuoshanapi.pyHMAC-SHA256 SignerV4Googlegoogleapikeygoogleapi.pyAPI KeyDeepLdeeplapi-freeDeepL-Auth-KeyFree/Prodeeplapi-free.pyAuthorization 頭Azureazurekey1、Locationazure.pyOcp-Apim-Subscription-* 頭小牛xiaoniuapikeyxiaoniu.py參數認證Yandexyandexapikeyyandexapi.pyAuthorization: Api-Key華為雲hwcloudak、sk、endpointhwcloud.pySDK-HMAC-SHA256介面運作的底層機制統一的翻譯管線所有傳統 API 介面最終都匯入basetrans的翻譯管線basetranslator.py 的_fythread請求進入優先級佇列後會依次執行「語言相同直接跳過 → 檢查是否可被新請求打斷內嵌翻譯請求不可放棄→ 需要時重建會話maybeneedreinit→ GPT 類別時解析詞典 → 呼叫translate_and_collect」。translate_and_collectbasetranslator.py會先查詢翻譯快取以md5(src, tgt, sentence)為鍵未命中時才真正發送 API 請求並將結果寫回快取。這意味著同一句文本反覆出現時視覺小說中的重複對話十分常見不會重複計費。語言映射與簡繁轉換各家 API 的語言代碼並不相同langmap()返回的字典即為「標準語言碼 → 廠商語言碼」的映射。從 basetranslator.py 的註解可知若某 API 支援繁體中文必須在langmap中明確宣告如cht、zh-Hant、zh-TW、ZH-HANT否則系統會將繁體中文視為簡體中文翻譯再透過zhconv轉換為繁體。另外部分介面如 Yandex宣告needzhconv True表示結果需要做簡繁轉換的後處理。計費與限流注意事項騰訊原始碼註解明確「此處會實際調用成功後可能產生計費」其餘 API 同理配置完成後首次翻譯即可能開始計費建議先以少量文本測試各介面的checkempty會在憑證未填寫時拋出ArgsEmptyExc異常介面初始化失敗或請求失敗會經由displayinfomessage提示具體錯誤basetranslator.py透過「全域請求間隔」參數可控制所有 API 的請求頻率配合多金鑰輪詢可以有效規避平台 QPS 限制。配置建議與常見問題憑證填錯位置百度三種介面的憑證欄位不同interface1智能雲只認API Key/Secret Key另兩種只認APP ID/密鑰填錯會報錯原始碼透過refcombo關聯translatorsetting.json控制不同介面顯示不同的欄位。繁體中文翻譯異常如果選用未在langmap中宣告繁體支援的介面LunaTranslator 會先翻譯為簡體再轉換可能出現術語不一致需要精確繁體時優先選擇明確支援繁體的介面Azure、DeepL、火山、彩雲等。請求報錯排查介面請求失敗時原始碼多數以raise Exception(response)返回原始回應內容可在 LunaTranslator 的錯誤訊息中直接看到廠商的錯誤碼與描述如baiduapi.py的translate_fy/translate_bce/translate_damoxing均為此模式。多平台對比可以同時啟用多個傳統 API 介面與大模型介面的多實例用法一致在設定中調整優先級讓 LunaTranslator 依序嘗試實現主備切換或結果對比。總結「傳統線上翻譯介面」是 LunaTranslator 翻譯體系中最依賴正式雲端金鑰的一類介面其配置本質上是「在平台申請對應憑證 → 在 translatorsetting.json 對應節點填入參數 → 由 basetranslator.py 統一管線調度」。無論是 MD5、HMAC-SHA1 還是 SDK-HMAC-SHA256 簽名src/LunaTranslator/translator 目錄下的實作都已完整封裝使用者只需關注憑證的正確性與平台額度即可。對於追求更高翻譯品質的場景也可參考 docs/zh/guochandamoxing.md 切換到大模型翻譯介面兩者在 LunaTranslator 中可並行配置、互相補充。【免费下载链接】LunaTranslator视觉小说翻译器 / Visual Novel Translator项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslator创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考