feat(translate): 支持自定义 OPENAI_BASE_URL 配置

在翻译脚本和版本发布脚本中增加 OPENAI_BASE_URL 环境变量支持,
允许用户配置自定义的 OpenAI API 地址。自动处理 /v1 路径重复问题。
This commit is contained in:
kuaifan 2026-04-05 09:02:04 +00:00
parent 9e65500748
commit 95e97333b4
3 changed files with 6 additions and 1 deletions

2
bin/version.js vendored
View File

@ -229,7 +229,7 @@ async function enhanceWithAI(version, changelogSection) {
return changelogSection; return changelogSection;
} }
const proxyUrl = (process.env.OPENAI_PROXY_URL || "").trim(); 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 apiUrl = resolveApiEndpoint(explicitApiUrl);
const dispatcher = createProxyDispatcher(proxyUrl); const dispatcher = createProxyDispatcher(proxyUrl);
const model = process.env.CHANGELOG_AI_MODEL || process.env.OPENAI_API_MODEL || "gpt-4o-mini"; const model = process.env.CHANGELOG_AI_MODEL || process.env.OPENAI_API_MODEL || "gpt-4o-mini";

View File

@ -8,6 +8,7 @@
```dotenv ```dotenv
OPENAI_API_KEY=你的OpenAI密钥 OPENAI_API_KEY=你的OpenAI密钥
OPENAI_BASE_URL=可选的自定义API地址
OPENAI_PROXY_URL=可选的代理地址 OPENAI_PROXY_URL=可选的代理地址
``` ```

View File

@ -75,6 +75,7 @@ if ($openAiKey === '') {
exit(1); exit(1);
} }
$openAiProxy = trim(language_env_value('OPENAI_PROXY_URL', $languageEnv) ?? ''); $openAiProxy = trim(language_env_value('OPENAI_PROXY_URL', $languageEnv) ?? '');
$openAiBaseUrl = trim(language_env_value('OPENAI_BASE_URL', $languageEnv) ?? '');
// 读取所有要翻译的内容 // 读取所有要翻译的内容
$originals = []; $originals = [];
@ -170,6 +171,9 @@ if (count($needs) > 0) {
// 开始翻译 // 开始翻译
print_r("正在翻译:" . (count($keys) + $done) . "/" . count($needs) . "...\n"); print_r("正在翻译:" . (count($keys) + $done) . "/" . count($needs) . "...\n");
$openAi = new OpenAi($openAiKey); $openAi = new OpenAi($openAiKey);
if ($openAiBaseUrl !== '') {
$openAi->setBaseURL(rtrim(preg_replace('#/v\d+/?$#', '', $openAiBaseUrl), '/'));
}
if ($openAiProxy !== '') { if ($openAiProxy !== '') {
$openAi->setProxy($openAiProxy); $openAi->setProxy($openAiProxy);
} }