jammi-ai-platform
Python SDK for the Jammi AI Platform — the commercial managed audit-native AI platform. Talks to a Jammi SaaS endpoint via gRPC with bearer-token authentication.
Install
pip install jammi-ai-platform
Wheel-only distribution. Python 3.9+ on Linux / macOS / Windows.
Quickstart
import jammi_ai_platform as jap
with jap.Connection(url="https://api.jammi.cloud", api_key="jt_…") as conn:
print(conn.tenant_id) # resolved via WhoAmI at connect time
print(conn.token_label) # label of the bearer in use
registry = jap.Registry(conn)
model_id = registry.register_model("recall-q4", task="embedding")
version_id = registry.register_version(
model_id,
jammi_model_id="bge-small-en-v1.5",
source=jap.ManualSource(metric_name="recall_at_k", metric_value=0.92),
)
jap.Gate(conn).check(
version_id,
jap.GateConfig(
gate_name="ship-gate",
source_id="patents",
golden_set="golden-1",
k=10,
rule=jap.ThresholdRule(
metric_name=jap.MetricName.RECALL_AT_K,
threshold=0.85,
op=jap.ThresholdOp.GE,
),
),
)
Use http://… / grpc://… instead of https://… / grpcs://… for local
insecure development.
Configuration is typed
Every control-plane config is a typed builder, not an untyped dict: enums for
the *_type/direction/op fields (so an invalid value is a construction
error), and tagged-union variants dispatched by type — MaxIterationsBudget /
WallClockBudget / NoImprovementBudget for an ExperimentConfig budget,
EmbeddingTarget / InferenceTarget for a MonitorConfig target,
ThresholdRule / RangeRule / WelchTTestRule / MannWhitneyURule /
ParetoDominatesRule / CompoundRule for a gate Rule, and
ExperimentIterationSource / ManualSource for a registry version source. The
open JSON/Struct payloads — an experiment's search_space, a validation's
perturbation_params, an evidence config_json — stay plain dicts.
Data plane (composed from jammi-ai)
connect, RemoteDatabase, and BearerCredentials are re-exported from
jammi (the jammi-ai client): the embed / search / sql data plane comes from
there, the control plane lives here, and both ride jammi's bearer transport.
The data plane and the control plane open separate sessions. A
jap.Connection is bearer-scoped — it resolves a tenant via WhoAmI and vends
the control-plane handles. jap.connect(target, credentials=...) opens its own
RemoteDatabase session (jammi-session-id scoped) for the data plane. They are
two independent connections, not one shared channel; open each explicitly.
Surface
Connection— control-plane gRPC channel + bearer auth, callsWhoAmIat connectconnect/RemoteDatabase— re-exported jammi data plane (embed / search / sql)Registry— model + version + evidence catalogGate— quality-gate checksMonitor— embedding / inference / divergence monitors + run streamingExperiment— Bayesian / Grid / Random experimentsDeploymentBlocks— block / unblock sources from production trafficResilience— perturbation-based validation runsAuth— issue / revoke / list API keys;WhoAmITenants— read-only tenant directory lookup
Errors
status_to_exception (in jammi_ai_platform.errors) maps every
gRPC status code to a typed Python exception. The hierarchy:
PlatformExceptionNotFoundErrorAlreadyExistsErrorTransitionNotAllowedErrorTenantUnboundErrorConfigErrorPermissionDeniedError
Docs
Full docs at https://docs.jammi.cloud.
Metadata
Release files for jammi-ai-platform 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jammi_ai_platform-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Release files / jammi_ai_platform-0.8.0-py3-none-any.whl
| Download URL | jammi_ai_platform-0.8.0-py3-none-any.whl |
|---|---|
| Size | 110.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9ecbe04a802442abdc8130de1025b01e711ae2b689b84c17d64154848383c243
|
|
BLAKE2b-256 checksum How to use checksums |
25d73a8d5068d58b68fabbc2ff2540a2ad7409125063363af81f5956386e6807
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 11, 2026.
Transparency log