HuggingfaceClient.ProviderRegistry (huggingface_client v0.1.0)

Copy Markdown View Source

Lookup table mapping {provider_id, task} pairs to provider module atoms.

Usage

{:ok, HuggingfaceClient.Provider.Groq} = ProviderRegistry.get("groq", "conversational")
{:error, %InputError{}}               = ProviderRegistry.get("groq", "image-segmentation")

Summary

Functions

Returns all registered {provider_id, task} pairs.

Resolves a {provider, task} pair to a provider module atom.

Returns a deduplicated, sorted list of all known provider ID strings.

Types

provider()

@type provider() :: String.t()

task()

@type task() :: String.t() | nil

Functions

all()

@spec all() :: [{provider(), task()}]

Returns all registered {provider_id, task} pairs.

get(provider, task)

@spec get(provider(), task()) ::
  {:ok, module()} | {:error, HuggingfaceClient.Error.InputError.t()}

Resolves a {provider, task} pair to a provider module atom.

Special cases:

  • "auto" or nil → always resolves to HfInference (any task including nil)
  • "hf-inference" + nil task → HfInference
  • unknown provider → {:error, InputError}
  • known provider + unsupported task → {:error, InputError}

providers()

@spec providers() :: [String.t()]

Returns a deduplicated, sorted list of all known provider ID strings.