Skip to main content

ModelProviderFactory

Trait ModelProviderFactory 

Source
pub trait ModelProviderFactory: Send + Sync {
    // Required method
    fn create(&self, provider_name: &str) -> Result<Arc<dyn ModelProvider>>;

    // Provided method
    fn create_with_base_url(
        &self,
        provider_name: &str,
        base_url: Option<&str>,
    ) -> Result<Arc<dyn ModelProvider>> { ... }
}
Expand description

Maps a model provider name (for example, "openai" or "anthropic") to an LLM provider implementation.

Implementations are responsible for API key resolution and any runtime configuration needed to construct concrete ModelProvider instances.

Required Methods§

Source

fn create(&self, provider_name: &str) -> Result<Arc<dyn ModelProvider>>

Provided Methods§

Source

fn create_with_base_url( &self, provider_name: &str, base_url: Option<&str>, ) -> Result<Arc<dyn ModelProvider>>

Create a provider with an optional base URL override.

Used for self-hosted or OpenAI-compatible providers where the caller configures a custom endpoint. The default implementation ignores the URL and delegates to create.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<T> ModelProviderFactory for Arc<T>

Source§

fn create(&self, provider_name: &str) -> Result<Arc<dyn ModelProvider>>

Source§

fn create_with_base_url( &self, provider_name: &str, base_url: Option<&str>, ) -> Result<Arc<dyn ModelProvider>>

Implementors§