LangEx.Config (LangEx v0.11.3)

Copy Markdown View Source

Layered configuration resolution for LangEx.

Resolution order (first non-nil wins):

  1. Explicit opts passed to function calls
  2. Application environment (config :lang_ex, :openai, api_key: "...")
  3. System environment variables (OPENAI_API_KEY, ANTHROPIC_API_KEY)

Custom providers can be registered via application config:

config :lang_ex, :providers,
  groq: %{env_key: "GROQ_API_KEY", default_model: "llama-3.3-70b"}

Summary

Functions

Resolves the API key for a given provider.

Resolves the API key, raising if not found.

Resolves the model name for a provider.

Returns the provider defaults map, merging built-in with user-configured.

Functions

api_key(provider, opts \\ [])

@spec api_key(
  atom(),
  keyword()
) :: String.t() | nil

Resolves the API key for a given provider.

api_key!(provider, opts \\ [])

@spec api_key!(
  atom(),
  keyword()
) :: String.t()

Resolves the API key, raising if not found.

model(provider, opts \\ [])

@spec model(
  atom(),
  keyword()
) :: String.t()

Resolves the model name for a provider.

provider_defaults(provider)

@spec provider_defaults(atom()) :: %{env_key: String.t(), default_model: String.t()}

Returns the provider defaults map, merging built-in with user-configured.