Skip to main content

ML deployment framework - from local development to production with one command

Project description

Geronimo: The Declarative ML Framework For AI

Build, train, and deploy ML models with production-ready infrastructure and Generative AI MCP support from the start.

Geronimo is like dbt for AI:

Why Geronimo?

๐Ÿš€ Ship Models Faster

Stop writing boilerplate. One command creates a runnable project with FastAPI endpoints, MCP Support, monitoring, and CI/CD ready to go.

geronimo init --name iris-realtime --framework sklearn --template realtime

Initializing project: iris-realtime
  Template: realtime
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ โœ“ Project 'iris-realtime' created successfully!               โ”‚
โ”‚                                                               โ”‚
โ”‚ Template: realtime                                            โ”‚
โ”‚                                                               โ”‚
โ”‚ Next steps:                                                   โ”‚
โ”‚   1. cd iris-realtime                                         โ”‚
โ”‚   2. uv sync                                                  โ”‚
โ”‚   3. uvicorn iris_realtime.app:app --reload  # Run API server โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

๐Ÿงฉ Simpler Development

Define your model's what, not the how. The SDK has 4 componentsโ€”each maps to one file:

Component File Purpose
DataSource data_sources.py Where your data comes from
FeatureSet features.py How to transform raw data
Model model.py Training and prediction logic
MonitoringConfig monitoring_config.py Monitoring and drift detection settings

Then, depending on the template you choose, you'll also have:

Component File Purpose
Endpoint endpoint.py Request/response handling (realtime)
Pipeline pipeline.py Batch job orchestration (batch)

Common Components:

data_sources.py โ€” Declare your data
training_data = DataSource(name="training", source="snowflake", query=Query.from_file("train.sql"))
features.py โ€” Define transformations
class IrisFeatures(FeatureSet):
    sepal_length = Feature(dtype="numeric", transformer=StandardScaler())
    sepal_width = Feature(dtype="numeric", transformer=StandardScaler())
    petal_length = Feature(dtype="numeric", transformer=StandardScaler())
    petal_width = Feature(dtype="numeric", transformer=StandardScaler())
model.py โ€” Train and predict
class IrisModel(Model):
    name = "iris-realtime"
    features = IrisFeatures()
    
    def train(self, X, y, params): ...
    def predict(self, X): ...
monitoring_config.py โ€” Configure monitoring
class IrisMonitoringConfig(MonitoringConfig):
    drift_threshold = 0.1
    alert_email = "[EMAIL_ADDRESS]"

Deployment Specific:

pipeline.py โ€” Run batch jobs
class ScoringPipeline(BatchPipeline):
    schedule = Schedule.daily(hour=6)
    def run(self): ...
endpoint.py โ€” Handle realtime requests
class IrisRealtimeEndpoint(Endpoint):
    def preprocess(self, request): ...
    def postprocess(self, prediction): ...
๐Ÿค– GenAI Agent-Ready

Every project is automatically exposed as an MCP tool. AI agents like Claude can call your models directlyโ€”no extra work required.

{
  "mcpServers": {
    "iris-realtime": {
      "command": "uv",
      "args": ["run", "python", "-m", "iris-realtime.agent.server"]
    }
  }
}

"Analyze this transaction for fraud risk"
โ†’ Claude calls your model โ†’ Returns risk score


Getting Started

Installation Options

pip install geronimo                  # Core
pip install geronimo[mlflow]          # + MLflow
pip install geronimo[databases]       # + Snowflake, Postgres Connectors
pip install geronimo[all]             # Everything

1. Install and Configure

pip install geronimo

# First-time setup: configure artifact storage
geronimo config init

The setup wizard lets you choose where to store trained models:

  • local โ€” ~/.geronimo/artifacts (default)
  • s3 โ€” Your S3 bucket
  • cloud โ€” Geronimo Cloud (requires geronimo auth login)

2. Create a Project

geronimo init --name my-model --template realtime

Choose your template:

Template Use Case Output
realtime REST APIs, low-latency FastAPI + monitoring
batch Scheduled jobs, bulk scoring Metaflow + drift detection
both APIs + scheduled pipelines Everything

What You Get

A complete, runnable project structure (realtime shown):

my-model/
โ”œโ”€โ”€ src/my_model/
โ”‚   โ”œโ”€โ”€ sdk/                    # Define your model here
โ”‚   โ”‚   โ”œโ”€โ”€ model.py            # train() + predict()
โ”‚   โ”‚   โ”œโ”€โ”€ features.py         # Feature transformations
โ”‚   โ”‚   โ”œโ”€โ”€ endpoint.py         # Request/response handling
โ”‚   โ”‚   โ””โ”€โ”€ monitoring_config.py
โ”‚   โ”œโ”€โ”€ app.py                  # FastAPI (auto-generated)
โ”‚   โ””โ”€โ”€ train.py                # Training script
โ”œโ”€โ”€ geronimo.yaml               # Deployment config
โ””โ”€โ”€ models/                     # Saved artifacts

Focus on the sdk/ folder. Everything else is generated for you.

Integrations

Integration Purpose
MLflow Experiment tracking, artifact store
Snowflake/Postgres Connectors Data sources for training
CloudWatch Production metrics
Slack Alerts for drift/errors
MCP AI agent tool exposure

Deploy to Production

Deploy Directly through Pulumi

geronimo deploy up --project my-model --target aws

Deploy through CI/CD

geronimo generate all

This will generate:

  • Terraform โ€” ECS Fargate infrastructure
  • Dockerfile โ€” Optimized for ML serving
  • CI/CD โ€” Azure DevOps / GitHub Actions pipelines

Deploy to Geronimo Cloud (managed)

geronimo auth login
geronimo deploy up --project my-model --target gdc

Documentation


Apache 2.0 License โ€ข GitHub

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

geronimo-0.5.0.tar.gz (889.5 kB view details)

Uploaded Source

Built Distribution

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

geronimo-0.5.0-py3-none-any.whl (153.6 kB view details)

Uploaded Python 3

File details

Details for the file geronimo-0.5.0.tar.gz.

File metadata

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

File hashes

Hashes for geronimo-0.5.0.tar.gz
Algorithm Hash digest
SHA256 c2b29038dea106c1a0c95f7bf142d8480e541c6fee54e630c25fc756c85615e2
MD5 97025ddf3eec2e5a67af6cee1c2f9108
BLAKE2b-256 5aec7966c8aab89151e27abe35ddf0d48a6bd7cdca3db36283f38a39aec0d993

See more details on using hashes here.

Provenance

The following attestation bundles were made for geronimo-0.5.0.tar.gz:

Publisher: publish.yml on geronimo-deploy-cloud/geronimo

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

File details

Details for the file geronimo-0.5.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for geronimo-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 166e10bf14413335cde0b81b67de1152ed4b9e6a1a6cf97d12b55c1838588634
MD5 f4f0776d6e470ff4b4fd074e8de21783
BLAKE2b-256 68fac2b1cd87d60545ee5d75834011ed3de6f6748334e30d02585dfc7a29b708

See more details on using hashes here.

Provenance

The following attestation bundles were made for geronimo-0.5.0-py3-none-any.whl:

Publisher: publish.yml on geronimo-deploy-cloud/geronimo

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