UNPKG

@lobehub/chat

Version:

Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.

25 lines (21 loc) 1.09 kB
import * as ProviderCards from '@/config/modelProviders'; import { ModelProvider } from '@/libs/model-runtime'; import { ModelProviderCard } from '@/types/llm'; import { UserModelProviderConfig } from '@/types/user/settings'; export const genUserLLMConfig = (specificConfig: Record<any, any>): UserModelProviderConfig => { return Object.keys(ModelProvider).reduce((config, providerKey) => { const provider = ModelProvider[providerKey as keyof typeof ModelProvider]; const providerCard = ProviderCards[ `${providerKey}ProviderCard` as keyof typeof ProviderCards ] as ModelProviderCard; const providerConfig = specificConfig[provider as keyof typeof specificConfig] || {}; config[provider] = { enabled: providerConfig.enabled !== undefined ? providerConfig.enabled : false, enabledModels: providerCard ? ProviderCards.filterEnabledModels(providerCard) : [], ...(providerConfig.fetchOnClient !== undefined && { fetchOnClient: providerConfig.fetchOnClient, }), }; return config; }, {} as UserModelProviderConfig); };