mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-28 05:11:24 +08:00
feat(AssistantService): introduce DEFAULT_ASSISTANT_SETTINGS for consistent assistant configuration and update migration logic for version 136
This commit is contained in:
parent
6e9b77a97a
commit
84212d0b1d
@ -24,6 +24,19 @@ import { uuid } from '@renderer/utils'
|
||||
|
||||
const logger = loggerService.withContext('AssistantService')
|
||||
|
||||
export const DEFAULT_ASSISTANT_SETTINGS: AssistantSettings = {
|
||||
temperature: DEFAULT_TEMPERATURE,
|
||||
enableTemperature: true,
|
||||
contextCount: DEFAULT_CONTEXTCOUNT,
|
||||
enableMaxTokens: false,
|
||||
maxTokens: 0,
|
||||
streamOutput: true,
|
||||
topP: 1,
|
||||
enableTopP: true,
|
||||
toolUseMode: 'prompt',
|
||||
customParameters: []
|
||||
}
|
||||
|
||||
export function getDefaultAssistant(): Assistant {
|
||||
return {
|
||||
id: 'default',
|
||||
@ -34,18 +47,7 @@ export function getDefaultAssistant(): Assistant {
|
||||
messages: [],
|
||||
type: 'assistant',
|
||||
regularPhrases: [], // Added regularPhrases
|
||||
settings: {
|
||||
temperature: DEFAULT_TEMPERATURE,
|
||||
enableTemperature: true,
|
||||
contextCount: DEFAULT_CONTEXTCOUNT,
|
||||
enableMaxTokens: false,
|
||||
maxTokens: 0,
|
||||
streamOutput: true,
|
||||
topP: 1,
|
||||
enableTopP: true,
|
||||
toolUseMode: 'prompt',
|
||||
customParameters: []
|
||||
}
|
||||
settings: DEFAULT_ASSISTANT_SETTINGS
|
||||
}
|
||||
}
|
||||
|
||||
@ -171,18 +173,7 @@ export async function createAssistantFromAgent(agent: Agent) {
|
||||
model: agent.defaultModel,
|
||||
type: 'assistant',
|
||||
regularPhrases: agent.regularPhrases || [], // Ensured regularPhrases
|
||||
settings: agent.settings || {
|
||||
temperature: DEFAULT_TEMPERATURE,
|
||||
enableTemperature: true,
|
||||
contextCount: DEFAULT_CONTEXTCOUNT,
|
||||
enableMaxTokens: false,
|
||||
maxTokens: 0,
|
||||
streamOutput: true,
|
||||
topP: 1,
|
||||
enableTopP: true,
|
||||
toolUseMode: 'prompt',
|
||||
customParameters: []
|
||||
}
|
||||
settings: agent.settings || DEFAULT_ASSISTANT_SETTINGS
|
||||
}
|
||||
|
||||
store.dispatch(addAssistant(assistant))
|
||||
|
||||
@ -62,7 +62,7 @@ const persistedReducer = persistReducer(
|
||||
{
|
||||
key: 'cherry-studio',
|
||||
storage,
|
||||
version: 135,
|
||||
version: 136,
|
||||
blacklist: ['runtime', 'messages', 'messageBlocks', 'tabs'],
|
||||
migrate
|
||||
},
|
||||
|
||||
@ -4,15 +4,16 @@ import { DEFAULT_CONTEXTCOUNT, DEFAULT_TEMPERATURE, isMac } from '@renderer/conf
|
||||
import { DEFAULT_MIN_APPS } from '@renderer/config/minapps'
|
||||
import { isFunctionCallingModel, isNotSupportedTextDelta, SYSTEM_MODELS } from '@renderer/config/models'
|
||||
import { TRANSLATE_PROMPT } from '@renderer/config/prompts'
|
||||
import { DEFAULT_SIDEBAR_ICONS } from '@renderer/config/sidebar'
|
||||
import {
|
||||
isSupportArrayContentProvider,
|
||||
isSupportDeveloperRoleProvider,
|
||||
isSupportStreamOptionsProvider,
|
||||
SYSTEM_PROVIDERS
|
||||
} from '@renderer/config/providers'
|
||||
import { DEFAULT_SIDEBAR_ICONS } from '@renderer/config/sidebar'
|
||||
import db from '@renderer/databases'
|
||||
import i18n from '@renderer/i18n'
|
||||
import { DEFAULT_ASSISTANT_SETTINGS } from '@renderer/services/AssistantService'
|
||||
import {
|
||||
Assistant,
|
||||
isSystemProvider,
|
||||
@ -2150,24 +2151,27 @@ const migrateConfig = {
|
||||
'135': (state: RootState) => {
|
||||
try {
|
||||
if (!state.assistants.defaultAssistant.settings) {
|
||||
state.assistants.defaultAssistant.settings = {
|
||||
temperature: DEFAULT_TEMPERATURE,
|
||||
enableTemperature: true,
|
||||
contextCount: DEFAULT_CONTEXTCOUNT,
|
||||
enableMaxTokens: false,
|
||||
maxTokens: 0,
|
||||
streamOutput: true,
|
||||
topP: 1,
|
||||
enableTopP: true,
|
||||
toolUseMode: 'prompt',
|
||||
customParameters: []
|
||||
}
|
||||
state.assistants.defaultAssistant.settings = DEFAULT_ASSISTANT_SETTINGS
|
||||
} else if (!state.assistants.defaultAssistant.settings.toolUseMode) {
|
||||
state.assistants.defaultAssistant.settings.toolUseMode = 'prompt'
|
||||
}
|
||||
return state
|
||||
} catch (error) {
|
||||
logger.error('migrate 134 error', error as Error)
|
||||
logger.error('migrate 135 error', error as Error)
|
||||
return state
|
||||
}
|
||||
},
|
||||
'136': (state: RootState) => {
|
||||
try {
|
||||
state.settings.sidebarIcons.visible = [...new Set(state.settings.sidebarIcons.visible)].filter((icon) =>
|
||||
DEFAULT_SIDEBAR_ICONS.includes(icon)
|
||||
)
|
||||
state.settings.sidebarIcons.disabled = [...new Set(state.settings.sidebarIcons.disabled)].filter((icon) =>
|
||||
DEFAULT_SIDEBAR_ICONS.includes(icon)
|
||||
)
|
||||
return state
|
||||
} catch (error) {
|
||||
logger.error('migrate 136 error', error as Error)
|
||||
return state
|
||||
}
|
||||
}
|
||||
|
||||
@ -692,7 +692,15 @@ export const isAutoDetectionMethod = (method: string): method is AutoDetectionMe
|
||||
return Object.hasOwn(AutoDetectionMethods, method)
|
||||
}
|
||||
|
||||
export type SidebarIcon = 'assistants' | 'agents' | 'paintings' | 'translate' | 'minapp' | 'knowledge' | 'files' | 'code_tools'
|
||||
export type SidebarIcon =
|
||||
| 'assistants'
|
||||
| 'agents'
|
||||
| 'paintings'
|
||||
| 'translate'
|
||||
| 'minapp'
|
||||
| 'knowledge'
|
||||
| 'files'
|
||||
| 'code_tools'
|
||||
|
||||
export type ExternalToolResult = {
|
||||
mcpTools?: MCPTool[]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user