mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-06-16 13:34:04 +08:00
a35d112cd4
This major refactoring introduces a modular provider adapter architecture to support format transformation between different AI API formats. New features: - Add ProviderAdapter trait for unified provider abstraction - Implement Claude, Codex, and Gemini adapters with specific logic - Add Anthropic ↔ OpenAI format transformation for OpenRouter compatibility - Support model mapping from provider configuration (ANTHROPIC_MODEL, etc.) - Add OpenRouter preset to Claude provider presets Refactoring: - Extract authentication logic into auth.rs with AuthInfo and AuthStrategy - Move URL building and request transformation to individual adapters - Simplify ProviderRouter to only use proxy target providers - Refactor RequestForwarder to use adapter-based request/response handling - Use whitelist mode for header forwarding (only pass necessary headers) Architecture: - providers/adapter.rs: ProviderAdapter trait definition - providers/auth.rs: AuthInfo, AuthStrategy types - providers/claude.rs: Claude adapter with OpenRouter detection - providers/codex.rs: Codex (OpenAI) adapter - providers/gemini.rs: Gemini (Google) adapter - providers/models/: Anthropic and OpenAI API data models - providers/transform.rs: Bidirectional format transformation
24 lines
654 B
Rust
24 lines
654 B
Rust
//! 代理服务器模块
|
|
//!
|
|
//! 提供本地HTTP代理服务,支持多Provider故障转移和请求透传
|
|
|
|
pub mod error;
|
|
mod forwarder;
|
|
mod handlers;
|
|
mod health;
|
|
pub mod providers;
|
|
mod router;
|
|
pub(crate) mod server;
|
|
pub(crate) mod types;
|
|
|
|
// 公开导出给外部使用(commands, services等模块需要)
|
|
#[allow(unused_imports)]
|
|
pub use error::ProxyError;
|
|
#[allow(unused_imports)]
|
|
pub use types::{ProxyConfig, ProxyServerInfo, ProxyStatus};
|
|
|
|
// 内部模块间共享(供子模块使用)
|
|
// 注意:这个导出用于模块内部,编译器可能警告未使用但实际被子模块使用
|
|
#[allow(unused_imports)]
|
|
pub(crate) use types::*;
|