ooai_llm.providers¶
Provider normalization helpers.
- Purpose:
Normalize provider names, aliases, and package metadata used across the package.
- Design:
Use a canonical provider enum that matches the provider strings commonly passed to LangChain and other SDKs.
Keep alias normalization and model-name inference in one place so both settings and typed model-string utilities reuse the same logic.
Expose native environment-variable names, LiteLLM provider prefixes, native SDK package names, and extra names for installation guidance.
- Important mappings:
PROVIDER_ALIASES: Mapping from common aliases to canonical providers. PROVIDER_API_KEY_ENV_VARS: Native environment-variable names by provider. PROVIDER_LITELLM_PREFIXES: Native LiteLLM provider prefixes. PROVIDER_NATIVE_SDK_PACKAGES: Official or primary Python SDK package names. PROVIDER_LANGCHAIN_PACKAGES: LangChain integration package names. PROVIDER_EXTRAS: Optional-dependency extra names by provider.
Examples
>>> normalize_provider_name("claude") == Provider.ANTHROPIC
True
>>> infer_provider_from_model_name("gpt-5.4-mini") == Provider.OPENAI
True
>>> get_litellm_provider_prefix("google")
'gemini'
Attributes¶
Classes¶
Canonical provider identifiers. |
Functions¶
|
Normalize a provider alias to its canonical enum value. |
|
Return the canonical LiteLLM provider prefix for a provider. |
|
Infer a provider from a raw model name. |
|
Split a model string into provider and model parts. |
Module Contents¶
- ooai_llm.providers.normalize_provider_name(provider: Provider | str | None) Provider | None[source]¶
Normalize a provider alias to its canonical enum value.
- Parameters:
provider – Provider enum, alias, or
None.- Returns:
Canonical provider enum or
Nonewhenprovideris absent.- Raises:
ValueError – If the provider value is unknown.
- ooai_llm.providers.get_litellm_provider_prefix(provider: Provider | str | None) str | None[source]¶
Return the canonical LiteLLM provider prefix for a provider.
- Parameters:
provider – Canonical provider or alias.
- Returns:
LiteLLM provider prefix or
Nonewhenprovideris absent.
- ooai_llm.providers.infer_provider_from_model_name(model_name: str) Provider | None[source]¶
Infer a provider from a raw model name.
- Parameters:
model_name – Raw or provider-prefixed model string.
- Returns:
Inferred provider enum, or
Nonewhen inference is not possible.
- ooai_llm.providers.split_model_string(model: str) tuple[Provider | None, str][source]¶
Split a model string into provider and model parts.
- Parameters:
model – Provider-prefixed or bare model string.
- Returns:
A tuple of
(provider, model_name)where provider may beNone.
Examples
>>> split_model_string("openai:gpt-5.4") (<Provider.OPENAI: 'openai'>, 'gpt-5.4') >>> split_model_string("anthropic/claude-sonnet-4") (<Provider.ANTHROPIC: 'anthropic'>, 'claude-sonnet-4')