mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-20 15:10:59 +08:00
- Added provider API host formatting utilities to handle differences between Cherry Studio and AI SDK. - Introduced functions for formatting provider API hosts, including support for Azure OpenAI and Vertex AI. - Created a simple API key rotator for managing API key rotation. - Developed shared provider initialization and mapping utilities for resolving provider IDs. - Implemented AI SDK configuration utilities for converting Cherry Studio providers to AI SDK configurations. - Added support for various providers including OpenRouter, Google Vertex AI, and Amazon Bedrock. - Enhanced error handling and logging in the unified messages service for better debugging. - Introduced functions for streaming and generating unified messages using AI SDK.
32 lines
1.0 KiB
TypeScript
32 lines
1.0 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', '')
|
|
}
|
|
return baseModelName
|
|
}
|