From e50387a7961be5654019ebf332c1d91a83177098 Mon Sep 17 00:00:00 2001 From: Gabe Date: Wed, 12 Nov 2025 00:56:27 +0800 Subject: [PATCH] fix: custom apis --- custom-api_v2.md | 31 +++++++++++++++++++++++++++++++ src/apis/trans.js | 13 ++++++++++--- src/config/api.js | 1 - 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/custom-api_v2.md b/custom-api_v2.md index 5bf6950..d1c8558 100644 --- a/custom-api_v2.md +++ b/custom-api_v2.md @@ -5,6 +5,37 @@ 如果接口的请求数据和返回数据符合以下规范, 则无需填写 `Request Hook` 或 `Response Hook`。 + +### 非聚合翻译 (v2.0.9) + +Request body + +```json +{ + "text": "hello", // 需要翻译的文本列表 + "from":"auto", // 原文语言 + "to": "zh-CN" // 目标语言 +} +``` + +Response + +```json +{ + "text": "你好", // 译文 + "src": "en" // 原文语言 +} + +// 或者 +{ + "text": "你好", // 译文 + "from": "en" // 原文语言 +} +``` + + +### 聚合翻译 + Request body ```json diff --git a/src/apis/trans.js b/src/apis/trans.js index 5768f30..060d5c4 100644 --- a/src/apis/trans.js +++ b/src/apis/trans.js @@ -589,8 +589,10 @@ const genCloudflareAI = ({ texts, from, to, url, key }) => { return { url, body, headers }; }; -const genCustom = ({ texts, fromLang, toLang, url, key }) => { - const body = { texts, from: fromLang, to: toLang }; +const genCustom = ({ texts, fromLang, toLang, url, key, useBatchFetch }) => { + const body = useBatchFetch + ? { texts, from: fromLang, to: toLang } + : { text: texts[0], from: fromLang, to: toLang }; const headers = { "Content-type": "application/json", Authorization: `Bearer ${key}`, @@ -810,6 +812,8 @@ export const parseTransRes = async ( history.add(userMsg, hookResult.modelMsg); } return hookResult.translations; + } else if (Array.isArray(hookResult)) { + return hookResult; } } catch (err) { kissLog("run res hook", err); @@ -912,7 +916,10 @@ export const parseTransRes = async ( } return parseAIRes(modelMsg?.content, useBatchFetch); case OPT_TRANS_CUSTOMIZE: - return (res?.translations ?? res)?.map((item) => [item.text, item.src]); + if (useBatchFetch) { + return (res?.translations ?? res)?.map((item) => [item.text, item.src]); + } + return [[res.text, res.src || res.from]]; default: } diff --git a/src/config/api.js b/src/config/api.js index 49a03f8..2aa7520 100644 --- a/src/config/api.js +++ b/src/config/api.js @@ -559,7 +559,6 @@ const defaultApiOpts = { }, [OPT_TRANS_CUSTOMIZE]: { ...defaultApi, - url: "https://translate.googleapis.com/translate_a/single?client=gtx&dj=1&dt=t&ie=UTF-8&q={{text}}&sl=en&tl=zh-CN", reqHook: defaultRequestHook, resHook: defaultResponseHook, },