From 8823dc6a522d8ab9d68221c3b640c2b4d361a306 Mon Sep 17 00:00:00 2001 From: Phantom <59059173+EurFelux@users.noreply.github.com> Date: Sat, 9 Aug 2025 13:59:33 +0800 Subject: [PATCH] fix: remove deprecated (#9006) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor: 移除已弃用的ProviderSettingsPopup组件 * refactor(providers): 重命名函数以更准确描述其功能 * fix(openai): 修正服务层级和数组内容支持的判断逻辑 使用新的提供者检查函数替代原有的布尔值判断,提高代码可维护性 * refactor(mcp-tools): 将参数isCompatibleMode重命名为noSupportArrayContent以更清晰表达意图 * refactor(providers): 移除不再使用的provider配置属性 清理多个系统provider中已不再使用的配置属性,包括isNotSupportArrayContent、isNotSupportStreamOptions和isNotSupportDeveloperRole,以简化配置结构 --- .../src/aiCore/clients/BaseApiClient.ts | 4 +- .../aiCore/clients/openai/OpenAIApiClient.ts | 2 +- src/renderer/src/config/providers.ts | 20 ++--- .../Tabs/components/OpenAISettingsGroup.tsx | 3 +- .../ProviderSettingsPopup.tsx | 83 ------------------- src/renderer/src/utils/mcp-tools.ts | 4 +- 6 files changed, 14 insertions(+), 102 deletions(-) delete mode 100644 src/renderer/src/pages/settings/ProviderSettings/ProviderSettingsPopup.tsx diff --git a/src/renderer/src/aiCore/clients/BaseApiClient.ts b/src/renderer/src/aiCore/clients/BaseApiClient.ts index ff91259143..f5883c74bb 100644 --- a/src/renderer/src/aiCore/clients/BaseApiClient.ts +++ b/src/renderer/src/aiCore/clients/BaseApiClient.ts @@ -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 } diff --git a/src/renderer/src/aiCore/clients/openai/OpenAIApiClient.ts b/src/renderer/src/aiCore/clients/openai/OpenAIApiClient.ts index 617637a7e1..28e6de4223 100644 --- a/src/renderer/src/aiCore/clients/openai/OpenAIApiClient.ts +++ b/src/renderer/src/aiCore/clients/openai/OpenAIApiClient.ts @@ -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 { diff --git a/src/renderer/src/config/providers.ts b/src/renderer/src/config/providers.ts index 4ff48c6fa2..39fef4e697 100644 --- a/src/renderer/src/config/providers.ts +++ b/src/renderer/src/config/providers.ts @@ -96,8 +96,7 @@ export const SYSTEM_PROVIDERS_CONFIG: Record = 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 = 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 = 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 = 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 = 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 = 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) diff --git a/src/renderer/src/pages/home/Tabs/components/OpenAISettingsGroup.tsx b/src/renderer/src/pages/home/Tabs/components/OpenAISettingsGroup.tsx index 751d7d0802..7b7c88eacf 100644 --- a/src/renderer/src/pages/home/Tabs/components/OpenAISettingsGroup.tsx +++ b/src/renderer/src/pages/home/Tabs/components/OpenAISettingsGroup.tsx @@ -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 = ({ 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( diff --git a/src/renderer/src/pages/settings/ProviderSettings/ProviderSettingsPopup.tsx b/src/renderer/src/pages/settings/ProviderSettings/ProviderSettingsPopup.tsx deleted file mode 100644 index 8d4f27d213..0000000000 --- a/src/renderer/src/pages/settings/ProviderSettings/ProviderSettingsPopup.tsx +++ /dev/null @@ -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 = ({ 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 ( - - { - setIsNotSupportArrayContent(e.target.checked) - updateProvider({ ...provider, isNotSupportArrayContent: e.target.checked }) - }}> - {t('settings.provider.is_not_support_array_content')} - - - ) -} - -const TopViewKey = 'ProviderSettingsPopup' - -/** - * @deprecated - */ -export default class ProviderSettingsPopup { - static topviewId = 0 - static hide() { - TopView.hide(TopViewKey) - } - static show(props: ShowParams) { - return new Promise((resolve) => { - TopView.show( - { - resolve(v) - TopView.hide(TopViewKey) - }} - />, - TopViewKey - ) - }) - } -} diff --git a/src/renderer/src/utils/mcp-tools.ts b/src/renderer/src/utils/mcp-tools.ts index daf5ffa2c9..973f8fc088 100644 --- a/src/renderer/src/utils/mcp-tools.ts +++ b/src/renderer/src/utils/mcp-tools.ts @@ -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) {