Skip to main content

AI Bill of Materials Standard — open standard SDK for AI component transparency

Project description

aibomstd

The open standard for AI Bill of Materials.

Scan any repo and instantly know what AI components are running, which send data outside your boundary, and what your compliance risk is.

CI PyPI License Python


Install

pip install aibomstd

CLI — scan a repo in seconds

aibomstd scan ./my-repo
┌─────────────────────┬────────────┬──────────────┬──────────┬────────┐
│ Component           │ Type       │ Provider     │ Boundary │ Risk   │
├─────────────────────┼────────────┼──────────────┼──────────┼────────┤
│ openai              │ api-client │ openai       │ leaves   │ high   │
│ anthropic           │ api-client │ anthropic    │ leaves   │ high   │
│ langchain           │ framework  │ langchain-ai │ internal │ none   │
│ torch               │ framework  │ pytorch      │ internal │ none   │
│ llama-3-8b.gguf     │ model      │ unknown      │ internal │ medium │
│ training.jsonl      │ dataset    │ unknown      │ internal │ medium │
└─────────────────────┴────────────┴──────────────┴──────────┴────────┘

Summary:
  Total components : 6
  Data egress      : YES
  Shadow AI        : YES
  Risk score       : HIGH

Generated: my-repo.aibom.json

What it detects

Component type Examples
api-client openai, anthropic, cohere, mistral, groq
framework langchain, llama-index, transformers, ollama
model .gguf, .safetensors, .pt, .onnx files
dataset .jsonl, .parquet, .arrow files in data/ folders
Shadow AI API keys in .env not declared in dependencies

Auto-detects data-leaves-boundary and data-residency for every component.


Other CLI commands

# Validate a BOM file against the schema
aibomstd validate my-repo.aibom.json

# Convert from cisco-aibom format
aibomstd convert cisco-output.json

# Check version
aibomstd version

SDK — generate BOMs in Python

from aibomstd import AiBomBuilder
from aibomstd.components import ModelComponent, ApiClientComponent

bom = (
    AiBomBuilder(product="my-ai-product", version="1.0.0")
    .add_component(ModelComponent(
        name="llama-3-8b-instruct",
        version="3.0",
        provider="meta",
        data_leaves_boundary=False,
        data_residency="IN"
    ))
    .add_component(ApiClientComponent(
        name="gpt-4o",
        version="2024-05-13",
        provider="openai",
        data_leaves_boundary=True,
        data_residency="US"
    ))
)

print(bom.to_json())       # aibomstd JSON
bom.to_html()              # self-contained HTML report
bom.to_cyclonedx()         # CycloneDX v1.7 JSON

Output formats

bom.to_json()        # aibomstd JSON (default)
bom.to_html()        # self-contained HTML report
bom.to_cyclonedx()   # CycloneDX v1.7 JSON

Convert from cisco-aibom

from aibomstd.converters.cisco import CiscoConverter
import json

cisco_output = json.load(open("cisco-scan-result.json"))
converter = CiscoConverter()
aibomstd_json = converter.convert(cisco_output)
print(json.dumps(aibomstd_json, indent=2))

Schema

Every output document references the canonical schema:

https://aibomstd.com/schema/v0.1/aibomstd.schema.json

Validate any BOM:

npx ajv validate \
  -s https://aibomstd.com/schema/v0.1/aibomstd.schema.json \
  -d my-repo.aibom.json \
  --spec=draft2020

License

Apache 2.0 — https://aibomstd.com

Project details


Download files

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

Source Distribution

aibomstd-0.2.4.tar.gz (19.0 kB view details)

Uploaded Source

Built Distribution

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

aibomstd-0.2.4-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file aibomstd-0.2.4.tar.gz.

File metadata

  • Download URL: aibomstd-0.2.4.tar.gz
  • Upload date:
  • Size: 19.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for aibomstd-0.2.4.tar.gz
Algorithm Hash digest
SHA256 9a1ee664ceef3aa39a0daf382956b9c2a59c53adc8f741d41ac8daba600dac26
MD5 7bad854391d95b8e716db207bae00e6c
BLAKE2b-256 6a0ea2d6dd532f50252ed842b690bfa97fab37bd390b43991e4a6a2416e26103

See more details on using hashes here.

Provenance

The following attestation bundles were made for aibomstd-0.2.4.tar.gz:

Publisher: publish-pypi.yml on aibomstd/aibomstd

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

File details

Details for the file aibomstd-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: aibomstd-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 20.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for aibomstd-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ab2a3204149dfc6dce45d45a474167a3a6c326d44a9ab2eadc383d1c56a4477c
MD5 951c7af61cf39151bea93220142dc5c9
BLAKE2b-256 b92d462e5c3f27902c2392a3f3411640b9c9bf39e1e97fc2e6f9a7d596633563

See more details on using hashes here.

Provenance

The following attestation bundles were made for aibomstd-0.2.4-py3-none-any.whl:

Publisher: publish-pypi.yml on aibomstd/aibomstd

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