Files

1 line
57 KiB
JSON

{"repo": "1chen1y1111/cy-cherry-studio", "files": {"src/renderer/src/store/llm.ts": {"becad2cbbd1440a4c2710e247b980dd81f296e64": {"t": 1785746034.3743258, "n": 4992, "h": "d342fd7b36eebd2e", "c": "import { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { SYSTEM_MODELS } from '@renderer/config/models'\nimport { Model, Provider } from '@renderer/types'\nimport { unionBy } from 'lodash'\n\nexport interface LlmState {\n defaultModel: Model\n providers: Provider[]\n topicNamingModel: Model\n}\n\nconst initialState: LlmState = {\n defaultModel: SYSTEM_MODELS.openai[0],\n topicNamingModel: SYSTEM_MODELS.openai[0],\n providers: [\n {\n id: 'openai',\n name: 'OpenAI',\n apiKey: '',\n apiHost: 'https://api.openai.com',\n models: SYSTEM_MODELS.openai.filter((m) => m.enabled),\n isSystem: true,\n enabled: true\n },\n {\n id: 'silicon',\n name: 'Silicon',\n apiKey: '',\n apiHost: 'https://api.siliconflow.cn',\n models: SYSTEM_MODELS.silicon.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'deepseek',\n name: 'deepseek',\n apiKey: '',\n apiHost: 'https://api.deepseek.com',\n models: SYSTEM_MODELS.deepseek.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'yi',\n name: 'Yi',\n apiKey: '',\n apiHost: 'https://api.lingyiwanwu.com',\n models: SYSTEM_MODELS.yi.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'zhipu',\n name: 'ZhiPu',\n apiKey: '',\n apiHost: 'https://open.bigmodel.cn/api/paas/v4/',\n models: SYSTEM_MODELS.zhipu.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'moonshot',\n name: 'Moonshot AI',\n apiKey: '',\n apiHost: 'https://api.moonshot.cn',\n models: SYSTEM_MODELS.moonshot.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'baichuan',\n name: 'BAICHUAN AI',\n apiKey: '',\n apiHost: 'https://api.baichuan-ai.com',\n models: SYSTEM_MODELS.baichuan.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'dashscope',\n name: 'DashScope',\n apiKey: '',\n apiHost: 'https://dashscope.aliyuncs.com/compatible-mode/v1/',\n models: SYSTEM_MODELS.dashscope.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'anthropic',\n name: 'Anthropic',\n apiKey: '',\n apiHost: 'https://api.anthropic.com/',\n models: SYSTEM_MODELS.anthropic.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'openrouter',\n name: 'OpenRouter',\n apiKey: '',\n apiHost: 'https://openrouter.ai/api/v1/',\n models: SYSTEM_MODELS.openrouter.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'groq',\n name: 'Groq',\n apiKey: '',\n apiHost: 'https://api.groq.com/openai',\n models: SYSTEM_MODELS.groq.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'ollama',\n name: 'Ollama',\n apiKey: '',\n apiHost: 'http://localhost:11434/v1/',\n models: [],\n isSystem: true,\n enabled: false\n }\n ]\n}\n\nconst settingsSlice = createSlice({\n name: 'settings',\n initialState,\n reducers: {\n addProvider: (state, action: PayloadAction<Provider>) => {\n state.providers.push(action.payload)\n },\n removeProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.filter((p) => p.id !== action.payload.id && !p.isSystem)\n },\n updateProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.map((p) => (p.id === action.payload.id ? { ...p, ...action.payload } : p))\n },\n updateProviders: (state, action: PayloadAction<Provider[]>) => {\n state.providers = action.payload\n },\n addModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: unionBy(p.models.concat(action.payload.model), 'id')\n }\n : p\n })\n },\n removeModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: p.models.filter((m) => m.id !== action.payload.model.id)\n }\n : p\n })\n },\n setDefaultModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.defaultModel = action.payload.model\n },\n setTopicNamingModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.topicNamingModel = action.payload.model\n }\n }\n})\n\nexport const {\n addProvider,\n removeProvider,\n updateProvider,\n updateProviders,\n addModel,\n removeModel,\n setDefaultModel,\n setTopicNamingModel\n} = settingsSlice.actions\n\nexport default settingsSlice.reducer\n"}, "da4dd35b55d8b519a7fec1480d2531719226340e": {"t": 1785759058.3703678, "n": 4992, "h": "d342fd7b36eebd2e", "c": "import { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { SYSTEM_MODELS } from '@renderer/config/models'\nimport { Model, Provider } from '@renderer/types'\nimport { unionBy } from 'lodash'\n\nexport interface LlmState {\n defaultModel: Model\n providers: Provider[]\n topicNamingModel: Model\n}\n\nconst initialState: LlmState = {\n defaultModel: SYSTEM_MODELS.openai[0],\n topicNamingModel: SYSTEM_MODELS.openai[0],\n providers: [\n {\n id: 'openai',\n name: 'OpenAI',\n apiKey: '',\n apiHost: 'https://api.openai.com',\n models: SYSTEM_MODELS.openai.filter((m) => m.enabled),\n isSystem: true,\n enabled: true\n },\n {\n id: 'silicon',\n name: 'Silicon',\n apiKey: '',\n apiHost: 'https://api.siliconflow.cn',\n models: SYSTEM_MODELS.silicon.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'deepseek',\n name: 'deepseek',\n apiKey: '',\n apiHost: 'https://api.deepseek.com',\n models: SYSTEM_MODELS.deepseek.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'yi',\n name: 'Yi',\n apiKey: '',\n apiHost: 'https://api.lingyiwanwu.com',\n models: SYSTEM_MODELS.yi.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'zhipu',\n name: 'ZhiPu',\n apiKey: '',\n apiHost: 'https://open.bigmodel.cn/api/paas/v4/',\n models: SYSTEM_MODELS.zhipu.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'moonshot',\n name: 'Moonshot AI',\n apiKey: '',\n apiHost: 'https://api.moonshot.cn',\n models: SYSTEM_MODELS.moonshot.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'baichuan',\n name: 'BAICHUAN AI',\n apiKey: '',\n apiHost: 'https://api.baichuan-ai.com',\n models: SYSTEM_MODELS.baichuan.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'dashscope',\n name: 'DashScope',\n apiKey: '',\n apiHost: 'https://dashscope.aliyuncs.com/compatible-mode/v1/',\n models: SYSTEM_MODELS.dashscope.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'anthropic',\n name: 'Anthropic',\n apiKey: '',\n apiHost: 'https://api.anthropic.com/',\n models: SYSTEM_MODELS.anthropic.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'openrouter',\n name: 'OpenRouter',\n apiKey: '',\n apiHost: 'https://openrouter.ai/api/v1/',\n models: SYSTEM_MODELS.openrouter.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'groq',\n name: 'Groq',\n apiKey: '',\n apiHost: 'https://api.groq.com/openai',\n models: SYSTEM_MODELS.groq.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'ollama',\n name: 'Ollama',\n apiKey: '',\n apiHost: 'http://localhost:11434/v1/',\n models: [],\n isSystem: true,\n enabled: false\n }\n ]\n}\n\nconst settingsSlice = createSlice({\n name: 'settings',\n initialState,\n reducers: {\n addProvider: (state, action: PayloadAction<Provider>) => {\n state.providers.push(action.payload)\n },\n removeProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.filter((p) => p.id !== action.payload.id && !p.isSystem)\n },\n updateProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.map((p) => (p.id === action.payload.id ? { ...p, ...action.payload } : p))\n },\n updateProviders: (state, action: PayloadAction<Provider[]>) => {\n state.providers = action.payload\n },\n addModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: unionBy(p.models.concat(action.payload.model), 'id')\n }\n : p\n })\n },\n removeModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: p.models.filter((m) => m.id !== action.payload.model.id)\n }\n : p\n })\n },\n setDefaultModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.defaultModel = action.payload.model\n },\n setTopicNamingModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.topicNamingModel = action.payload.model\n }\n }\n})\n\nexport const {\n addProvider,\n removeProvider,\n updateProvider,\n updateProviders,\n addModel,\n removeModel,\n setDefaultModel,\n setTopicNamingModel\n} = settingsSlice.actions\n\nexport default settingsSlice.reducer\n"}, "913fa8e4801bdf9052ebf2c6ff4b053b510a0cc4": {"t": 1785759062.7475922, "n": 4761, "h": "dd41d092440ca835", "c": "import { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { SYSTEM_MODELS } from '@renderer/config/models'\nimport { Model, Provider } from '@renderer/types'\nimport { unionBy } from 'lodash'\n\nexport interface LlmState {\n defaultModel: Model\n providers: Provider[]\n topicNamingModel: Model\n}\n\nconst initialState: LlmState = {\n defaultModel: SYSTEM_MODELS.openai[0],\n topicNamingModel: SYSTEM_MODELS.openai[0],\n providers: [\n {\n id: 'openai',\n name: 'OpenAI',\n apiKey: '',\n apiHost: 'https://api.openai.com',\n models: SYSTEM_MODELS.openai.filter((m) => m.enabled),\n isSystem: true,\n enabled: true\n },\n {\n id: 'silicon',\n name: 'Silicon',\n apiKey: '',\n apiHost: 'https://api.siliconflow.cn',\n models: SYSTEM_MODELS.silicon.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'deepseek',\n name: 'deepseek',\n apiKey: '',\n apiHost: 'https://api.deepseek.com',\n models: SYSTEM_MODELS.deepseek.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'yi',\n name: 'Yi',\n apiKey: '',\n apiHost: 'https://api.lingyiwanwu.com',\n models: SYSTEM_MODELS.yi.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'zhipu',\n name: 'ZhiPu',\n apiKey: '',\n apiHost: 'https://open.bigmodel.cn/api/paas/v4/',\n models: SYSTEM_MODELS.zhipu.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'moonshot',\n name: 'Moonshot AI',\n apiKey: '',\n apiHost: 'https://api.moonshot.cn',\n models: SYSTEM_MODELS.moonshot.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'baichuan',\n name: 'BAICHUAN AI',\n apiKey: '',\n apiHost: 'https://api.baichuan-ai.com',\n models: SYSTEM_MODELS.baichuan.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'dashscope',\n name: 'DashScope',\n apiKey: '',\n apiHost: 'https://dashscope.aliyuncs.com/compatible-mode/v1/',\n models: SYSTEM_MODELS.dashscope.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'openrouter',\n name: 'OpenRouter',\n apiKey: '',\n apiHost: 'https://openrouter.ai/api/v1/',\n models: SYSTEM_MODELS.openrouter.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'groq',\n name: 'Groq',\n apiKey: '',\n apiHost: 'https://api.groq.com/openai',\n models: SYSTEM_MODELS.groq.filter((m) => m.enabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'ollama',\n name: 'Ollama',\n apiKey: '',\n apiHost: 'http://localhost:11434/v1/',\n models: [],\n isSystem: true,\n enabled: false\n }\n ]\n}\n\nconst settingsSlice = createSlice({\n name: 'settings',\n initialState,\n reducers: {\n addProvider: (state, action: PayloadAction<Provider>) => {\n state.providers.push(action.payload)\n },\n removeProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.filter((p) => p.id !== action.payload.id && !p.isSystem)\n },\n updateProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.map((p) => (p.id === action.payload.id ? { ...p, ...action.payload } : p))\n },\n updateProviders: (state, action: PayloadAction<Provider[]>) => {\n state.providers = action.payload\n },\n addModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: unionBy(p.models.concat(action.payload.model), 'id')\n }\n : p\n })\n },\n removeModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: p.models.filter((m) => m.id !== action.payload.model.id)\n }\n : p\n })\n },\n setDefaultModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.defaultModel = action.payload.model\n },\n setTopicNamingModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.topicNamingModel = action.payload.model\n }\n }\n})\n\nexport const {\n addProvider,\n removeProvider,\n updateProvider,\n updateProviders,\n addModel,\n removeModel,\n setDefaultModel,\n setTopicNamingModel\n} = settingsSlice.actions\n\nexport default settingsSlice.reducer\n"}, "742ccc787b2a75d02a720d772cf3c3a26cdbe9fc": {"t": 1785759063.995863, "n": 4569, "h": "77d27cc7475c07a7", "c": "import { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { SYSTEM_MODELS } from '@renderer/config/models'\nimport { Model, Provider } from '@renderer/types'\nimport { unionBy } from 'lodash'\n\nexport interface LlmState {\n defaultModel: Model\n providers: Provider[]\n topicNamingModel: Model\n}\n\nconst initialState: LlmState = {\n defaultModel: SYSTEM_MODELS.openai[0],\n topicNamingModel: SYSTEM_MODELS.openai[0],\n providers: [\n {\n id: 'openai',\n name: 'OpenAI',\n apiKey: '',\n apiHost: 'https://api.openai.com',\n models: SYSTEM_MODELS.openai.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: true\n },\n {\n id: 'silicon',\n name: 'Silicon',\n apiKey: '',\n apiHost: 'https://api.siliconflow.cn',\n models: SYSTEM_MODELS.silicon.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'deepseek',\n name: 'deepseek',\n apiKey: '',\n apiHost: 'https://api.deepseek.com',\n models: SYSTEM_MODELS.deepseek.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'yi',\n name: 'Yi',\n apiKey: '',\n apiHost: 'https://api.lingyiwanwu.com',\n models: SYSTEM_MODELS.yi.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'zhipu',\n name: 'ZhiPu',\n apiKey: '',\n apiHost: 'https://open.bigmodel.cn/api/paas/v4/',\n models: SYSTEM_MODELS.zhipu.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'moonshot',\n name: 'Moonshot AI',\n apiKey: '',\n apiHost: 'https://api.moonshot.cn',\n models: SYSTEM_MODELS.moonshot.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'openrouter',\n name: 'OpenRouter',\n apiKey: '',\n apiHost: 'https://openrouter.ai/api/v1/',\n models: SYSTEM_MODELS.openrouter.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'groq',\n name: 'Groq',\n apiKey: '',\n apiHost: 'https://api.groq.com/openai',\n models: SYSTEM_MODELS.groq.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'ollama',\n name: 'Ollama',\n apiKey: '',\n apiHost: 'http://localhost:11434/v1/',\n models: [],\n isSystem: true,\n enabled: false\n },\n {\n id: 'baichuan',\n name: 'BAICHUAN AI',\n apiKey: '',\n apiHost: 'https://api.baichuan-ai.com',\n models: SYSTEM_MODELS.baichuan.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n }\n ]\n}\n\nconst settingsSlice = createSlice({\n name: 'settings',\n initialState,\n reducers: {\n addProvider: (state, action: PayloadAction<Provider>) => {\n state.providers.push(action.payload)\n },\n removeProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.filter((p) => p.id !== action.payload.id && !p.isSystem)\n },\n updateProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.map((p) => (p.id === action.payload.id ? { ...p, ...action.payload } : p))\n },\n updateProviders: (state, action: PayloadAction<Provider[]>) => {\n state.providers = action.payload\n },\n addModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: unionBy(p.models.concat(action.payload.model), 'id')\n }\n : p\n })\n },\n removeModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: p.models.filter((m) => m.id !== action.payload.model.id)\n }\n : p\n })\n },\n setDefaultModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.defaultModel = action.payload.model\n },\n setTopicNamingModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.topicNamingModel = action.payload.model\n }\n }\n})\n\nexport const {\n addProvider,\n removeProvider,\n updateProvider,\n updateProviders,\n addModel,\n removeModel,\n setDefaultModel,\n setTopicNamingModel\n} = settingsSlice.actions\n\nexport default settingsSlice.reducer\n"}, "160376a167186dbbfad62ea9a99bf0b654ac4d44": {"t": 1785759066.5568964, "n": 4330, "h": "1efce52ce4b8146a", "c": "import { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { SYSTEM_MODELS } from '@renderer/config/models'\nimport { Model, Provider } from '@renderer/types'\nimport { unionBy } from 'lodash'\n\nexport interface LlmState {\n defaultModel: Model\n providers: Provider[]\n topicNamingModel: Model\n}\n\nconst initialState: LlmState = {\n defaultModel: SYSTEM_MODELS.openai[0],\n topicNamingModel: SYSTEM_MODELS.openai[0],\n providers: [\n {\n id: 'openai',\n name: 'OpenAI',\n apiKey: '',\n apiHost: 'https://api.openai.com',\n models: SYSTEM_MODELS.openai.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: true\n },\n {\n id: 'silicon',\n name: 'Silicon',\n apiKey: '',\n apiHost: 'https://api.siliconflow.cn',\n models: SYSTEM_MODELS.silicon.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'deepseek',\n name: 'deepseek',\n apiKey: '',\n apiHost: 'https://api.deepseek.com',\n models: SYSTEM_MODELS.deepseek.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'yi',\n name: 'Yi',\n apiKey: '',\n apiHost: 'https://api.lingyiwanwu.com',\n models: SYSTEM_MODELS.yi.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'zhipu',\n name: 'ZhiPu',\n apiKey: '',\n apiHost: 'https://open.bigmodel.cn/api/paas/v4/',\n models: SYSTEM_MODELS.zhipu.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'moonshot',\n name: 'Moonshot AI',\n apiKey: '',\n apiHost: 'https://api.moonshot.cn',\n models: SYSTEM_MODELS.moonshot.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'openrouter',\n name: 'OpenRouter',\n apiKey: '',\n apiHost: 'https://openrouter.ai/api/v1/',\n models: SYSTEM_MODELS.openrouter.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'groq',\n name: 'Groq',\n apiKey: '',\n apiHost: 'https://api.groq.com/openai',\n models: SYSTEM_MODELS.groq.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'ollama',\n name: 'Ollama',\n apiKey: '',\n apiHost: 'http://localhost:11434/v1/',\n models: [],\n isSystem: true,\n enabled: false\n }\n ]\n}\n\nconst settingsSlice = createSlice({\n name: 'settings',\n initialState,\n reducers: {\n addProvider: (state, action: PayloadAction<Provider>) => {\n state.providers.push(action.payload)\n },\n removeProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.filter((p) => p.id !== action.payload.id && !p.isSystem)\n },\n updateProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.map((p) => (p.id === action.payload.id ? { ...p, ...action.payload } : p))\n },\n updateProviders: (state, action: PayloadAction<Provider[]>) => {\n state.providers = action.payload\n },\n addModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: unionBy(p.models.concat(action.payload.model), 'id')\n }\n : p\n })\n },\n removeModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: p.models.filter((m) => m.id !== action.payload.model.id)\n }\n : p\n })\n },\n setDefaultModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.defaultModel = action.payload.model\n },\n setTopicNamingModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.topicNamingModel = action.payload.model\n }\n }\n})\n\nexport const {\n addProvider,\n removeProvider,\n updateProvider,\n updateProviders,\n addModel,\n removeModel,\n setDefaultModel,\n setTopicNamingModel\n} = settingsSlice.actions\n\nexport default settingsSlice.reducer\n"}, "07bb6c82049bd900a8dfe39fff3c7941a8f90cd6": {"t": 1785759067.783888, "n": 4329, "h": "c7c21e4cb962f69e", "c": "import { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { SYSTEM_MODELS } from '@renderer/config/models'\nimport { Model, Provider } from '@renderer/types'\nimport { unionBy } from 'lodash'\n\nexport interface LlmState {\n defaultModel: Model\n providers: Provider[]\n topicNamingModel: Model\n}\n\nconst initialState: LlmState = {\n defaultModel: SYSTEM_MODELS.openai[0],\n topicNamingModel: SYSTEM_MODELS.openai[0],\n providers: [\n {\n id: 'openai',\n name: 'OpenAI',\n apiKey: '',\n apiHost: 'https://api.openai.com',\n models: SYSTEM_MODELS.openai.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: true\n },\n {\n id: 'silicon',\n name: 'Silicon',\n apiKey: '',\n apiHost: 'https://api.siliconflow.cn',\n models: SYSTEM_MODELS.silicon.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'deepseek',\n name: 'deepseek',\n apiKey: '',\n apiHost: 'https://api.deepseek.com',\n models: SYSTEM_MODELS.deepseek.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'yi',\n name: 'Yi',\n apiKey: '',\n apiHost: 'https://api.lingyiwanwu.com',\n models: SYSTEM_MODELS.yi.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'zhipu',\n name: 'ZhiPu',\n apiKey: '',\n apiHost: 'https://open.bigmodel.cn/api/paas/v4/',\n models: SYSTEM_MODELS.groq.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'moonshot',\n name: 'Moonshot AI',\n apiKey: '',\n apiHost: 'https://api.moonshot.cn',\n models: SYSTEM_MODELS.moonshot.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'openrouter',\n name: 'OpenRouter',\n apiKey: '',\n apiHost: 'https://openrouter.ai/api/v1/',\n models: SYSTEM_MODELS.openrouter.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'groq',\n name: 'Groq',\n apiKey: '',\n apiHost: 'https://api.groq.com/openai',\n models: SYSTEM_MODELS.groq.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'ollama',\n name: 'Ollama',\n apiKey: '',\n apiHost: 'http://localhost:11434/v1/',\n models: [],\n isSystem: true,\n enabled: false\n }\n ]\n}\n\nconst settingsSlice = createSlice({\n name: 'settings',\n initialState,\n reducers: {\n addProvider: (state, action: PayloadAction<Provider>) => {\n state.providers.push(action.payload)\n },\n removeProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.filter((p) => p.id !== action.payload.id && !p.isSystem)\n },\n updateProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.map((p) => (p.id === action.payload.id ? { ...p, ...action.payload } : p))\n },\n updateProviders: (state, action: PayloadAction<Provider[]>) => {\n state.providers = action.payload\n },\n addModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: unionBy(p.models.concat(action.payload.model), 'id')\n }\n : p\n })\n },\n removeModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: p.models.filter((m) => m.id !== action.payload.model.id)\n }\n : p\n })\n },\n setDefaultModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.defaultModel = action.payload.model\n },\n setTopicNamingModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.topicNamingModel = action.payload.model\n }\n }\n})\n\nexport const {\n addProvider,\n removeProvider,\n updateProvider,\n updateProviders,\n addModel,\n removeModel,\n setDefaultModel,\n setTopicNamingModel\n} = settingsSlice.actions\n\nexport default settingsSlice.reducer\n"}, "08a833a2b2b4a75a94e8f5cefc0e1d09353a3e98": {"t": 1785759068.9375982, "n": 4085, "h": "59470251c5a4965f", "c": "import { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { SYSTEM_MODELS } from '@renderer/config/models'\nimport { Model, Provider } from '@renderer/types'\nimport { unionBy } from 'lodash'\n\nexport interface LlmState {\n defaultModel: Model\n providers: Provider[]\n topicNamingModel: Model\n}\n\nconst initialState: LlmState = {\n defaultModel: SYSTEM_MODELS.openai[0],\n topicNamingModel: SYSTEM_MODELS.openai[0],\n providers: [\n {\n id: 'openai',\n name: 'OpenAI',\n apiKey: '',\n apiHost: 'https://api.openai.com',\n models: SYSTEM_MODELS.openai.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: true\n },\n {\n id: 'silicon',\n name: 'Silicon',\n apiKey: '',\n apiHost: 'https://api.siliconflow.cn',\n models: SYSTEM_MODELS.silicon.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'deepseek',\n name: 'deepseek',\n apiKey: '',\n apiHost: 'https://api.deepseek.com',\n models: SYSTEM_MODELS.deepseek.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'yi',\n name: 'Yi',\n apiKey: '',\n apiHost: 'https://api.lingyiwanwu.com',\n models: SYSTEM_MODELS.yi.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'zhipu',\n name: 'ZhiPu',\n apiKey: '',\n apiHost: 'https://open.bigmodel.cn/api/paas/v4/',\n models: SYSTEM_MODELS.groq.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'moonshot',\n name: 'Moonshot AI',\n apiKey: '',\n apiHost: 'https://api.moonshot.cn',\n models: SYSTEM_MODELS.moonshot.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'groq',\n name: 'Groq',\n apiKey: '',\n apiHost: 'https://api.groq.com/openai',\n models: SYSTEM_MODELS.groq.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'ollama',\n name: 'Ollama',\n apiKey: '',\n apiHost: 'http://localhost:11434/v1/',\n models: [],\n isSystem: true,\n enabled: false\n }\n ]\n}\n\nconst settingsSlice = createSlice({\n name: 'settings',\n initialState,\n reducers: {\n addProvider: (state, action: PayloadAction<Provider>) => {\n state.providers.push(action.payload)\n },\n removeProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.filter((p) => p.id !== action.payload.id && !p.isSystem)\n },\n updateProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.map((p) => (p.id === action.payload.id ? { ...p, ...action.payload } : p))\n },\n updateProviders: (state, action: PayloadAction<Provider[]>) => {\n state.providers = action.payload\n },\n addModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: unionBy(p.models.concat(action.payload.model), 'id')\n }\n : p\n })\n },\n removeModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: p.models.filter((m) => m.id !== action.payload.model.id)\n }\n : p\n })\n },\n setDefaultModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.defaultModel = action.payload.model\n },\n setTopicNamingModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.topicNamingModel = action.payload.model\n }\n }\n})\n\nexport const {\n addProvider,\n removeProvider,\n updateProvider,\n updateProviders,\n addModel,\n removeModel,\n setDefaultModel,\n setTopicNamingModel\n} = settingsSlice.actions\n\nexport default settingsSlice.reducer\n"}, "153f4c5cf04377c75c1c9a27068bc5295f5fd9fe": {"t": 1785759070.1644235, "n": 3951, "h": "7b93f13aaeb821cd", "c": "import { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { SYSTEM_MODELS } from '@renderer/config/models'\nimport { Model, Provider } from '@renderer/types'\nimport { unionBy } from 'lodash'\n\nexport interface LlmState {\n defaultModel: Model\n providers: Provider[]\n topicNamingModel: Model\n}\n\nconst initialState: LlmState = {\n defaultModel: SYSTEM_MODELS.openai[0],\n topicNamingModel: SYSTEM_MODELS.openai[0],\n providers: [\n {\n id: 'openai',\n name: 'OpenAI',\n apiKey: '',\n apiHost: 'https://api.openai.com',\n models: SYSTEM_MODELS.openai.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: true\n },\n {\n id: 'silicon',\n name: 'Silicon',\n apiKey: '',\n apiHost: 'https://api.siliconflow.cn',\n models: SYSTEM_MODELS.silicon.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'deepseek',\n name: 'deepseek',\n apiKey: '',\n apiHost: 'https://api.deepseek.com',\n models: SYSTEM_MODELS.deepseek.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'yi',\n name: 'Yi',\n apiKey: '',\n apiHost: 'https://api.lingyiwanwu.com',\n models: SYSTEM_MODELS.yi.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'zhipu',\n name: 'ZhiPu',\n apiKey: '',\n apiHost: 'https://open.bigmodel.cn/api/paas/v4/',\n models: SYSTEM_MODELS.groq.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'moonshot',\n name: 'Moonshot AI',\n apiKey: '',\n apiHost: 'https://api.moonshot.cn',\n models: SYSTEM_MODELS.moonshot.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'groq',\n name: 'Groq',\n apiKey: '',\n apiHost: 'https://api.groq.com/openai',\n models: SYSTEM_MODELS.groq.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'ollama',\n name: 'Ollama',\n apiKey: '',\n apiHost: 'http://localhost:11434/v1/',\n models: [],\n isSystem: true,\n enabled: false\n }\n ]\n}\n\nconst settingsSlice = createSlice({\n name: 'settings',\n initialState,\n reducers: {\n addProvider: (state, action: PayloadAction<Provider>) => {\n state.providers.push(action.payload)\n },\n removeProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.filter((p) => p.id !== action.payload.id && !p.isSystem)\n },\n updateProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.map((p) => (p.id === action.payload.id ? { ...p, ...action.payload } : p))\n },\n addModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: unionBy(p.models.concat(action.payload.model), 'id')\n }\n : p\n })\n },\n removeModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: p.models.filter((m) => m.id !== action.payload.model.id)\n }\n : p\n })\n },\n setDefaultModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.defaultModel = action.payload.model\n },\n setTopicNamingModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.topicNamingModel = action.payload.model\n }\n }\n})\n\nexport const {\n addProvider,\n removeProvider,\n updateProvider,\n addModel,\n removeModel,\n setDefaultModel,\n setTopicNamingModel\n} = settingsSlice.actions\n\nexport default settingsSlice.reducer\n"}, "6eea034df055963f6017a1a5d3143b223dd80a6b": {"t": 1785759071.3994136, "n": 3716, "h": "acc6dd03f545ca56", "c": "import { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { SYSTEM_MODELS } from '@renderer/config/models'\nimport { Model, Provider } from '@renderer/types'\nimport { unionBy } from 'lodash'\n\nexport interface LlmState {\n defaultModel: Model\n providers: Provider[]\n topicNamingModel: Model\n}\n\nconst initialState: LlmState = {\n defaultModel: SYSTEM_MODELS.openai[0],\n topicNamingModel: SYSTEM_MODELS.openai[0],\n providers: [\n {\n id: 'openai',\n name: 'OpenAI',\n apiKey: '',\n apiHost: 'https://api.openai.com',\n models: SYSTEM_MODELS.openai.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: true\n },\n {\n id: 'silicon',\n name: 'Silicon',\n apiKey: '',\n apiHost: 'https://api.siliconflow.cn',\n models: SYSTEM_MODELS.silicon.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'deepseek',\n name: 'deepseek',\n apiKey: '',\n apiHost: 'https://api.deepseek.com',\n models: SYSTEM_MODELS.deepseek.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'yi',\n name: 'Yi',\n apiKey: '',\n apiHost: 'https://api.lingyiwanwu.com',\n models: SYSTEM_MODELS.yi.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'zhipu',\n name: 'ZhiPu',\n apiKey: '',\n apiHost: 'https://open.bigmodel.cn/api/paas/v4/',\n models: SYSTEM_MODELS.groq.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'groq',\n name: 'Groq',\n apiKey: '',\n apiHost: 'https://api.groq.com/openai',\n models: SYSTEM_MODELS.groq.filter((m) => m.defaultEnabled),\n isSystem: true,\n enabled: false\n },\n {\n id: 'ollama',\n name: 'Ollama',\n apiKey: '',\n apiHost: 'http://localhost:11434/v1/',\n models: [],\n isSystem: true,\n enabled: false\n }\n ]\n}\n\nconst settingsSlice = createSlice({\n name: 'settings',\n initialState,\n reducers: {\n addProvider: (state, action: PayloadAction<Provider>) => {\n state.providers.push(action.payload)\n },\n removeProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.filter((p) => p.id !== action.payload.id && !p.isSystem)\n },\n updateProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.map((p) => (p.id === action.payload.id ? { ...p, ...action.payload } : p))\n },\n addModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: unionBy(p.models.concat(action.payload.model), 'id')\n }\n : p\n })\n },\n removeModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: p.models.filter((m) => m.id !== action.payload.model.id)\n }\n : p\n })\n },\n setDefaultModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.defaultModel = action.payload.model\n },\n setTopicNamingModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.topicNamingModel = action.payload.model\n }\n }\n})\n\nexport const {\n addProvider,\n removeProvider,\n updateProvider,\n addModel,\n removeModel,\n setDefaultModel,\n setTopicNamingModel\n} = settingsSlice.actions\n\nexport default settingsSlice.reducer\n"}, "75c394c26e53e6ab93df12c8a2cfce7e6d42ef0d": {"t": 1785759072.5370438, "n": 3564, "h": "776eeb80abf1d6d7", "c": "import { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { SYSTEM_MODELS } from '@renderer/config/models'\nimport { Model, Provider } from '@renderer/types'\nimport { unionBy } from 'lodash'\n\nexport interface LlmState {\n defaultModel: Model\n providers: Provider[]\n topicNamingModel: Model\n}\n\nconst initialState: LlmState = {\n defaultModel: SYSTEM_MODELS.openai[0],\n topicNamingModel: SYSTEM_MODELS.openai[0],\n providers: [\n {\n id: 'openai',\n name: 'OpenAI',\n apiKey: '',\n apiHost: 'https://api.openai.com',\n isSystem: true,\n models: SYSTEM_MODELS.openai.filter((m) => m.defaultEnabled)\n },\n {\n id: 'silicon',\n name: 'Silicon',\n apiKey: '',\n apiHost: 'https://api.siliconflow.cn',\n isSystem: true,\n models: SYSTEM_MODELS.silicon.filter((m) => m.defaultEnabled)\n },\n {\n id: 'deepseek',\n name: 'deepseek',\n apiKey: '',\n apiHost: 'https://api.deepseek.com',\n isSystem: true,\n models: SYSTEM_MODELS.deepseek.filter((m) => m.defaultEnabled)\n },\n {\n id: 'yi',\n name: 'Yi',\n apiKey: '',\n apiHost: 'https://api.lingyiwanwu.com',\n isSystem: true,\n models: SYSTEM_MODELS.yi.filter((m) => m.defaultEnabled)\n },\n {\n id: 'groq',\n name: 'Groq',\n apiKey: '',\n apiHost: 'https://api.groq.com/openai',\n isSystem: true,\n models: SYSTEM_MODELS.groq.filter((m) => m.defaultEnabled)\n },\n {\n id: 'zhipu',\n name: 'ZhiPu',\n apiKey: '',\n apiHost: 'https://open.bigmodel.cn/api/paas/v4/',\n isSystem: true,\n models: SYSTEM_MODELS.zhipu.filter((m) => m.defaultEnabled)\n },\n {\n id: 'ollama',\n name: 'Ollama',\n apiKey: '',\n apiHost: 'http://localhost:11434/v1/',\n isSystem: true,\n models: []\n }\n ]\n}\n\nconst settingsSlice = createSlice({\n name: 'settings',\n initialState,\n reducers: {\n addProvider: (state, action: PayloadAction<Provider>) => {\n state.providers.push(action.payload)\n },\n removeProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.filter((p) => p.id !== action.payload.id && !p.isSystem)\n },\n updateProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.map((p) => (p.id === action.payload.id ? { ...p, ...action.payload } : p))\n },\n addModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: unionBy(p.models.concat(action.payload.model), 'id')\n }\n : p\n })\n },\n removeModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: p.models.filter((m) => m.id !== action.payload.model.id)\n }\n : p\n })\n },\n setDefaultModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.defaultModel = action.payload.model\n },\n setTopicNamingModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.topicNamingModel = action.payload.model\n }\n }\n})\n\nexport const {\n addProvider,\n removeProvider,\n updateProvider,\n addModel,\n removeModel,\n setDefaultModel,\n setTopicNamingModel\n} = settingsSlice.actions\n\nexport default settingsSlice.reducer\n"}, "c155e40e173163cfb6355817db464aea265a8201": {"t": 1785759073.9648619, "n": 3192, "h": "9c5ab4334745e5f6", "c": "import { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { SYSTEM_MODELS } from '@renderer/config/models'\nimport { Model, Provider } from '@renderer/types'\nimport { unionBy } from 'lodash'\n\nexport interface LlmState {\n defaultModel: Model\n providers: Provider[]\n topicNamingModel: Model\n}\n\nconst initialState: LlmState = {\n defaultModel: SYSTEM_MODELS.openai[0],\n topicNamingModel: SYSTEM_MODELS.openai[0],\n providers: [\n {\n id: 'openai',\n name: 'OpenAI',\n apiKey: '',\n apiHost: 'https://api.openai.com',\n isSystem: true,\n models: SYSTEM_MODELS.openai.filter((m) => m.defaultEnabled)\n },\n {\n id: 'silicon',\n name: 'Silicon',\n apiKey: '',\n apiHost: 'https://api.siliconflow.cn',\n isSystem: true,\n models: SYSTEM_MODELS.silicon.filter((m) => m.defaultEnabled)\n },\n {\n id: 'deepseek',\n name: 'deepseek',\n apiKey: '',\n apiHost: 'https://api.deepseek.com',\n isSystem: true,\n models: SYSTEM_MODELS.deepseek.filter((m) => m.defaultEnabled)\n },\n {\n id: 'yi',\n name: 'Yi',\n apiKey: '',\n apiHost: 'https://api.lingyiwanwu.com',\n isSystem: true,\n models: SYSTEM_MODELS.yi.filter((m) => m.defaultEnabled)\n },\n {\n id: 'groq',\n name: 'Groq',\n apiKey: '',\n apiHost: 'https://api.groq.com/openai',\n isSystem: true,\n models: SYSTEM_MODELS.groq.filter((m) => m.defaultEnabled)\n }\n ]\n}\n\nconst settingsSlice = createSlice({\n name: 'settings',\n initialState,\n reducers: {\n addProvider: (state, action: PayloadAction<Provider>) => {\n state.providers.push(action.payload)\n },\n removeProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.filter((p) => p.id !== action.payload.id && !p.isSystem)\n },\n updateProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.map((p) => (p.id === action.payload.id ? { ...p, ...action.payload } : p))\n },\n addModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: unionBy(p.models.concat(action.payload.model), 'id')\n }\n : p\n })\n },\n removeModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: p.models.filter((m) => m.id !== action.payload.model.id)\n }\n : p\n })\n },\n setDefaultModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.defaultModel = action.payload.model\n },\n setTopicNamingModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.topicNamingModel = action.payload.model\n }\n }\n})\n\nexport const {\n addProvider,\n removeProvider,\n updateProvider,\n addModel,\n removeModel,\n setDefaultModel,\n setTopicNamingModel\n} = settingsSlice.actions\n\nexport default settingsSlice.reducer\n"}, "8258fdc4d902fe05b12af04648630042358192b2": {"t": 1785759075.1941679, "n": 2996, "h": "b402a2b0d15f17f7", "c": "import { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { SYSTEM_MODELS } from '@renderer/config/models'\nimport { Model, Provider } from '@renderer/types'\nimport { unionBy } from 'lodash'\n\nexport interface LlmState {\n defaultModel: Model\n providers: Provider[]\n topicNamingModel: Model\n}\n\nconst initialState: LlmState = {\n defaultModel: SYSTEM_MODELS.openai[0],\n topicNamingModel: SYSTEM_MODELS.openai[0],\n providers: [\n {\n id: 'openai',\n name: 'OpenAI',\n apiKey: '',\n apiHost: 'https://api.openai.com',\n isSystem: true,\n models: SYSTEM_MODELS.openai.filter((m) => m.defaultEnabled)\n },\n {\n id: 'silicon',\n name: 'Silicon',\n apiKey: '',\n apiHost: 'https://api.siliconflow.cn',\n isSystem: true,\n models: SYSTEM_MODELS.silicon.filter((m) => m.defaultEnabled)\n },\n {\n id: 'deepseek',\n name: 'deepseek',\n apiKey: '',\n apiHost: 'https://api.deepseek.com',\n isSystem: true,\n models: SYSTEM_MODELS.deepseek.filter((m) => m.defaultEnabled)\n },\n {\n id: 'groq',\n name: 'Groq',\n apiKey: '',\n apiHost: 'https://api.groq.com/openai',\n isSystem: true,\n models: SYSTEM_MODELS.groq.filter((m) => m.defaultEnabled)\n }\n ]\n}\n\nconst settingsSlice = createSlice({\n name: 'settings',\n initialState,\n reducers: {\n addProvider: (state, action: PayloadAction<Provider>) => {\n state.providers.push(action.payload)\n },\n removeProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.filter((p) => p.id !== action.payload.id && !p.isSystem)\n },\n updateProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.map((p) => (p.id === action.payload.id ? { ...p, ...action.payload } : p))\n },\n addModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: unionBy(p.models.concat(action.payload.model), 'id')\n }\n : p\n })\n },\n removeModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: p.models.filter((m) => m.id !== action.payload.model.id)\n }\n : p\n })\n },\n setDefaultModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.defaultModel = action.payload.model\n },\n setTopicNamingModel: (state, action: PayloadAction<{ model: Model }>) => {\n state.topicNamingModel = action.payload.model\n }\n }\n})\n\nexport const {\n addProvider,\n removeProvider,\n updateProvider,\n addModel,\n removeModel,\n setDefaultModel,\n setTopicNamingModel\n} = settingsSlice.actions\n\nexport default settingsSlice.reducer\n"}, "1cae0b9d0483ed60617db4481f5a309e71a2e990": {"t": 1785759080.4379818, "n": 2605, "h": "a348b44eddf78891", "c": "import { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { SYSTEM_MODELS } from '@renderer/config/models'\nimport { Model, Provider } from '@renderer/types'\nimport { unionBy } from 'lodash'\n\nexport interface LlmState {\n defaultModel: Model\n providers: Provider[]\n}\n\nconst initialState: LlmState = {\n defaultModel: SYSTEM_MODELS.openai[0],\n providers: [\n {\n id: 'openai',\n name: 'OpenAI',\n apiKey: '',\n apiHost: 'https://api.openai.com',\n isSystem: true,\n models: SYSTEM_MODELS.openai.filter((m) => m.defaultEnabled)\n },\n {\n id: 'silicon',\n name: 'Silicon',\n apiKey: '',\n apiHost: 'https://api.siliconflow.cn',\n isSystem: true,\n models: SYSTEM_MODELS.silicon.filter((m) => m.defaultEnabled)\n },\n {\n id: 'deepseek',\n name: 'deepseek',\n apiKey: '',\n apiHost: 'https://api.deepseek.com',\n isSystem: true,\n models: SYSTEM_MODELS.deepseek.filter((m) => m.defaultEnabled)\n },\n {\n id: 'groq',\n name: 'Groq',\n apiKey: '',\n apiHost: 'https://api.groq.com/openai',\n isSystem: true,\n models: SYSTEM_MODELS.groq.filter((m) => m.defaultEnabled)\n }\n ]\n}\n\nconst settingsSlice = createSlice({\n name: 'settings',\n initialState,\n reducers: {\n addProvider: (state, action: PayloadAction<Provider>) => {\n state.providers.push(action.payload)\n },\n removeProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.filter((p) => p.id !== action.payload.id && !p.isSystem)\n },\n updateProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.map((p) => (p.id === action.payload.id ? { ...p, ...action.payload } : p))\n },\n addModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: unionBy(p.models.concat(action.payload.model), 'id')\n }\n : p\n })\n },\n removeModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: p.models.filter((m) => m.id !== action.payload.model.id)\n }\n : p\n })\n }\n }\n})\n\nexport const { addProvider, removeProvider, updateProvider, addModel, removeModel } = settingsSlice.actions\n\nexport default settingsSlice.reducer\n"}, "f3841c364b762f34b34ea8f7066fe7d4960613ce": {"t": 1785759081.6149373, "n": 2434, "h": "1e23f7f1c0dffcdd", "c": "import { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { Model, Provider } from '@renderer/types'\nimport { unionBy } from 'lodash'\n\nexport interface LlmState {\n providers: Provider[]\n}\n\nconst initialState: LlmState = {\n providers: [\n {\n id: 'openai',\n name: 'OpenAI',\n apiKey: '',\n apiHost: 'https://api.openai.com',\n apiPath: '/v1/chat/completions',\n isSystem: true,\n models: []\n },\n {\n id: 'silicon',\n name: 'Silicon',\n apiKey: '',\n apiHost: 'https://api.siliconflow.cn',\n apiPath: '/v1/chat/completions',\n isSystem: true,\n models: []\n },\n {\n id: 'deepseek',\n name: 'deepseek',\n apiKey: '',\n apiHost: 'https://api.deepseek.com',\n apiPath: '/v1/chat/completions',\n isSystem: true,\n models: []\n },\n {\n id: 'groq',\n name: 'Groq',\n apiKey: '',\n apiHost: 'https://api.groq.com',\n apiPath: '/v1/chat/completions',\n isSystem: true,\n models: []\n }\n ]\n}\n\nconst settingsSlice = createSlice({\n name: 'settings',\n initialState,\n reducers: {\n addProvider: (state, action: PayloadAction<Provider>) => {\n state.providers.push(action.payload)\n },\n removeProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.filter((p) => p.id !== action.payload.id && !p.isSystem)\n },\n updateProvider: (state, action: PayloadAction<Provider>) => {\n state.providers = state.providers.map((p) => (p.id === action.payload.id ? { ...p, ...action.payload } : p))\n },\n addModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: unionBy(p.models.concat(action.payload.model), 'id')\n }\n : p\n })\n },\n removeModel: (state, action: PayloadAction<{ providerId: string; model: Model }>) => {\n state.providers = state.providers.map((p) => {\n return p.id === action.payload.providerId\n ? {\n ...p,\n models: p.models.filter((m) => m.id !== action.payload.model.id)\n }\n : p\n })\n }\n }\n})\n\nexport const { addProvider, removeProvider, updateProvider, addModel, removeModel } = settingsSlice.actions\n\nexport default settingsSlice.reducer\n"}, "5e2b63f92ae4a4e1219d908091e456632b8b7b08": {"t": 1785759082.9344985, "n": 469, "h": "8b00ddd79ef1ae6e", "c": "import { createSlice } from '@reduxjs/toolkit'\n\ntype Provider = {\n id: string\n name: string\n apiKey: string\n apiUrl: string\n url: string\n}\n\nexport interface LlmState {\n providers: Provider[]\n}\n\nconst initialState: LlmState = {\n providers: []\n}\n\nconst settingsSlice = createSlice({\n name: 'settings',\n initialState,\n reducers: {\n updateProvider: () => {}\n }\n})\n\nexport const { updateProvider } = settingsSlice.actions\n\nexport default settingsSlice.reducer\n"}}}}