Behaviour for LLM provider implementations.
Provider modules define config, API key resolution, headers, response handling, and capabilities.
Summary
Functions
Build auth headers based on auth type.
Returns the environment variable name for a provider's API key.
Resolve API key from environment for a provider.
Falls back to LLM_API_KEY if provider-specific env var not set.
Types
@type config() :: %{ id: String.t(), name: String.t(), base_url: String.t(), default_model: String.t(), auth_type: :bearer | :subscription_key | :none, api_key_env: String.t(), supports_json_mode: boolean(), supports_system_role: boolean(), rate_limit: non_neg_integer() | nil, rate_window_ms: pos_integer(), models: [String.t()], suppress_thinking: boolean() }