ai_lib/provider/
mod.rs

1//! 提供商适配器模块,实现对不同AI厂商API的统一适配
2//!
3//! Provider adapter module implementing unified adapters for different AI provider APIs.
4//!
5//! This module contains adapters for all supported AI providers, implementing the
6//! `ChatProvider` trait for consistent interface across different vendor APIs.
7//! Most providers use the `GenericAdapter` for OpenAI-compatible endpoints,
8//! while unique APIs have dedicated adapter implementations.
9
10pub mod ai21;
11pub mod builders;
12pub mod chat_provider;
13pub mod classification;
14pub mod cohere;
15pub mod config;
16pub mod configs;
17pub mod gemini;
18pub mod generic;
19pub mod mistral;
20#[cfg(feature = "routing_mvp")]
21pub mod models;
22pub mod perplexity;
23pub mod strategies;
24#[cfg(feature = "routing_mvp")]
25pub use models::*;
26pub mod openai;
27pub mod pricing;
28pub(crate) mod utils;
29
30#[doc(hidden)]
31pub use ai21::AI21Adapter;
32#[doc(hidden)]
33pub use cohere::CohereAdapter;
34#[cfg_attr(docsrs, doc(cfg(feature = "routing_mvp")))]
35pub use configs::ProviderConfigs;
36#[doc(hidden)]
37pub use gemini::GeminiAdapter;
38#[doc(hidden)]
39pub use generic::GenericAdapter;
40#[doc(hidden)]
41pub use mistral::MistralAdapter;
42#[doc(hidden)]
43pub use openai::OpenAiAdapter;
44#[doc(hidden)]
45pub use perplexity::PerplexityAdapter;
46
47// Re-export common routing strategies at provider level for convenience
48// Usage: `use ai_lib::provider::FailoverProvider;`
49pub use strategies::FailoverProvider;
50pub use strategies::RoundRobinProvider;
51pub use strategies::RoutingStrategyBuilder;
52
53// Keep adapters internal to reduce public surface in OSS. Selection happens via `Provider` + `AiClient`.
54// Internal re-exports (if any) stay private; public API should avoid exposing provider modules directly.