fix: remove deprecated (#9006)

* refactor: 移除已弃用的ProviderSettingsPopup组件

* refactor(providers): 重命名函数以更准确描述其功能

* fix(openai): 修正服务层级和数组内容支持的判断逻辑

使用新的提供者检查函数替代原有的布尔值判断,提高代码可维护性

* refactor(mcp-tools): 将参数isCompatibleMode重命名为noSupportArrayContent以更清晰表达意图

* refactor(providers): 移除不再使用的provider配置属性

清理多个系统provider中已不再使用的配置属性,包括isNotSupportArrayContent、isNotSupportStreamOptions和isNotSupportDeveloperRole,以简化配置结构
This commit is contained in:
Phantom 2025-08-09 13:59:33 +08:00 committed by GitHub
parent f005afb71c
commit 8823dc6a52
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 14 additions and 102 deletions

View File

@ -6,7 +6,7 @@ import {
isSupportFlexServiceTierModel
} from '@renderer/config/models'
import { REFERENCE_PROMPT } from '@renderer/config/prompts'
import { isSupportServiceTierProviders } from '@renderer/config/providers'
import { isSupportServiceTierProvider } from '@renderer/config/providers'
import { getLMStudioKeepAliveTime } from '@renderer/hooks/useLMStudio'
import { getAssistantSettings } from '@renderer/services/AssistantService'
import {
@ -208,7 +208,7 @@ export abstract class BaseApiClient<
protected getServiceTier(model: Model) {
const serviceTierSetting = this.provider.serviceTier
if (!isSupportServiceTierProviders(this.provider) || !isOpenAIModel(model) || !serviceTierSetting) {
if (!isSupportServiceTierProvider(this.provider) || !isOpenAIModel(model) || !serviceTierSetting) {
return undefined
}

View File

@ -416,7 +416,7 @@ export class OpenAIAPIClient extends OpenAIBaseClient<
mcpToolResponse,
resp,
isVisionModel(model),
this.provider.isNotSupportArrayContent ?? false
!isSupportArrayContentProvider(this.provider)
)
} else if ('toolCallId' in mcpToolResponse && mcpToolResponse.toolCallId) {
return {

View File

@ -96,8 +96,7 @@ export const SYSTEM_PROVIDERS_CONFIG: Record<SystemProviderId, SystemProvider> =
apiHost: 'https://api.deepseek.com',
models: SYSTEM_MODELS.deepseek,
isSystem: true,
enabled: false,
isNotSupportArrayContent: true
enabled: false
},
ppio: {
id: 'ppio',
@ -352,8 +351,7 @@ export const SYSTEM_PROVIDERS_CONFIG: Record<SystemProviderId, SystemProvider> =
apiHost: 'https://api.baichuan-ai.com',
models: SYSTEM_MODELS.baichuan,
isSystem: true,
enabled: false,
isNotSupportArrayContent: true
enabled: false
},
dashscope: {
id: 'dashscope',
@ -403,8 +401,7 @@ export const SYSTEM_PROVIDERS_CONFIG: Record<SystemProviderId, SystemProvider> =
apiHost: 'https://api.minimax.chat/v1/',
models: SYSTEM_MODELS.minimax,
isSystem: true,
enabled: false,
isNotSupportArrayContent: true
enabled: false
},
groq: {
id: 'groq',
@ -474,8 +471,7 @@ export const SYSTEM_PROVIDERS_CONFIG: Record<SystemProviderId, SystemProvider> =
apiHost: 'https://api.mistral.ai',
models: SYSTEM_MODELS.mistral,
isSystem: true,
enabled: false,
isNotSupportStreamOptions: true
enabled: false
},
jina: {
id: 'jina',
@ -515,8 +511,7 @@ export const SYSTEM_PROVIDERS_CONFIG: Record<SystemProviderId, SystemProvider> =
apiHost: 'https://wishub-x1.ctyun.cn',
models: SYSTEM_MODELS.xirang,
isSystem: true,
enabled: false,
isNotSupportArrayContent: true
enabled: false
},
hunyuan: {
id: 'hunyuan',
@ -586,8 +581,7 @@ export const SYSTEM_PROVIDERS_CONFIG: Record<SystemProviderId, SystemProvider> =
apiHost: 'https://api.poe.com/v1/',
models: SYSTEM_MODELS['poe'],
isSystem: true,
enabled: false,
isNotSupportDeveloperRole: true
enabled: false
}
} as const
@ -1294,7 +1288,7 @@ const NOT_SUPPORT_SERVICE_TIER_PROVIDERS = ['github', 'copilot'] as const satisf
/**
* service_tier Only for OpenAI API.
*/
export const isSupportServiceTierProviders = (provider: Provider) => {
export const isSupportServiceTierProvider = (provider: Provider) => {
return (
provider.apiOptions?.isNotSupportServiceTier !== true &&
!NOT_SUPPORT_SERVICE_TIER_PROVIDERS.some((pid) => pid === provider.id)

View File

@ -1,5 +1,6 @@
import Selector from '@renderer/components/Selector'
import { isSupportedReasoningEffortOpenAIModel, isSupportFlexServiceTierModel } from '@renderer/config/models'
import { isSupportServiceTierProvider } from '@renderer/config/providers'
import { useProvider } from '@renderer/hooks/useProvider'
import { SettingDivider, SettingRow } from '@renderer/pages/settings'
import { CollapsibleSettingGroup } from '@renderer/pages/settings/SettingGroup'
@ -38,7 +39,7 @@ const OpenAISettingsGroup: FC<Props> = ({ model, providerId, SettingGroup, Setti
isSupportedReasoningEffortOpenAIModel(model) &&
!model.id.includes('o1-pro') &&
(provider.type === 'openai-response' || provider.id === 'aihubmix')
const isSupportServiceTier = !provider.isNotSupportServiceTier
const isSupportServiceTier = isSupportServiceTierProvider(provider)
const isSupportedFlexServiceTier = isSupportFlexServiceTierModel(model)
const setSummaryText = useCallback(

View File

@ -1,83 +0,0 @@
import { TopView } from '@renderer/components/TopView'
import { useProvider } from '@renderer/hooks/useProvider'
import { Provider } from '@renderer/types'
import { Checkbox, Modal } from 'antd'
import { useState } from 'react'
import { useTranslation } from 'react-i18next'
interface ShowParams {
provider: Provider
}
interface Props extends ShowParams {
resolve: (data: any) => void
}
const PopupContainer: React.FC<Props> = ({ resolve, ...props }) => {
const [open, setOpen] = useState(true)
const [isNotSupportArrayContent, setIsNotSupportArrayContent] = useState(props.provider.isNotSupportArrayContent)
const { provider, updateProvider } = useProvider(props.provider.id)
const { t } = useTranslation()
const onOk = () => {
setOpen(false)
}
const onCancel = () => {
setOpen(false)
}
const onClose = () => {
resolve({})
}
ProviderSettingsPopup.hide = onCancel
return (
<Modal
title={provider.name}
open={open}
onOk={onOk}
onCancel={onCancel}
afterClose={onClose}
transitionName="animation-move-down"
centered>
<Checkbox
checked={isNotSupportArrayContent}
onChange={(e) => {
setIsNotSupportArrayContent(e.target.checked)
updateProvider({ ...provider, isNotSupportArrayContent: e.target.checked })
}}>
{t('settings.provider.is_not_support_array_content')}
</Checkbox>
</Modal>
)
}
const TopViewKey = 'ProviderSettingsPopup'
/**
* @deprecated
*/
export default class ProviderSettingsPopup {
static topviewId = 0
static hide() {
TopView.hide(TopViewKey)
}
static show(props: ShowParams) {
return new Promise<any>((resolve) => {
TopView.show(
<PopupContainer
{...props}
resolve={(v) => {
resolve(v)
TopView.hide(TopViewKey)
}}
/>,
TopViewKey
)
})
}
}

View File

@ -386,14 +386,14 @@ export function mcpToolCallResponseToOpenAICompatibleMessage(
mcpToolResponse: MCPToolResponse,
resp: MCPCallToolResponse,
isVisionModel: boolean = false,
isCompatibleMode: boolean = false
noSupportArrayContent: boolean = false
): ChatCompletionMessageParam {
const message = {
role: 'user'
} as ChatCompletionMessageParam
if (resp.isError) {
message.content = JSON.stringify(resp.content)
} else if (isCompatibleMode) {
} else if (noSupportArrayContent) {
let content: string = `Here is the result of mcp tool use \`${mcpToolResponse.tool.name}\`:\n`
if (isVisionModel) {