Skip to main content

Crate intr_providers

Crate intr_providers 

Source
Expand description

intr-providers - model-provider abstraction for Intentry.

Every AI model call goes through the [Provider] trait. To add a new model you add a new adapter - nothing else changes.

§Quick start

use intr_providers::{ProviderRegistry, GenerateRequest, ApiKey, Message, Role};

let registry = ProviderRegistry::default();

let resp = registry
    .for_model("claude-sonnet-4-6")
    .unwrap()
    .generate(GenerateRequest {
        model: "claude-sonnet-4-6".into(),
        messages: vec![Message { role: Role::User, content: "Hello!".into() }],
        api_key: ApiKey::UserSupplied("sk-ant-...".to_string().into()),
        ..Default::default()
    })
    .await?;

println!("{}", resp.text);

Re-exports§

pub use error::ProviderError;
pub use registry::ProviderRegistry;
pub use types::ApiKey;
pub use types::FinishReason;
pub use types::GenerateRequest;
pub use types::GenerateResponse;
pub use types::Message;
pub use types::Role;

Modules§

error
Provider error types.
providers
registry
Provider registry - resolves a model ID to the right Provider adapter.
retry
Retry logic with exponential backoff for transient provider errors.
types
Shared request/response types for all providers.