mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-03 19:30:04 +08:00
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:
parent
f005afb71c
commit
8823dc6a52
@ -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
|
||||
}
|
||||
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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(
|
||||
|
||||
@ -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
|
||||
)
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -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) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user