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§
Provided Methods§
Sourcefn create_with_base_url(
&self,
provider_name: &str,
base_url: Option<&str>,
) -> Result<Arc<dyn ModelProvider>>
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".