Skip to main content

zeromodel-observation

zeromodel-observation defines provider-neutral observation contracts for ZeroModel. It is the boundary between raw observations and deterministic policy addressing, exposed through zeromodel.observation.

The package depends on the validated core distribution, zeromodel==1.0.13, and uses NumPy for immutable image-array contracts. It does not implement perception, visual recognition, video policy behavior, model inference, or persistence.

Install

python -m pip install zeromodel==1.0.13 zeromodel-observation==1.0.13

Provider-Neutral Contracts

ImageObservation stores an owned, read-only uint8 image array plus source, timestamp, and metadata. It accepts HxW, HxWx3, and HxWx4 arrays and derives a deterministic raw digest from the canonical shape and bytes.

VisualAddressContract describes what a provider promises before inference: provider identity, score polarity, replay semantics, representation identity, calibration identity, policy identity, and source scope.

VisualAddressDecision records an accepted address or evidence-bearing rejection. It links the observation, representation, provider, address artifact, calibration artifact, and policy artifact without depending on any concrete vision implementation.

VisualAddressManifest and PrototypeBinding bind representation rows to policy row IDs and link those rows to a content-addressed matrix blob. The manifest is an address contract artifact, not a visual reader.

DeploymentBinding records an approved pairing of policy, address artifact, calibration, source scope, and optional encoder identity. It is not a cryptographic signature or authorization system.

Minimal Provider

import numpy as np

from zeromodel.observation import (
    ImageObservation,
    VisualAddressContract,
    VisualAddressDecision,
    VisualAddressProvider,
)


class TableProvider:
    def contract(self) -> VisualAddressContract:
        return VisualAddressContract(
            provider_kind="table-provider",
            provider_version="v1",
            score_semantics="distance",
            observation_spec_digest="obs-spec",
            representation_spec_digest="rep-spec",
            address_artifact_id="address-1",
            calibration_artifact_id="calibration-1",
            policy_artifact_id="policy-1",
            source_scope="fixture:camera",
            replay_contract="exact_decision",
        )

    def read(self, observation: ImageObservation) -> VisualAddressDecision:
        return VisualAddressDecision(
            accepted=True,
            reason="accepted",
            observation_digest=observation.raw_digest,
            representation_digest="sha256:representation",
            provider_kind="table-provider",
            provider_version="v1",
            score_semantics="distance",
            address_artifact_id="address-1",
            calibration_artifact_id="calibration-1",
            policy_artifact_id="policy-1",
            nearest_row_id="policy-row-1",
            nearest_score=0.0,
            second_row_id=None,
            second_score=None,
            ambiguity_measure=None,
            matched_row_id="policy-row-1",
            exact_match=True,
            accepted_by=("fixture",),
        )


provider: VisualAddressProvider = TableProvider()
decision = provider.read(ImageObservation(np.zeros((2, 2), dtype=np.uint8)))

Exclusions

Concrete deterministic visual addressing belongs to zeromodel-vision. Temporal policy and video-domain behavior belong to zeromodel-video. Durable SQL persistence belongs to zeromodel-sqlalchemy.

This package does not import or require zeromodel-analysis, zeromodel-vision, zeromodel-video, SQLAlchemy, Torch, TorchVision, Transformers, or Pillow.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zeromodel_observation-1.1.0.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zeromodel_observation-1.1.0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file zeromodel_observation-1.1.0.tar.gz.

File metadata

  • Download URL: zeromodel_observation-1.1.0.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.4

File hashes

Hashes for zeromodel_observation-1.1.0.tar.gz
Algorithm Hash digest
SHA256 7a5eff2fd697e54c188abddc28c920a470f0a38367844c55b39913277de2b3be
MD5 56b31b831e61cd1303f0ccceee944b04
BLAKE2b-256 37d1ceee812d497aeb8ea0ed9ac23e0b233419f45b6b54d133bc572642e5f5f0

See more details on using hashes here.

File details

Details for the file zeromodel_observation-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for zeromodel_observation-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5565873ca30fa9819614ef40cca04ce4baae499be9e66191cf56f5ef6e5fae50
MD5 0329733a9077c0b7e3459173f36a0106
BLAKE2b-256 9c8f2b9568d2ee627317dade6fb8c6e99934974006dfc24e78814cc636bde236

See more details on using hashes here.

Release history Release notifications | RSS feed

1.2.0

1 file

This release

1.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page