Skip to main content

Crate serdes_ai_providers

Crate serdes_ai_providers 

Source
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-4o
  • anthropic:claude-3-5-sonnet-20241022 - Anthropic Claude
  • google:gemini-2.0-flash - Google Gemini
  • groq:llama-3.3-70b-versatile - Groq Llama
  • ollama:llama3.2 - Local Ollama model

Or models can be inferred from their names:

  • gpt-4o → OpenAI
  • claude-3-5-sonnet-20241022 → Anthropic
  • gemini-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§

oauth
OAuth utilities for PKCE-based authentication flows.
prelude
Prelude for common imports.

Structs§

AnthropicProvider
Anthropic provider.
CohereProvider
Cohere provider.
DeepSeekProvider
DeepSeek provider.
FireworksProvider
Fireworks AI provider.
GatewayConfig
Configuration for a gateway provider.
GatewayProvider
Gateway provider for AI routing services.
GoogleProvider
Google AI (Generative Language API) provider.
OpenAIProvider
OpenAI provider.
OpenRouterProvider
OpenRouter provider.
ProviderConfig
Common configuration for providers.
ProviderRegistry
Registry for looking up providers by name.
TogetherProvider
Together AI provider.
VertexAIProvider
Vertex AI provider.

Enums§

ProviderError
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§

BoxedProvider
Type alias for boxed providers.