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.

59 lines (46 loc) 1.94 kB
import { DEFAULT_AGENT_META } from '@/const/meta'; import { DEFAULT_AGENT, DEFAULT_AGENT_CONFIG, DEFAULT_HOTKEY_CONFIG, DEFAULT_SYSTEM_AGENT_CONFIG, DEFAULT_TTS_CONFIG, } from '@/const/settings'; import { HotkeyId } from '@/types/hotkey'; import { GlobalLLMProviderKey, ProviderConfig, UserModelProviderConfig, UserSettings, } from '@/types/user/settings'; import { merge } from '@/utils/merge'; import { UserStore } from '../../../store'; export const currentSettings = (s: UserStore): UserSettings => merge(s.defaultSettings, s.settings); export const currentLLMSettings = (s: UserStore): UserModelProviderConfig => currentSettings(s).languageModel || {}; export const getProviderConfigById = (provider: string) => (s: UserStore) => currentLLMSettings(s)[provider as GlobalLLMProviderKey] as ProviderConfig | undefined; const currentTTS = (s: UserStore) => merge(DEFAULT_TTS_CONFIG, currentSettings(s).tts); const defaultAgent = (s: UserStore) => merge(DEFAULT_AGENT, currentSettings(s).defaultAgent); const defaultAgentConfig = (s: UserStore) => merge(DEFAULT_AGENT_CONFIG, defaultAgent(s).config); const defaultAgentMeta = (s: UserStore) => merge(DEFAULT_AGENT_META, defaultAgent(s).meta); const exportSettings = currentSettings; const dalleConfig = (s: UserStore) => currentSettings(s).tool?.dalle || {}; const isDalleAutoGenerating = (s: UserStore) => currentSettings(s).tool?.dalle?.autoGenerate; const currentSystemAgent = (s: UserStore) => merge(DEFAULT_SYSTEM_AGENT_CONFIG, currentSettings(s).systemAgent); const getHotkeyById = (id: HotkeyId) => (s: UserStore) => merge(DEFAULT_HOTKEY_CONFIG, currentSettings(s).hotkey)[id]; export const settingsSelectors = { currentSettings, currentSystemAgent, currentTTS, dalleConfig, defaultAgent, defaultAgentConfig, defaultAgentMeta, exportSettings, getHotkeyById, isDalleAutoGenerating, providerConfig: getProviderConfigById, };