mirror of
https://github.com/ILoveBingLu/CipherTalk.git
synced 2026-05-28 07:46:22 +08:00
fix(ai): 优化API密钥验证逻辑,支持本地服务无密钥访问
- 修改 AIService 中 API 密钥验证逻辑,允许 Ollama 本地服务跳过密钥检查 - 更新所有 AI 提供商实例化时的类型断言,使用非空断言操作符(!)确保类型安全 - 完善 AISummarySettings 中连接测试逻辑,区分 Ollama 和 Custom 服务的验证需求 - 为 Custom 服务添加 baseURL 必填验证,提升配置完整性检查 - 升级版本至 2.1.4 - 改进本地 AI 服务和自定义服务的使用体验,降低配置门槛
This commit is contained in:
@@ -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}`)
|
||||
}
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ciphertalk",
|
||||
"version": "2.1.2",
|
||||
"version": "2.1.4",
|
||||
"description": "密语 - 微信聊天记录查看工具",
|
||||
"author": "ILoveBingLu",
|
||||
"license": "CC-BY-NC-SA-4.0",
|
||||
@@ -72,8 +72,8 @@
|
||||
"output": "release"
|
||||
},
|
||||
"publish": {
|
||||
"provider": "github",
|
||||
"releaseType": "release"
|
||||
"provider": "generic",
|
||||
"url": "https://miyuapp.aiqji.com"
|
||||
},
|
||||
"win": {
|
||||
"icon": "public/icon.ico",
|
||||
|
||||
@@ -242,11 +242,18 @@ function AISummarySettings({
|
||||
}
|
||||
|
||||
const handleTestConnection = async () => {
|
||||
if (!apiKey) {
|
||||
// Ollama 本地服务不需要 API 密钥
|
||||
if (provider !== 'ollama' && !apiKey) {
|
||||
showMessage('请先输入 API 密钥', false)
|
||||
return
|
||||
}
|
||||
|
||||
// Custom 服务必须配置 baseURL
|
||||
if (provider === 'custom' && !baseURL) {
|
||||
showMessage('请先配置服务地址', false)
|
||||
return
|
||||
}
|
||||
|
||||
setIsTesting(true)
|
||||
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user