@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
text/typescript
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);
};