refactor(models): restructure default model configuration and usage

- Replace SYSTEM_MODELS.defaultModel array with DEFAULT_MODEL_MAP object for clearer model assignments
- Update related store and hook implementations to use new model map
- Add reset functions for default models in useAssistant hook
This commit is contained in:
icarus 2025-10-30 17:10:25 +08:00
parent 5101488d65
commit e6e20d2d72
5 changed files with 44 additions and 23 deletions

View File

@ -14,10 +14,10 @@ exports[`InputEmbeddingDimension > basic rendering > should match snapshot with
/>
<div
data-testid="tooltip"
data-title="自动设置维度"
>
<button
aria-label="Get embedding dimension"
data-testid="button"
role="button"
type="button"
>
@ -49,10 +49,10 @@ exports[`InputEmbeddingDimension > basic rendering > should match snapshot with
/>
<div
data-testid="tooltip"
data-title="自动设置维度"
>
<button
aria-label="Get embedding dimension"
data-testid="button"
disabled=""
role="button"
type="button"

View File

@ -14,17 +14,13 @@ export const qwen38bModel: Model = {
group: 'Qwen'
}
export const SYSTEM_MODELS: Record<SystemProviderId | 'defaultModel', Model[]> = {
defaultModel: [
// Default assistant model
glm45FlashModel,
// Default topic naming model
qwen38bModel,
// Default translation model
glm45FlashModel,
// Default quick assistant model
glm45FlashModel
],
export const DEFAULT_MODEL_MAP = {
assistant: glm45FlashModel,
quick: qwen38bModel,
translate: glm45FlashModel
} as const
export const SYSTEM_MODELS: Record<SystemProviderId, Model[]> = {
cherryin: [],
vertexai: [],
'302ai': [

View File

@ -1,5 +1,6 @@
import { loggerService } from '@logger'
import {
DEFAULT_MODEL_MAP,
getThinkModelType,
isSupportedReasoningEffortModel,
isSupportedThinkingTokenModel,
@ -24,7 +25,11 @@ import {
updateTopic,
updateTopics
} from '@renderer/store/assistants'
import { setDefaultModel, setQuickModel, setTranslateModel } from '@renderer/store/llm'
import {
setDefaultModel as setDefaultModelAction,
setQuickModel as setQuickModelAction,
setTranslateModel as setTranslateModelAction
} from '@renderer/store/llm'
import type { Assistant, AssistantSettings, Model, ThinkingOption, Topic } from '@renderer/types'
import { uuid } from '@renderer/utils'
import { useCallback, useEffect, useMemo, useRef } from 'react'
@ -198,12 +203,31 @@ export function useDefaultModel() {
const { defaultModel, quickModel, translateModel } = useAppSelector((state) => state.llm)
const dispatch = useAppDispatch()
const setDefaultModel = useCallback((model: Model) => dispatch(setDefaultModelAction({ model })), [dispatch])
const setQuickModel = useCallback((model: Model) => dispatch(setQuickModelAction({ model })), [dispatch])
const setTranslateModel = useCallback((model: Model) => dispatch(setTranslateModelAction({ model })), [dispatch])
const resetDefaultAssistantModel = useCallback(() => {
setDefaultModel(DEFAULT_MODEL_MAP.assistant)
}, [setDefaultModel])
const resetTranslateModel = useCallback(() => {
setTranslateModel(DEFAULT_MODEL_MAP.translate)
}, [setTranslateModel])
const resetQuickModel = useCallback(() => {
setTranslateModel(DEFAULT_MODEL_MAP.quick)
}, [setTranslateModel])
return {
defaultModel,
setDefaultModel,
resetDefaultAssistantModel,
quickModel,
resetQuickModel,
setQuickModel,
translateModel,
setDefaultModel: (model: Model) => dispatch(setDefaultModel({ model })),
setQuickModel: (model: Model) => dispatch(setQuickModel({ model })),
setTranslateModel: (model: Model) => dispatch(setTranslateModel({ model }))
setTranslateModel,
resetTranslateModel
}
}

View File

@ -1,7 +1,7 @@
import type { PayloadAction } from '@reduxjs/toolkit'
import { createSlice } from '@reduxjs/toolkit'
import { isLocalAi } from '@renderer/config/env'
import { SYSTEM_MODELS } from '@renderer/config/models'
import { DEFAULT_MODEL_MAP } from '@renderer/config/models'
import { SYSTEM_PROVIDERS } from '@renderer/config/providers'
import type { Model, Provider } from '@renderer/types'
import { uniqBy } from 'lodash'
@ -43,10 +43,10 @@ export interface LlmState {
}
export const initialState: LlmState = {
defaultModel: SYSTEM_MODELS.defaultModel[0],
topicNamingModel: SYSTEM_MODELS.defaultModel[1],
quickModel: SYSTEM_MODELS.defaultModel[1],
translateModel: SYSTEM_MODELS.defaultModel[2],
defaultModel: DEFAULT_MODEL_MAP.assistant,
topicNamingModel: DEFAULT_MODEL_MAP.quick,
quickModel: DEFAULT_MODEL_MAP.quick,
translateModel: DEFAULT_MODEL_MAP.translate,
quickAssistantId: '',
providers: SYSTEM_PROVIDERS,
settings: {

View File

@ -6,6 +6,7 @@ import { nanoid } from '@reduxjs/toolkit'
import { DEFAULT_CONTEXTCOUNT, DEFAULT_TEMPERATURE, isMac } from '@renderer/config/constant'
import { DEFAULT_MIN_APPS } from '@renderer/config/minapps'
import {
DEFAULT_MODEL_MAP,
glm45FlashModel,
isFunctionCallingModel,
isNotSupportedTextDelta,
@ -1667,7 +1668,7 @@ const migrateConfig = {
state.llm.translateModel.provider === 'silicon' &&
state.llm.translateModel.id === 'meta-llama/Llama-3.3-70B-Instruct'
) {
state.llm.translateModel = SYSTEM_MODELS.defaultModel[2]
state.llm.translateModel = DEFAULT_MODEL_MAP.translate
}
// add selection_assistant_toggle and selection_assistant_select_text shortcuts after mini_window