fix(ai): 优化API密钥验证逻辑,支持本地服务无密钥访问

- 修改 AIService 中 API 密钥验证逻辑,允许 Ollama 本地服务跳过密钥检查
- 更新所有 AI 提供商实例化时的类型断言,使用非空断言操作符(!)确保类型安全
- 完善 AISummarySettings 中连接测试逻辑,区分 Ollama 和 Custom 服务的验证需求
- 为 Custom 服务添加 baseURL 必填验证,提升配置完整性检查
- 升级版本至 2.1.4
- 改进本地 AI 服务和自定义服务的使用体验,降低配置门槛
This commit is contained in:
ILoveBingLu
2026-01-26 19:14:04 +08:00
parent 36c07295f1
commit 92fbcdabae
3 changed files with 22 additions and 14 deletions
+11 -10
View File
@@ -110,7 +110,8 @@ class AIService {
key = providerConfig?.apiKey
}
if (!key) {
// Ollama 本地服务不需要 API 密钥
if (!key && name !== 'ollama') {
throw new Error('未配置API密钥')
}
@@ -129,23 +130,23 @@ class AIService {
const baseURL = ollamaConfig?.baseURL || 'http://localhost:11434/v1'
return new OllamaProvider(key || 'ollama', baseURL)
case 'openai':
return new OpenAIProvider(key)
return new OpenAIProvider(key!)
case 'gemini':
return new GeminiProvider(key)
return new GeminiProvider(key!)
case 'zhipu':
return new ZhipuProvider(key)
return new ZhipuProvider(key!)
case 'deepseek':
return new DeepSeekProvider(key)
return new DeepSeekProvider(key!)
case 'qwen':
return new QwenProvider(key)
return new QwenProvider(key!)
case 'doubao':
return new DoubaoProvider(key)
return new DoubaoProvider(key!)
case 'kimi':
return new KimiProvider(key)
return new KimiProvider(key!)
case 'siliconflow':
return new SiliconFlowProvider(key)
return new SiliconFlowProvider(key!)
case 'xiaomi':
return new XiaomiProvider(key)
return new XiaomiProvider(key!)
default:
throw new Error(`不支持的提供商: ${name}`)
}