# pllm.providers Python API

Public objects, practical usage, and research context for pllm.providers.

[View canonical HTML](https://pllm.run/sdk/reference/python/pllm/providers/)

Document ID: `pllm.docs.reference.python.pllm.providers`  
Release: `0.1.0`

Provider discovery reads package-confined static manifests without importing provider code; factory loading is a separate approved operation. Presence documents API availability, not complete model, security, or deployment coverage; check [implementation status](/sdk/reference/status/) before relying on a path.

## Research context

This API is project infrastructure rather than an implementation of one specific paper. Relevant method pages link their primary sources separately.

## Python SDK example

The example performs a bounded offline task and checks an observable result. It does not download a checkpoint or contact a provider.

```python
import pllm.providers as providers

# An explicit empty entry-point set disables external package discovery.
assert providers.discover_providers(entry_points=()) == ()
```

API: [`pllm.providers`](/sdk/reference/python/pllm/providers/#objects-and-signatures)

## Objects and signatures

### `HOST_COMPONENT_STANDARD_VERSION`

Provides the public version value used where provider discovery reads package-confined static manifests without importing provider code; factory loading is a separate approved operation.

- Canonical object: `pllm.providers.HOST_COMPONENT_STANDARD_VERSION`
- Kind: `str`
- Signature/type: `str`
- Public exports: `pllm.providers.HOST_COMPONENT_STANDARD_VERSION`

### `HOST_NATIVE_PLUGIN_ABI_VERSION`

Provides the public version value used where provider discovery reads package-confined static manifests without importing provider code; factory loading is a separate approved operation.

- Canonical object: `pllm.providers.HOST_NATIVE_PLUGIN_ABI_VERSION`
- Kind: `str`
- Signature/type: `str`
- Public exports: `pllm.providers.HOST_NATIVE_PLUGIN_ABI_VERSION`

### `PROVIDER_ENTRY_POINT_GROUP`

Provides the public group value used where provider discovery reads package-confined static manifests without importing provider code; factory loading is a separate approved operation.

- Canonical object: `pllm.providers.PROVIDER_ENTRY_POINT_GROUP`
- Kind: `str`
- Signature/type: `str`
- Public exports: `pllm.providers.PROVIDER_ENTRY_POINT_GROUP`

### `PROVIDER_MANIFEST_SCHEMA`

Provides the public schema value used where provider discovery reads package-confined static manifests without importing provider code; factory loading is a separate approved operation.

- Canonical object: `pllm.providers.PROVIDER_MANIFEST_SCHEMA`
- Kind: `str`
- Signature/type: `str`
- Public exports: `pllm.providers.PROVIDER_MANIFEST_SCHEMA`

### `ProviderDescriptor`

Immutable `ProviderDescriptor` record carrying `provider`, `distribution`, `version`, `host_versions`, `category_versions`, `components`, `schemas`, `docs`, `native_artifacts`, `python_factories`, `tested_builds`, `entry_point`, `manifest_digest`, `editable`, `component_classes` for the workflow where provider discovery reads package-confined static manifests without importing provider code; factory loading is a separate approved operation.

- Canonical object: `pllm.providers.ProviderDescriptor`
- Kind: `class`
- Signature/type: `constructor not exposed`
- Public exports: `pllm.ProviderDescriptor`, `pllm.providers.ProviderDescriptor`
- Public members: `provider: str`; `distribution: str`; `version: str`; `host_versions: tuple[str, ...]`; `category_versions: Mapping[str, tuple[str, ...]]`; `components: tuple[ComponentDescriptor, ...]`; `schemas: tuple[ProviderResource, ...]`; `docs: tuple[ProviderResource, ...]`; `native_artifacts: tuple[ProviderResource, ...]`; `python_factories: Mapping[str, str]`; `tested_builds: tuple[Mapping[str, Any], ...]`; `entry_point: str`; `manifest_digest: str`; `editable: bool`; `component_classes: tuple[type[ComponentRef], ...]`; `to_dict(self) -> dict[str, Any]`

### `ProviderDiscoveryError`

Raised when a ProviderDiscovery condition prevents the requested operation from completing.

- Canonical object: `pllm.providers.ProviderDiscoveryError`
- Kind: `class`
- Signature/type: `constructor not exposed`
- Public exports: `pllm.ProviderDiscoveryError`, `pllm.providers.ProviderDiscoveryError`

### `ProviderResource`

Immutable `ProviderResource` record carrying `path`, `sha256`, `abi_version`, `targets` for the workflow where provider discovery reads package-confined static manifests without importing provider code; factory loading is a separate approved operation.

- Canonical object: `pllm.providers.ProviderResource`
- Kind: `class`
- Signature/type: `__init__(self, path: str, sha256: str, abi_version: str \| None=None, targets: tuple[str, ...]=()) -> None`
- Public exports: `pllm.ProviderResource`, `pllm.providers.ProviderResource`
- Public members: `path: str`; `sha256: str`; `abi_version: str \| None`; `targets: tuple[str, ...]`; `__init__(self, path: str, sha256: str, abi_version: str \| None=None, targets: tuple[str, ...]=()) -> None`; `to_dict(self) -> dict[str, Any]`

### `discover_providers`

Discovers static provider manifests without importing provider implementation code.

- Canonical object: `pllm.providers.discover_providers`
- Kind: `function`
- Signature/type: `discover_providers(*, entry_points: Iterable[Any] \| None=None, allow_editable: bool=False, host_version: str=HOST_COMPONENT_STANDARD_VERSION) -> tuple[ProviderDescriptor, ...]`
- Public exports: `pllm.discover_providers`, `pllm.providers.discover_providers`

### `load_component_factory`

Performs the load component factory operation for the workflow where provider discovery reads package-confined static manifests without importing provider code; factory loading is a separate approved operation.

- Canonical object: `pllm.providers.load_component_factory`
- Kind: `function`
- Signature/type: `load_component_factory(provider: ProviderDescriptor, component: str, *, approved_providers: Collection[str]) -> Any`
- Public exports: `pllm.load_component_factory`, `pllm.providers.load_component_factory`

### `provider_component_classes`

Performs the provider component classes operation for the workflow where provider discovery reads package-confined static manifests without importing provider code; factory loading is a separate approved operation.

- Canonical object: `pllm.providers.provider_component_classes`
- Kind: `function`
- Signature/type: `provider_component_classes(providers: Iterable[ProviderDescriptor]) -> tuple[type[ComponentRef], ...]`
- Public exports: `pllm.providers.provider_component_classes`
