Skip to content

Commit f96d7b0

Browse files
committed
fix: factory 硬编码默认 URL 截断了 OPENAI_BASE_URL 环境变量的 fallback
当 compose/run 未通过 config 传入 base_url 时,factory 直接用硬编码默认值 (如 https://api.deepseek.com/v1)填充 baseUrl,导致 connector 构造函数 中 process.env.OPENAI_BASE_URL 的 fallback 永远不会触发。 这使得 `ao init --base-url` 写入 .env 的自定义 API 地址(如阿里百炼) 对 `ao compose` 完全无效。 修复:在 factory 的 fallback 链中插入 process.env.OPENAI_BASE_URL, 优先级为 config.base_url > OPENAI_BASE_URL > 硬编码默认值。 同时优化 fetch 异常的报错信息,显示请求 URL 和可能原因。
1 parent be74ecc commit f96d7b0

2 files changed

Lines changed: 7 additions & 3 deletions

File tree

src/connectors/factory.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@ export function createConnector(config: LLMConfig): LLMConnector {
3636
case 'deepseek':
3737
return new OpenAICompatibleConnector({
3838
apiKey: config.api_key || process.env.DEEPSEEK_API_KEY,
39-
baseUrl: config.base_url || 'https://api.deepseek.com/v1',
39+
baseUrl: config.base_url || process.env.OPENAI_BASE_URL || 'https://api.deepseek.com/v1',
4040
});
4141
case 'openai':
4242
return new OpenAICompatibleConnector({
4343
apiKey: config.api_key || process.env.OPENAI_API_KEY,
44-
baseUrl: config.base_url || 'https://api.openai.com/v1',
44+
baseUrl: config.base_url || process.env.OPENAI_BASE_URL || 'https://api.openai.com/v1',
4545
});
4646
default:
4747
// 未知 provider:如果提供了 base_url,当作 OpenAI 兼容 API 处理

src/connectors/openai-compatible.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,11 @@ export class OpenAICompatibleConnector implements LLMConnector {
7070
});
7171
} catch (err) {
7272
clearTimeout(timer);
73-
throw err;
73+
const url = `${this.baseUrl}/chat/completions`;
74+
const hint = !this.apiKey
75+
? '\n 可能原因: 未设置 API Key,请检查环境变量(DEEPSEEK_API_KEY 或 OPENAI_API_KEY)或 .env 配置'
76+
: `\n 可能原因: 无法连接 ${this.baseUrl},请检查 base_url 是否正确、网络是否可达`;
77+
throw new Error(`请求失败: ${url}\n ${err instanceof Error ? err.message : err}${hint}`);
7478
}
7579

7680
if (!response.ok) {

0 commit comments

Comments
 (0)