Skip to main content

Octomil — serve, deploy, and observe ML models on edge devices

Project description

Octomil
On-device AI inference. Deploy, route, observe.

CI PyPI MIT


Install

pip install octomil-sdk

Quick Start

Serve a model locally with an OpenAI-compatible API:

octomil serve gemma-1b
curl http://localhost:8080/v1/chat/completions \
  -d '{"model": "gemma-1b", "messages": [{"role": "user", "content": "Hello"}]}'

SDK Usage

from octomil import Octomil

client = Octomil(api_key="oct_...", org_id="org_123")

# Register a model
model = client.registry.ensure_model(name="sentiment", framework="pytorch")

# Gradual rollout
client.rollouts.create(model_id=model["id"], version="1.0.0", rollout_percentage=10)

# A/B test
client.experiments.create(name="v1-vs-v2", model_id=model["id"],
                          control_version="1.0.0", treatment_version="1.1.0")

CLI

Command
octomil serve <model> Local inference server (OpenAI-compatible)
octomil pull <model> Download a model
octomil push <file> Upload a model
octomil deploy <model> Deploy to devices
octomil convert <file> Convert to CoreML / TFLite
octomil check <file> Validate a model
octomil scan <path> Security scan
octomil benchmark <model> Latency benchmarks
octomil login Authenticate

Federated Learning (Enterprise)

Train across devices without centralizing data:

from octomil import DeviceAuthClient, FederatedClient

auth = DeviceAuthClient(base_url="https://api.octomil.com", org_id="org_123",
                        device_identifier="runtime-001")
await auth.bootstrap(bootstrap_bearer_token=token)

client = FederatedClient(auth_token_provider=lambda: auth.get_access_token_sync(),
                         org_id="org_123")
client.register()

assignment = client.get_round_assignment()
if assignment:
    client.participate_in_round(round_id=assignment["round_id"],
                                local_train_fn=my_train_fn)

Documentation

docs.octomil.com/sdks/python

Contributing

See CONTRIBUTING.md.

License

MIT

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

octomil_sdk-2.3.0.tar.gz (408.4 kB view details)

Uploaded Source

Built Distribution

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

octomil_sdk-2.3.0-py3-none-any.whl (261.4 kB view details)

Uploaded Python 3

File details

Details for the file octomil_sdk-2.3.0.tar.gz.

File metadata

  • Download URL: octomil_sdk-2.3.0.tar.gz
  • Upload date:
  • Size: 408.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for octomil_sdk-2.3.0.tar.gz
Algorithm Hash digest
SHA256 0af12c0ed21fa42a52b1c9ada54ca8681628f07756691c36b836edae5c6969da
MD5 2e7779fed847755fac9b8c12166be2a0
BLAKE2b-256 7065fa4ccbc667882ee3e0e0827065a3b260cfc5904e965c6fd6bdc1df76bde0

See more details on using hashes here.

File details

Details for the file octomil_sdk-2.3.0-py3-none-any.whl.

File metadata

  • Download URL: octomil_sdk-2.3.0-py3-none-any.whl
  • Upload date:
  • Size: 261.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for octomil_sdk-2.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b0b3e4e7d7054f2b61911e740970925a916a1c8987f67f302c4be04a5ce3791d
MD5 70a83b39640ad140ae65161ac9653fb2
BLAKE2b-256 b5f4e9f49535337d98e00dce80b7d9e12807003716b08c90219695d0b2aafb9e

See more details on using hashes here.

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