Expand description
Provider abstractions for serdes-ai.
This crate provides a unified interface for different AI providers:
- OpenAI - GPT-4o, GPT-4 Turbo, o1, o3-mini
- Anthropic - Claude 3.5 Sonnet, Claude 3 Opus
- Google - Gemini 2.0 Flash, Gemini Pro
- Azure - Azure OpenAI Service
- Groq - Ultra-fast Llama, Mixtral
- Mistral - Mistral Large, Codestral
- Ollama - Local models
- Together AI - Open models
- Fireworks - Fast inference
- DeepSeek - DeepSeek Chat, DeepSeek R1
- OpenRouter - Multi-provider routing
- Cohere - Command R+
- Gateway - AI gateways (Portkey, LiteLLM, Helicone, Cloudflare)
§Example
ⓘ
use serdes_ai_providers::{ProviderRegistry, OpenAIProvider};
use std::sync::Arc;
// Create a registry
let registry = ProviderRegistry::new();
// Register providers
registry.register(Arc::new(OpenAIProvider::new("sk-...")));
// Infer provider from model string
let (provider, model) = registry.infer_provider("openai:gpt-4o")?;§Model Strings
Models can be specified with provider prefixes:
openai:gpt-4o- OpenAI GPT-4oanthropic:claude-3-5-sonnet-20241022- Anthropic Claudegoogle:gemini-2.0-flash- Google Geminigroq:llama-3.3-70b-versatile- Groq Llamaollama:llama3.2- Local Ollama model
Or models can be inferred from their names:
gpt-4o→ OpenAIclaude-3-5-sonnet-20241022→ Anthropicgemini-2.0-flash→ Google
Re-exports§
pub use oauth::config::chatgpt_oauth_config;pub use oauth::config::claude_code_oauth_config;pub use oauth::refresh_token;pub use oauth::run_pkce_flow;pub use oauth::OAuthConfig;pub use oauth::OAuthContext;pub use oauth::OAuthError;pub use oauth::TokenResponse;
Modules§
Structs§
- Anthropic
Provider - Anthropic provider.
- Cohere
Provider - Cohere provider.
- Deep
Seek Provider - DeepSeek provider.
- Fireworks
Provider - Fireworks AI provider.
- Gateway
Config - Configuration for a gateway provider.
- Gateway
Provider - Gateway provider for AI routing services.
- Google
Provider - Google AI (Generative Language API) provider.
- OpenAI
Provider - OpenAI provider.
- Open
Router Provider - OpenRouter provider.
- Provider
Config - Common configuration for providers.
- Provider
Registry - Registry for looking up providers by name.
- Together
Provider - Together AI provider.
- VertexAI
Provider - Vertex AI provider.
Enums§
- Provider
Error - Provider error types.
Traits§
- Provider
- Provider trait - provides authenticated access to an AI API.
Functions§
- from_
env - Create a provider registry configured from environment variables.
- global_
registry - Get the global provider registry.
- infer
- Infer provider and model from a model string.
- infer_
provider_ from_ model_ name - Infer provider from model name.
Type Aliases§
- Boxed
Provider - Type alias for boxed providers.