fix: set developer role and service tier to default not supported (#9245)

* refactor(api): 将 isNotSupportDeveloperRole 替换为 isSupportDeveloperRole

重构开发者角色支持逻辑,使用正向命名的 isSupportDeveloperRole 替代反向命名的 isNotSupportDeveloperRole
更新相关迁移逻辑和配置检查逻辑

* refactor(api): 替换 isNotSupportServiceTier 为 isSupportServiceTier

将服务层级支持的否定式参数改为肯定式参数,修改默认行为为不支持
This commit is contained in:
Phantom 2025-08-17 19:48:41 +08:00 committed by GitHub
parent aed9566409
commit e652c1d783
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 44 additions and 12 deletions

View File

@ -52,7 +52,14 @@ import VoyageAIProviderLogo from '@renderer/assets/images/providers/voyageai.png
import XirangProviderLogo from '@renderer/assets/images/providers/xirang.png'
import ZeroOneProviderLogo from '@renderer/assets/images/providers/zero-one.png'
import ZhipuProviderLogo from '@renderer/assets/images/providers/zhipu.png'
import { AtLeast, OpenAIServiceTiers, Provider, SystemProvider, SystemProviderId } from '@renderer/types'
import {
AtLeast,
isSystemProvider,
OpenAIServiceTiers,
Provider,
SystemProvider,
SystemProviderId
} from '@renderer/types'
import { TOKENFLUX_HOST } from './constant'
import { SYSTEM_MODELS } from './models'
@ -1253,8 +1260,8 @@ const NOT_SUPPORT_DEVELOPER_ROLE_PROVIDERS = ['poe', 'qiniu'] as const satisfies
*/
export const isSupportDeveloperRoleProvider = (provider: Provider) => {
return (
provider.apiOptions?.isNotSupportDeveloperRole !== true &&
!NOT_SUPPORT_DEVELOPER_ROLE_PROVIDERS.some((pid) => pid === provider.id)
provider.apiOptions?.isSupportDeveloperRole === true ||
(isSystemProvider(provider) && !NOT_SUPPORT_DEVELOPER_ROLE_PROVIDERS.some((pid) => pid === provider.id))
)
}
@ -1289,7 +1296,7 @@ const NOT_SUPPORT_SERVICE_TIER_PROVIDERS = ['github', 'copilot'] as const satisf
*/
export const isSupportServiceTierProvider = (provider: Provider) => {
return (
provider.apiOptions?.isNotSupportServiceTier !== true &&
!NOT_SUPPORT_SERVICE_TIER_PROVIDERS.some((pid) => pid === provider.id)
provider.apiOptions?.isSupportServiceTier === true ||
(isSystemProvider(provider) && !NOT_SUPPORT_SERVICE_TIER_PROVIDERS.some((pid) => pid === provider.id))
)
}

View File

@ -39,10 +39,10 @@ const ApiOptionsSettings = ({ providerId }: Props) => {
tip: t('settings.provider.api.options.developer_role.help'),
onChange: (checked: boolean) => {
updateProviderTransition({
apiOptions: { ...provider.apiOptions, isNotSupportDeveloperRole: !checked }
apiOptions: { ...provider.apiOptions, isSupportDeveloperRole: checked }
})
},
checked: !provider.apiOptions?.isNotSupportDeveloperRole
checked: !!provider.apiOptions?.isSupportDeveloperRole
},
{
key: 'openai_stream_options',
@ -61,10 +61,10 @@ const ApiOptionsSettings = ({ providerId }: Props) => {
tip: t('settings.provider.api.options.service_tier.help'),
onChange: (checked: boolean) => {
updateProviderTransition({
apiOptions: { ...provider.apiOptions, isNotSupportServiceTier: !checked }
apiOptions: { ...provider.apiOptions, isSupportServiceTier: checked }
})
},
checked: !provider.apiOptions?.isNotSupportServiceTier
checked: !!provider.apiOptions?.isSupportServiceTier
},
{
key: 'openai_enable_thinking',

View File

@ -62,7 +62,7 @@ const persistedReducer = persistReducer(
{
key: 'cherry-studio',
storage,
version: 131,
version: 132,
blacklist: ['runtime', 'messages', 'messageBlocks', 'tabs'],
migrate
},

View File

@ -2103,6 +2103,23 @@ const migrateConfig = {
logger.error('migrate 131 error', error as Error)
return state
}
},
'132': (state: RootState) => {
try {
state.llm.providers.forEach((p) => {
// 如果原本是undefined则不做改动静默从默认支持改为默认不支持
if (p.apiOptions?.isNotSupportDeveloperRole) {
p.apiOptions.isSupportDeveloperRole = !p.apiOptions.isNotSupportDeveloperRole
}
if (p.apiOptions?.isNotSupportServiceTier) {
p.apiOptions.isSupportServiceTier = !p.apiOptions.isNotSupportServiceTier
}
})
return state
} catch (error) {
logger.error('migrate 132 error', error as Error)
return state
}
}
}

View File

@ -192,10 +192,18 @@ export type ProviderApiOptions = {
isNotSupportArrayContent?: boolean
/** 是否不支持 stream_options 参数 */
isNotSupportStreamOptions?: boolean
/** 是否不支持 message 的 role 为 developer */
/**
* @deprecated
* message role developer */
isNotSupportDeveloperRole?: boolean
/** 是否不支持 service_tier 参数. Only for OpenAI Models. */
/* 是否支持 message 的 role 为 developer */
isSupportDeveloperRole?: boolean
/**
* @deprecated
* service_tier . Only for OpenAI Models. */
isNotSupportServiceTier?: boolean
/* 是否支持 service_tier 参数. Only for OpenAI Models. */
isSupportServiceTier?: boolean
/** 是否不支持 enable_thinking 参数 */
isNotSupportEnableThinking?: boolean
}