Configuring the Inference Pipeline
Pipeline order: observation → preprocessors → runner → postprocessors → action output. See docs/how-to/inference/configure-pre-post-processing.md.
Core code:
src/physicalai/inference/component_factory.py—ComponentRegistry,instantiate_component,_MAX_COMPONENT_DEPTH.src/physicalai/inference/model.py— builds processor chains from manifest specs.- Built-ins under
preprocessors/andpostprocessors/; runners underrunners/.
Workflow
Read the manifest slice for
preprocessors,postprocessors, andmodel.runner.- Done when: you know whether specs use
type(registry short name) orclass_path.
- Done when: you know whether specs use
Prefer
typefor built-ins registered incomponent_factory(e.g. normalize/denormalize patterns in docs).Use
class_path+init_argsfor explicit classes:preprocessors: - class_path: physicalai.inference.preprocessors.StatsNormalizer init_args: artifact: stats.safetensors- Done when:
init_argspaths resolve relative to the export directory viaresolve_artifact.
- Done when:
Add a new built-in processor:
- Implement subclass of
Preprocessor/Postprocessorin the appropriate package. - Register a short
typename incomponent_factoryif manifest-friendly aliases are needed. - Add unit tests under
tests/unit/inference/preprocessors/orpostprocessors/. - Done when: manifest using
typeorclass_pathinstantiates in a minimalInferenceModeltest.
- Implement subclass of
Nested components in
init_argsmust stay within_MAX_COMPONENT_DEPTH; avoid cyclic specs.
Validation loop
uv run pytest tests/unit/inference/preprocessors tests/unit/inference/postprocessors tests/unit/inference/test_manifest.py -q
Required checks
- Processor order matches training/export semantics (normalization before runner, denormalization after).
- Artifact file names in manifests do not traverse paths (
.., absolute paths). - New public processors appear in
docs/reference/inference-api.mdor how-to docs when user-visible. - Runner choice (
SinglePass, chunking runners) stays consistent withpredict_action_chunkvsselect_actiondocs.
References
docs/reference/manifest-schema.mddocs/how-to/inference/use-manifest.md