mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-09 06:49:02 +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')
|
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 {
|
export function getDefaultAssistant(): Assistant {
|
||||||
return {
|
return {
|
||||||
id: 'default',
|
id: 'default',
|
||||||
@ -34,18 +47,7 @@ export function getDefaultAssistant(): Assistant {
|
|||||||
messages: [],
|
messages: [],
|
||||||
type: 'assistant',
|
type: 'assistant',
|
||||||
regularPhrases: [], // Added regularPhrases
|
regularPhrases: [], // Added regularPhrases
|
||||||
settings: {
|
settings: DEFAULT_ASSISTANT_SETTINGS
|
||||||
temperature: DEFAULT_TEMPERATURE,
|
|
||||||
enableTemperature: true,
|
|
||||||
contextCount: DEFAULT_CONTEXTCOUNT,
|
|
||||||
enableMaxTokens: false,
|
|
||||||
maxTokens: 0,
|
|
||||||
streamOutput: true,
|
|
||||||
topP: 1,
|
|
||||||
enableTopP: true,
|
|
||||||
toolUseMode: 'prompt',
|
|
||||||
customParameters: []
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -171,18 +173,7 @@ export async function createAssistantFromAgent(agent: Agent) {
|
|||||||
model: agent.defaultModel,
|
model: agent.defaultModel,
|
||||||
type: 'assistant',
|
type: 'assistant',
|
||||||
regularPhrases: agent.regularPhrases || [], // Ensured regularPhrases
|
regularPhrases: agent.regularPhrases || [], // Ensured regularPhrases
|
||||||
settings: agent.settings || {
|
settings: agent.settings || DEFAULT_ASSISTANT_SETTINGS
|
||||||
temperature: DEFAULT_TEMPERATURE,
|
|
||||||
enableTemperature: true,
|
|
||||||
contextCount: DEFAULT_CONTEXTCOUNT,
|
|
||||||
enableMaxTokens: false,
|
|
||||||
maxTokens: 0,
|
|
||||||
streamOutput: true,
|
|
||||||
topP: 1,
|
|
||||||
enableTopP: true,
|
|
||||||
toolUseMode: 'prompt',
|
|
||||||
customParameters: []
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
store.dispatch(addAssistant(assistant))
|
store.dispatch(addAssistant(assistant))
|
||||||
|
|||||||
@ -62,7 +62,7 @@ const persistedReducer = persistReducer(
|
|||||||
{
|
{
|
||||||
key: 'cherry-studio',
|
key: 'cherry-studio',
|
||||||
storage,
|
storage,
|
||||||
version: 135,
|
version: 136,
|
||||||
blacklist: ['runtime', 'messages', 'messageBlocks', 'tabs'],
|
blacklist: ['runtime', 'messages', 'messageBlocks', 'tabs'],
|
||||||
migrate
|
migrate
|
||||||
},
|
},
|
||||||
|
|||||||
@ -4,15 +4,16 @@ import { DEFAULT_CONTEXTCOUNT, DEFAULT_TEMPERATURE, isMac } from '@renderer/conf
|
|||||||
import { DEFAULT_MIN_APPS } from '@renderer/config/minapps'
|
import { DEFAULT_MIN_APPS } from '@renderer/config/minapps'
|
||||||
import { isFunctionCallingModel, isNotSupportedTextDelta, SYSTEM_MODELS } from '@renderer/config/models'
|
import { isFunctionCallingModel, isNotSupportedTextDelta, SYSTEM_MODELS } from '@renderer/config/models'
|
||||||
import { TRANSLATE_PROMPT } from '@renderer/config/prompts'
|
import { TRANSLATE_PROMPT } from '@renderer/config/prompts'
|
||||||
import { DEFAULT_SIDEBAR_ICONS } from '@renderer/config/sidebar'
|
|
||||||
import {
|
import {
|
||||||
isSupportArrayContentProvider,
|
isSupportArrayContentProvider,
|
||||||
isSupportDeveloperRoleProvider,
|
isSupportDeveloperRoleProvider,
|
||||||
isSupportStreamOptionsProvider,
|
isSupportStreamOptionsProvider,
|
||||||
SYSTEM_PROVIDERS
|
SYSTEM_PROVIDERS
|
||||||
} from '@renderer/config/providers'
|
} from '@renderer/config/providers'
|
||||||
|
import { DEFAULT_SIDEBAR_ICONS } from '@renderer/config/sidebar'
|
||||||
import db from '@renderer/databases'
|
import db from '@renderer/databases'
|
||||||
import i18n from '@renderer/i18n'
|
import i18n from '@renderer/i18n'
|
||||||
|
import { DEFAULT_ASSISTANT_SETTINGS } from '@renderer/services/AssistantService'
|
||||||
import {
|
import {
|
||||||
Assistant,
|
Assistant,
|
||||||
isSystemProvider,
|
isSystemProvider,
|
||||||
@ -2150,24 +2151,27 @@ const migrateConfig = {
|
|||||||
'135': (state: RootState) => {
|
'135': (state: RootState) => {
|
||||||
try {
|
try {
|
||||||
if (!state.assistants.defaultAssistant.settings) {
|
if (!state.assistants.defaultAssistant.settings) {
|
||||||
state.assistants.defaultAssistant.settings = {
|
state.assistants.defaultAssistant.settings = DEFAULT_ASSISTANT_SETTINGS
|
||||||
temperature: DEFAULT_TEMPERATURE,
|
|
||||||
enableTemperature: true,
|
|
||||||
contextCount: DEFAULT_CONTEXTCOUNT,
|
|
||||||
enableMaxTokens: false,
|
|
||||||
maxTokens: 0,
|
|
||||||
streamOutput: true,
|
|
||||||
topP: 1,
|
|
||||||
enableTopP: true,
|
|
||||||
toolUseMode: 'prompt',
|
|
||||||
customParameters: []
|
|
||||||
}
|
|
||||||
} else if (!state.assistants.defaultAssistant.settings.toolUseMode) {
|
} else if (!state.assistants.defaultAssistant.settings.toolUseMode) {
|
||||||
state.assistants.defaultAssistant.settings.toolUseMode = 'prompt'
|
state.assistants.defaultAssistant.settings.toolUseMode = 'prompt'
|
||||||
}
|
}
|
||||||
return state
|
return state
|
||||||
} catch (error) {
|
} 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
|
return state
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -692,7 +692,15 @@ export const isAutoDetectionMethod = (method: string): method is AutoDetectionMe
|
|||||||
return Object.hasOwn(AutoDetectionMethods, method)
|
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 = {
|
export type ExternalToolResult = {
|
||||||
mcpTools?: MCPTool[]
|
mcpTools?: MCPTool[]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user