mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-07-27 08:14:33 +08:00
feat(provider): add FormatTransformConfig for API format conversion
Add FormatTransformConfig struct to support API format transformation between different providers (e.g., Anthropic ↔ OpenAI). This enables providers like OpenRouter that use OpenAI-compatible interfaces.
This commit is contained in:
@@ -191,6 +191,23 @@ pub struct ProviderProxyConfig {
|
||||
pub proxy_password: Option<String>,
|
||||
}
|
||||
|
||||
/// 格式转换配置(用于 OpenRouter 等需要 API 格式转换的供应商)
|
||||
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
|
||||
pub struct FormatTransformConfig {
|
||||
/// 是否启用格式转换
|
||||
#[serde(default)]
|
||||
pub enabled: bool,
|
||||
/// 源格式:anthropic, openai, gemini
|
||||
#[serde(rename = "sourceFormat", skip_serializing_if = "Option::is_none")]
|
||||
pub source_format: Option<String>,
|
||||
/// 目标格式:anthropic, openai, gemini
|
||||
#[serde(rename = "targetFormat", skip_serializing_if = "Option::is_none")]
|
||||
pub target_format: Option<String>,
|
||||
/// 是否转换流式响应(默认 true)
|
||||
#[serde(rename = "transformStreaming", skip_serializing_if = "Option::is_none")]
|
||||
pub transform_streaming: Option<bool>,
|
||||
}
|
||||
|
||||
/// 供应商元数据
|
||||
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
|
||||
pub struct ProviderMeta {
|
||||
@@ -227,6 +244,9 @@ pub struct ProviderMeta {
|
||||
/// 供应商单独的代理配置
|
||||
#[serde(rename = "proxyConfig", skip_serializing_if = "Option::is_none")]
|
||||
pub proxy_config: Option<ProviderProxyConfig>,
|
||||
/// 格式转换配置(用于 OpenRouter 等需要 API 格式转换的供应商)
|
||||
#[serde(rename = "formatTransform", skip_serializing_if = "Option::is_none")]
|
||||
pub format_transform: Option<FormatTransformConfig>,
|
||||
}
|
||||
|
||||
impl ProviderManager {
|
||||
|
||||
Reference in New Issue
Block a user