Pixir.Providers.Registry (pixir v0.1.12)

Copy Markdown View Source

Provider catalog and routing metadata for Pixir provider dialects.

Summary

Functions

Resolve a provider module to its registry entry. Unknown modules use OpenAI defaults.

Whether model_id is in the merged provider catalog.

Merged provider model catalog advertised by ACP.

Resolve a model id to the provider entry that owns its dialect.

Resolve one immutable Provider request selection from one Config snapshot.

Types

entry()

@type entry() :: %{
  provider: module(),
  default_model: String.t(),
  models: [map()],
  auth: %{
    env_var: String.t(),
    scheme: :oauth_or_api_key | :api_key_header,
    login_supported: boolean()
  },
  capabilities: %{
    reasoning_dialect: nil | String.t(),
    prompt_cache: :prompt_cache_key | :cache_control,
    prompt_contract_version: nil | String.t(),
    tool_dialect: :responses | :anthropic,
    hosted_tools: boolean()
  }
}

Functions

entry_for(arg1)

@spec entry_for(module()) :: entry()

Resolve a provider module to its registry entry. Unknown modules use OpenAI defaults.

model_supported?(model_id)

@spec model_supported?(String.t()) :: boolean()

Whether model_id is in the merged provider catalog.

models(opts \\ [])

@spec models(keyword()) :: [map()]

Merged provider model catalog advertised by ACP.

resolve(arg1)

@spec resolve(String.t() | nil) :: entry()

Resolve a model id to the provider entry that owns its dialect.

resolve_request(selection, config_opts \\ [])

@spec resolve_request(
  map(),
  keyword()
) :: {:ok, Pixir.Providers.ResolvedProviderRequest.t()} | {:error, map()}

Resolve one immutable Provider request selection from one Config snapshot.