/** * 从模型 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 }