refactor(vertexai): 将VertexAI配置检查从ApiClientFactory移至VertexAPIClient

重构VertexAI客户端的配置检查逻辑,将其从工厂类移动到具体的客户端实现类中
This commit is contained in:
icarus 2025-08-30 02:16:06 +08:00
parent d468bb6ad3
commit aaa56da614
3 changed files with 7 additions and 9 deletions

View File

@ -1,5 +1,4 @@
import { loggerService } from '@logger'
import { isVertexAIConfigured } from '@renderer/hooks/useVertexAI'
import { Provider } from '@renderer/types'
import { AihubmixAPIClient } from './AihubmixAPIClient'
@ -63,12 +62,6 @@ export class ApiClientFactory {
break
case 'vertexai':
logger.debug(`Creating VertexAPIClient for provider: ${provider.id}`)
// 检查 VertexAI 配置
if (!isVertexAIConfigured()) {
throw new Error(
'VertexAI is not configured. Please configure project, location and service account credentials.'
)
}
instance = new VertexAPIClient(provider) as BaseApiClient
break
case 'anthropic':

View File

@ -66,7 +66,8 @@ vi.mock('@renderer/config/models', () => ({
SYSTEM_MODELS: {
silicon: [],
defaultModel: []
}
},
isOpenAIModel: vi.fn(() => false)
}))
describe('ApiClientFactory', () => {

View File

@ -1,6 +1,6 @@
import { GoogleGenAI } from '@google/genai'
import { loggerService } from '@logger'
import { createVertexProvider, isVertexProvider } from '@renderer/hooks/useVertexAI'
import { createVertexProvider, isVertexAIConfigured, isVertexProvider } from '@renderer/hooks/useVertexAI'
import { Model, Provider, VertexProvider } from '@renderer/types'
import { isEmpty } from 'lodash'
@ -16,6 +16,10 @@ export class VertexAPIClient extends GeminiAPIClient {
constructor(provider: Provider) {
super(provider)
// 检查 VertexAI 配置
if (!isVertexAIConfigured()) {
throw new Error('VertexAI is not configured. Please configure project, location and service account credentials.')
}
this.anthropicVertexClient = new AnthropicVertexClient(provider)
// 如果传入的是普通 Provider转换为 VertexProvider
if (isVertexProvider(provider)) {