From 95e97333b472431888debc6ecb578e659d8c497f Mon Sep 17 00:00:00 2001 From: kuaifan Date: Sun, 5 Apr 2026 09:02:04 +0000 Subject: [PATCH] =?UTF-8?q?feat(translate):=20=E6=94=AF=E6=8C=81=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=20OPENAI=5FBASE=5FURL=20=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在翻译脚本和版本发布脚本中增加 OPENAI_BASE_URL 环境变量支持, 允许用户配置自定义的 OpenAI API 地址。自动处理 /v1 路径重复问题。 --- bin/version.js | 2 +- language/README.md | 1 + language/translate.php | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/bin/version.js b/bin/version.js index caec6dca6..3b8a1d213 100644 --- a/bin/version.js +++ b/bin/version.js @@ -229,7 +229,7 @@ async function enhanceWithAI(version, changelogSection) { return changelogSection; } const proxyUrl = (process.env.OPENAI_PROXY_URL || "").trim(); - const explicitApiUrl = process.env.CHANGELOG_AI_URL || process.env.OPENAI_API_URL; + const explicitApiUrl = process.env.CHANGELOG_AI_URL || process.env.OPENAI_API_URL || process.env.OPENAI_BASE_URL; const apiUrl = resolveApiEndpoint(explicitApiUrl); const dispatcher = createProxyDispatcher(proxyUrl); const model = process.env.CHANGELOG_AI_MODEL || process.env.OPENAI_API_MODEL || "gpt-4o-mini"; diff --git a/language/README.md b/language/README.md index a262a9e12..e61b1694a 100644 --- a/language/README.md +++ b/language/README.md @@ -8,6 +8,7 @@ ```dotenv OPENAI_API_KEY=你的OpenAI密钥 + OPENAI_BASE_URL=可选的自定义API地址 OPENAI_PROXY_URL=可选的代理地址 ``` diff --git a/language/translate.php b/language/translate.php index 568210b5c..031780d62 100755 --- a/language/translate.php +++ b/language/translate.php @@ -75,6 +75,7 @@ if ($openAiKey === '') { exit(1); } $openAiProxy = trim(language_env_value('OPENAI_PROXY_URL', $languageEnv) ?? ''); +$openAiBaseUrl = trim(language_env_value('OPENAI_BASE_URL', $languageEnv) ?? ''); // 读取所有要翻译的内容 $originals = []; @@ -170,6 +171,9 @@ if (count($needs) > 0) { // 开始翻译 print_r("正在翻译:" . (count($keys) + $done) . "/" . count($needs) . "...\n"); $openAi = new OpenAi($openAiKey); + if ($openAiBaseUrl !== '') { + $openAi->setBaseURL(rtrim(preg_replace('#/v\d+/?$#', '', $openAiBaseUrl), '/')); + } if ($openAiProxy !== '') { $openAi->setProxy($openAiProxy); }