mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-06 21:35:52 +08:00
refactor: streamline AI provider registration by replacing dynamic imports with direct creator functions
- Updated the AiProviderRegistry to use direct references to creator functions for each AI provider, improving clarity and performance. - Removed dynamic import statements for providers, simplifying the registration process and enhancing maintainability.
This commit is contained in:
parent
608943bdbc
commit
69e87ce21a
@ -3,6 +3,14 @@
|
|||||||
* 静态类型 + 动态导入模式:所有类型静态导入,所有实现动态导入
|
* 静态类型 + 动态导入模式:所有类型静态导入,所有实现动态导入
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import { createAnthropic } from '@ai-sdk/anthropic'
|
||||||
|
import { createAzure } from '@ai-sdk/azure'
|
||||||
|
import { createDeepSeek } from '@ai-sdk/deepseek'
|
||||||
|
import { createGoogleGenerativeAI } from '@ai-sdk/google'
|
||||||
|
import { createOpenAI } from '@ai-sdk/openai'
|
||||||
|
import { createOpenAICompatible } from '@ai-sdk/openai-compatible'
|
||||||
|
import { createXai } from '@ai-sdk/xai'
|
||||||
|
|
||||||
import { type ProviderConfig } from './types'
|
import { type ProviderConfig } from './types'
|
||||||
|
|
||||||
export class AiProviderRegistry {
|
export class AiProviderRegistry {
|
||||||
@ -30,29 +38,25 @@ export class AiProviderRegistry {
|
|||||||
{
|
{
|
||||||
id: 'openai',
|
id: 'openai',
|
||||||
name: 'OpenAI',
|
name: 'OpenAI',
|
||||||
import: () => import('@ai-sdk/openai'),
|
creator: createOpenAI,
|
||||||
creatorFunctionName: 'createOpenAI',
|
|
||||||
supportsImageGeneration: true
|
supportsImageGeneration: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'openai-compatible',
|
id: 'openai-compatible',
|
||||||
name: 'OpenAI Compatible',
|
name: 'OpenAI Compatible',
|
||||||
import: () => import('@ai-sdk/openai-compatible'),
|
creator: createOpenAICompatible,
|
||||||
creatorFunctionName: 'createOpenAICompatible',
|
|
||||||
supportsImageGeneration: true
|
supportsImageGeneration: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'anthropic',
|
id: 'anthropic',
|
||||||
name: 'Anthropic',
|
name: 'Anthropic',
|
||||||
import: () => import('@ai-sdk/anthropic'),
|
creator: createAnthropic,
|
||||||
creatorFunctionName: 'createAnthropic',
|
|
||||||
supportsImageGeneration: false
|
supportsImageGeneration: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'google',
|
id: 'google',
|
||||||
name: 'Google Generative AI',
|
name: 'Google Generative AI',
|
||||||
import: () => import('@ai-sdk/google'),
|
creator: createGoogleGenerativeAI,
|
||||||
creatorFunctionName: 'createGoogleGenerativeAI',
|
|
||||||
supportsImageGeneration: true
|
supportsImageGeneration: true
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
@ -72,15 +76,13 @@ export class AiProviderRegistry {
|
|||||||
{
|
{
|
||||||
id: 'xai',
|
id: 'xai',
|
||||||
name: 'xAI (Grok)',
|
name: 'xAI (Grok)',
|
||||||
import: () => import('@ai-sdk/xai'),
|
creator: createXai,
|
||||||
creatorFunctionName: 'createXai',
|
|
||||||
supportsImageGeneration: true
|
supportsImageGeneration: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'azure',
|
id: 'azure',
|
||||||
name: 'Azure OpenAI',
|
name: 'Azure OpenAI',
|
||||||
import: () => import('@ai-sdk/azure'),
|
creator: createAzure,
|
||||||
creatorFunctionName: 'createAzure',
|
|
||||||
supportsImageGeneration: true
|
supportsImageGeneration: true
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
@ -121,8 +123,7 @@ export class AiProviderRegistry {
|
|||||||
{
|
{
|
||||||
id: 'deepseek',
|
id: 'deepseek',
|
||||||
name: 'DeepSeek',
|
name: 'DeepSeek',
|
||||||
import: () => import('@ai-sdk/deepseek'),
|
creator: createDeepSeek,
|
||||||
creatorFunctionName: 'createDeepSeek',
|
|
||||||
supportsImageGeneration: false
|
supportsImageGeneration: false
|
||||||
}
|
}
|
||||||
// {
|
// {
|
||||||
@ -266,6 +267,5 @@ export const getProvider = (id: string) => aiProviderRegistry.getProvider(id)
|
|||||||
export const getAllProviders = () => aiProviderRegistry.getAllProviders()
|
export const getAllProviders = () => aiProviderRegistry.getAllProviders()
|
||||||
export const isProviderSupported = (id: string) => aiProviderRegistry.isSupported(id)
|
export const isProviderSupported = (id: string) => aiProviderRegistry.isSupported(id)
|
||||||
export const registerProvider = (config: ProviderConfig) => aiProviderRegistry.registerProvider(config)
|
export const registerProvider = (config: ProviderConfig) => aiProviderRegistry.registerProvider(config)
|
||||||
|
|
||||||
// 兼容现有实现的导出
|
// 兼容现有实现的导出
|
||||||
// export const PROVIDER_REGISTRY = aiProviderRegistry.getCompatibleRegistry()
|
// export const PROVIDER_REGISTRY = aiProviderRegistry.getCompatibleRegistry()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user