Skip to main content

ProviderBuilder

Trait ProviderBuilder 

Source
pub trait ProviderBuilder:
    Sized
    + Default
    + Clone {
    type Extension<H: HttpClientExt>: Provider;
    type ApiKey: ApiKey;

    const BASE_URL: &'static str;

    // Required method
    fn build<H>(
        builder: &ClientBuilder<Self, Self::ApiKey, H>,
    ) -> Result<Self::Extension<H>, Error>
       where H: HttpClientExt;

    // Provided method
    fn finish<H>(
        &self,
        builder: ClientBuilder<Self, Self::ApiKey, H>,
    ) -> Result<ClientBuilder<Self, Self::ApiKey, H>, Error> { ... }
}
Expand description

An API provider extension builder, this abstracts over provider-specific builders which are able to configure and produce a given provider’s extension type

See Provider

Required Associated Constants§

Source

const BASE_URL: &'static str

Required Associated Types§

Required Methods§

Source

fn build<H>( builder: &ClientBuilder<Self, Self::ApiKey, H>, ) -> Result<Self::Extension<H>, Error>
where H: HttpClientExt,

Build the provider extension from the client builder configuration.

Provided Methods§

Source

fn finish<H>( &self, builder: ClientBuilder<Self, Self::ApiKey, H>, ) -> Result<ClientBuilder<Self, Self::ApiKey, H>, Error>

This method can be used to customize the fields of builder before it is used to create a client. For example, adding default headers

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl ProviderBuilder for BigmodelBuilder

Source§

const BASE_URL: &'static str = BIGMODEL_API_BASE_URL

Source§

type Extension<H> = BigmodelExt where H: HttpClientExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for AnthropicBuilder

Source§

const BASE_URL: &'static str = "https://api.anthropic.com"

Source§

type Extension<H: HttpClientExt> = AnthropicExt

Source§

type ApiKey = AnthropicKey

Source§

impl ProviderBuilder for AzureExtBuilder

Source§

impl ProviderBuilder for CohereBuilder

Source§

const BASE_URL: &'static str = "https://api.cohere.ai"

Source§

type Extension<H: HttpClientExt> = CohereExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for DeepSeekExtBuilder

Source§

const BASE_URL: &'static str = DEEPSEEK_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = DeepSeekExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for GaladrielBuilder

Source§

const BASE_URL: &'static str = GALADRIEL_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = GaladrielExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for GeminiBuilder

Source§

const BASE_URL: &'static str = GEMINI_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = GeminiExt

Source§

type ApiKey = GeminiApiKey

Source§

impl ProviderBuilder for GroqBuilder

Source§

const BASE_URL: &'static str = GROQ_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = GroqExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for HuggingFaceBuilder

Source§

const BASE_URL: &'static str = HUGGINGFACE_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = HuggingFaceExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for HyperbolicBuilder

Source§

const BASE_URL: &'static str = HYPERBOLIC_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = HyperbolicExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for MiraBuilder

Source§

const BASE_URL: &'static str = MIRA_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = MiraExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for MistralBuilder

Source§

const BASE_URL: &'static str = MISTRAL_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = MistralExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for MoonshotBuilder

Source§

const BASE_URL: &'static str = MOONSHOT_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = MoonshotExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for OllamaBuilder

Source§

const BASE_URL: &'static str = OLLAMA_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = OllamaExt

Source§

type ApiKey = Nothing

Source§

impl ProviderBuilder for OpenAICompletionsExtBuilder

Source§

impl ProviderBuilder for OpenAIResponsesExtBuilder

Source§

impl ProviderBuilder for OpenRouterExtBuilder

Source§

const BASE_URL: &'static str = OPENROUTER_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = OpenRouterExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for PerplexityBuilder

Source§

const BASE_URL: &'static str = PERPLEXITY_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = PerplexityExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for TogetherExtBuilder

Source§

const BASE_URL: &'static str = TOGETHER_AI_BASE_URL

Source§

type Extension<H: HttpClientExt> = TogetherExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for VoyageBuilder

Source§

const BASE_URL: &'static str = VOYAGEAI_API_BASE_URL

Source§

type Extension<H: HttpClientExt> = VoyageExt

Source§

type ApiKey = BearerAuth

Source§

impl ProviderBuilder for XAiExtBuilder

Source§

const BASE_URL: &'static str = XAI_BASE_URL

Source§

type Extension<H: HttpClientExt> = XAiExt

Source§

type ApiKey = BearerAuth