Skip to main content

Python SDK for Jammi AI Platform — the commercial managed audit-native AI platform

Project description

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-client)

connect, RemoteDatabase, and BearerCredentials are re-exported from jammi-client: the embed / search / sql data plane comes from there, the control plane lives here, and both ride jammi-client'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, calls WhoAmI at connect
  • connect / RemoteDatabase — re-exported jammi-client data plane (embed / search / sql)
  • Registry — model + version + evidence catalog
  • Gate — quality-gate checks
  • Monitor — embedding / inference / divergence monitors + run streaming
  • Experiment — Bayesian / Grid / Random experiments
  • DeploymentBlocks — block / unblock sources from production traffic
  • Resilience — perturbation-based validation runs
  • Auth — issue / revoke / list API keys; WhoAmI
  • Tenants — 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:

  • EnterpriseException
    • NotFoundError
    • AlreadyExistsError
    • TransitionNotAllowedError
    • TenantUnboundError
    • ConfigError
    • PermissionDeniedError

Docs

Full docs at https://docs.jammi.cloud.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

jammi_ai_platform-0.7.0-py3-none-any.whl (110.4 kB view details)

Uploaded Python 3

File details

Details for the file jammi_ai_platform-0.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for jammi_ai_platform-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9c0a759198367f815c63ce0510862feef1469d3f5418c8ae17a511da1c15c354
MD5 2902946ca76eb41ef7e40e4ad6fac10f
BLAKE2b-256 179ec7caf801d7ea5076d4c8ca666dbbdef82ebca928ceed679e2418dc25abd5

See more details on using hashes here.

Provenance

The following attestation bundles were made for jammi_ai_platform-0.7.0-py3-none-any.whl:

Publisher: sdk-pypi.yml on f-inverse/jammi-enterprise

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page