mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-10 15:49:29 +08:00
feat: enhance model filtering based on supported endpoint types
- Updated CodeToolsPage to include checks for supported endpoint types for various CLI tools. - Added 'cherryin' to GEMINI_SUPPORTED_PROVIDERS and updated CLAUDE_SUPPORTED_PROVIDERS to include it. - Improved logic for determining model compatibility with selected CLI tools, enhancing overall functionality.
This commit is contained in:
parent
d12515ccb9
commit
8bcd229849
@ -13,7 +13,7 @@ import { loggerService } from '@renderer/services/LoggerService'
|
|||||||
import { getModelUniqId } from '@renderer/services/ModelService'
|
import { getModelUniqId } from '@renderer/services/ModelService'
|
||||||
import { useAppDispatch, useAppSelector } from '@renderer/store'
|
import { useAppDispatch, useAppSelector } from '@renderer/store'
|
||||||
import { setIsBunInstalled } from '@renderer/store/mcp'
|
import { setIsBunInstalled } from '@renderer/store/mcp'
|
||||||
import { Model } from '@renderer/types'
|
import { EndpointType, Model } from '@renderer/types'
|
||||||
import { codeTools, terminalApps, TerminalConfig } from '@shared/config/constant'
|
import { codeTools, terminalApps, TerminalConfig } from '@shared/config/constant'
|
||||||
import { Alert, Avatar, Button, Checkbox, Input, Popover, Select, Space, Tooltip } from 'antd'
|
import { Alert, Avatar, Button, Checkbox, Input, Popover, Select, Space, Tooltip } from 'antd'
|
||||||
import { ArrowUpRight, Download, FolderOpen, HelpCircle, Terminal, X } from 'lucide-react'
|
import { ArrowUpRight, Download, FolderOpen, HelpCircle, Terminal, X } from 'lucide-react'
|
||||||
@ -70,18 +70,43 @@ const CodeToolsPage: FC = () => {
|
|||||||
if (isEmbeddingModel(m) || isRerankModel(m) || isTextToImageModel(m)) {
|
if (isEmbeddingModel(m) || isRerankModel(m) || isTextToImageModel(m)) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m.provider === 'cherryai') {
|
if (m.provider === 'cherryai') {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if (selectedCliTool === codeTools.claudeCode) {
|
if (selectedCliTool === codeTools.claudeCode) {
|
||||||
|
if (m.supported_endpoint_types) {
|
||||||
|
return m.supported_endpoint_types.includes('anthropic')
|
||||||
|
}
|
||||||
return m.id.includes('claude') || CLAUDE_OFFICIAL_SUPPORTED_PROVIDERS.includes(m.provider)
|
return m.id.includes('claude') || CLAUDE_OFFICIAL_SUPPORTED_PROVIDERS.includes(m.provider)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (selectedCliTool === codeTools.geminiCli) {
|
if (selectedCliTool === codeTools.geminiCli) {
|
||||||
|
if (m.supported_endpoint_types) {
|
||||||
|
return m.supported_endpoint_types.includes('gemini')
|
||||||
|
}
|
||||||
return m.id.includes('gemini')
|
return m.id.includes('gemini')
|
||||||
}
|
}
|
||||||
|
|
||||||
if (selectedCliTool === codeTools.openaiCodex) {
|
if (selectedCliTool === codeTools.openaiCodex) {
|
||||||
|
if (m.supported_endpoint_types) {
|
||||||
|
return ['openai', 'openai-response'].some((type) =>
|
||||||
|
m.supported_endpoint_types?.includes(type as EndpointType)
|
||||||
|
)
|
||||||
|
}
|
||||||
return m.id.includes('openai') || OPENAI_CODEX_SUPPORTED_PROVIDERS.includes(m.provider)
|
return m.id.includes('openai') || OPENAI_CODEX_SUPPORTED_PROVIDERS.includes(m.provider)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (selectedCliTool === codeTools.qwenCode || selectedCliTool === codeTools.iFlowCli) {
|
||||||
|
if (m.supported_endpoint_types) {
|
||||||
|
return ['openai', 'openai-response'].some((type) =>
|
||||||
|
m.supported_endpoint_types?.includes(type as EndpointType)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
[selectedCliTool]
|
[selectedCliTool]
|
||||||
|
|||||||
@ -23,10 +23,16 @@ export const CLI_TOOLS = [
|
|||||||
{ value: codeTools.iFlowCli, label: 'iFlow CLI' }
|
{ value: codeTools.iFlowCli, label: 'iFlow CLI' }
|
||||||
]
|
]
|
||||||
|
|
||||||
export const GEMINI_SUPPORTED_PROVIDERS = ['aihubmix', 'dmxapi', 'new-api']
|
export const GEMINI_SUPPORTED_PROVIDERS = ['aihubmix', 'dmxapi', 'new-api', 'cherryin']
|
||||||
export const CLAUDE_OFFICIAL_SUPPORTED_PROVIDERS = ['deepseek', 'moonshot', 'zhipu', 'dashscope', 'modelscope']
|
export const CLAUDE_OFFICIAL_SUPPORTED_PROVIDERS = ['deepseek', 'moonshot', 'zhipu', 'dashscope', 'modelscope']
|
||||||
export const CLAUDE_SUPPORTED_PROVIDERS = ['aihubmix', 'dmxapi', 'new-api', ...CLAUDE_OFFICIAL_SUPPORTED_PROVIDERS]
|
export const CLAUDE_SUPPORTED_PROVIDERS = [
|
||||||
export const OPENAI_CODEX_SUPPORTED_PROVIDERS = ['openai', 'openrouter', 'aihubmix', 'new-api']
|
'aihubmix',
|
||||||
|
'dmxapi',
|
||||||
|
'new-api',
|
||||||
|
'cherryin',
|
||||||
|
...CLAUDE_OFFICIAL_SUPPORTED_PROVIDERS
|
||||||
|
]
|
||||||
|
export const OPENAI_CODEX_SUPPORTED_PROVIDERS = ['openai', 'openrouter', 'aihubmix', 'new-api', 'cherryin']
|
||||||
|
|
||||||
// Provider 过滤映射
|
// Provider 过滤映射
|
||||||
export const CLI_TOOL_PROVIDER_MAP: Record<string, (providers: Provider[]) => Provider[]> = {
|
export const CLI_TOOL_PROVIDER_MAP: Record<string, (providers: Provider[]) => Provider[]> = {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user