fix: Update dashscoop provider configuration and enhance model editing functionality (#4748)
* fix(provider config): update dashscoop new links * feat(EditModelsPopup): add grouping function for bailian * fix(isWebSearchModel): Correctly handle the priority of manually setting model support for web search
This commit is contained in:
parent
486ccc1a15
commit
412e8b03fc
@ -2265,6 +2265,12 @@ export function isWebSearchModel(model: Model): boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
if (model.type) {
|
||||
if (model.type.includes('web_search')) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
const provider = getProviderByModel(model)
|
||||
|
||||
if (!provider) {
|
||||
@ -2301,7 +2307,7 @@ export function isWebSearchModel(model: Model): boolean {
|
||||
}
|
||||
|
||||
if (provider.id === 'dashscope') {
|
||||
const models = ['qwen-turbo', 'qwen-max', 'qwen-plus']
|
||||
const models = ['qwen-turbo', 'qwen-max', 'qwen-plus', 'qwq']
|
||||
// matches id like qwen-max-0919, qwen-max-latest
|
||||
return models.some((i) => model.id.startsWith(i))
|
||||
}
|
||||
@ -2310,7 +2316,7 @@ export function isWebSearchModel(model: Model): boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
return model.type?.includes('web_search') || false
|
||||
return false
|
||||
}
|
||||
|
||||
export function isGenerateImageModel(model: Model): boolean {
|
||||
@ -2406,3 +2412,27 @@ export function isHunyuanSearchModel(model?: Model): boolean {
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
/**
|
||||
* 按 Qwen 系列模型分组
|
||||
* @param models 模型列表
|
||||
* @returns 分组后的模型
|
||||
*/
|
||||
export function groupQwenModels(models: Model[]): Record<string, Model[]> {
|
||||
return models.reduce(
|
||||
(groups, model) => {
|
||||
// 匹配 Qwen 系列模型的前缀
|
||||
const prefixMatch = model.id.match(/^(qwen(?:\d+\.\d+|2(?:\.\d+)?|-\d+b|-(?:max|coder|vl)))/i)
|
||||
// 匹配 qwen2.5、qwen2、qwen-7b、qwen-max、qwen-coder 等
|
||||
const groupKey = prefixMatch ? prefixMatch[1] : model.group || '其他'
|
||||
|
||||
if (!groups[groupKey]) {
|
||||
groups[groupKey] = []
|
||||
}
|
||||
groups[groupKey].push(model)
|
||||
|
||||
return groups
|
||||
},
|
||||
{} as Record<string, Model[]>
|
||||
)
|
||||
}
|
||||
|
||||
@ -319,9 +319,9 @@ export const PROVIDER_CONFIG = {
|
||||
},
|
||||
websites: {
|
||||
official: 'https://www.aliyun.com/product/bailian',
|
||||
apiKey: 'https://bailian.console.aliyun.com/?apiKey=1#/api-key',
|
||||
apiKey: 'https://bailian.console.aliyun.com/?tab=model#/api-key',
|
||||
docs: 'https://help.aliyun.com/zh/model-studio/getting-started/',
|
||||
models: 'https://bailian.console.aliyun.com/model-market#/model-market'
|
||||
models: 'https://bailian.console.aliyun.com/?tab=model#/model-market'
|
||||
}
|
||||
},
|
||||
stepfun: {
|
||||
|
||||
@ -4,6 +4,7 @@ import CustomTag from '@renderer/components/CustomTag'
|
||||
import ModelTagsWithLabel from '@renderer/components/ModelTagsWithLabel'
|
||||
import {
|
||||
getModelLogo,
|
||||
groupQwenModels,
|
||||
isEmbeddingModel,
|
||||
isFunctionCallingModel,
|
||||
isReasoningModel,
|
||||
@ -81,7 +82,16 @@ const PopupContainer: React.FC<Props> = ({ provider: _provider, resolve }) => {
|
||||
}
|
||||
})
|
||||
|
||||
const modelGroups = groupBy(list, 'group')
|
||||
const modelGroups =
|
||||
provider.id === 'dashscope'
|
||||
? {
|
||||
...groupBy(
|
||||
list.filter((model) => !model.id.startsWith('qwen')),
|
||||
'group'
|
||||
),
|
||||
...groupQwenModels(list.filter((model) => model.id.startsWith('qwen')))
|
||||
}
|
||||
: groupBy(list, 'group')
|
||||
|
||||
const onOk = () => {
|
||||
setOpen(false)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user