mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-19 22:52:08 +08:00
37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
/**
|
|
* 从模型 ID 中提取基础名称。
|
|
* 例如:
|
|
* - 'deepseek/deepseek-r1' => 'deepseek-r1'
|
|
* - 'deepseek-ai/deepseek/deepseek-r1' => 'deepseek-r1'
|
|
* @param {string} id 模型 ID
|
|
* @param {string} [delimiter='/'] 分隔符,默认为 '/'
|
|
* @returns {string} 基础名称
|
|
*/
|
|
export const getBaseModelName = (id: string, delimiter: string = '/'): string => {
|
|
const parts = id.split(delimiter)
|
|
return parts[parts.length - 1]
|
|
}
|
|
|
|
/**
|
|
* 从模型 ID 中提取基础名称并转换为小写。
|
|
* 例如:
|
|
* - 'deepseek/DeepSeek-R1' => 'deepseek-r1'
|
|
* - 'deepseek-ai/deepseek/DeepSeek-R1' => 'deepseek-r1'
|
|
* @param {string} id 模型 ID
|
|
* @param {string} [delimiter='/'] 分隔符,默认为 '/'
|
|
* @returns {string} 小写的基础名称
|
|
*/
|
|
export const getLowerBaseModelName = (id: string, delimiter: string = '/'): string => {
|
|
const baseModelName = getBaseModelName(id, delimiter).toLowerCase()
|
|
// for openrouter
|
|
if (baseModelName.endsWith(':free')) {
|
|
return baseModelName.replace(':free', '')
|
|
}
|
|
|
|
// for cherryin
|
|
if (baseModelName.endsWith('(free)')) {
|
|
return baseModelName.replace('(free)', '')
|
|
}
|
|
return baseModelName
|
|
}
|