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.4.0.tar.gz (869.4 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.4.0-py3-none-any.whl (140.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: geronimo-0.4.0.tar.gz
  • Upload date:
  • Size: 869.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for geronimo-0.4.0.tar.gz
Algorithm Hash digest
SHA256 fb137b37b6bce275c4cf68aff2191f2bab1e575d6cf5a568bb6c518832691f8b
MD5 c5a7b12c5852102234ece5c517d090ba
BLAKE2b-256 46996a2275ec0c019b26dfe5840717244cec51b25271642996862aac1afd8108

See more details on using hashes here.

Provenance

The following attestation bundles were made for geronimo-0.4.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.4.0-py3-none-any.whl.

File metadata

  • Download URL: geronimo-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 140.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for geronimo-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 da37307e05680ac649a6d07b38d02ea28b5f14d1c7a5a373cc37c18457352e4f
MD5 e498d9c3c6cbb41433effeaeaa90d260
BLAKE2b-256 8b59a9055baa354ba90bec08d9eca0743dc1f5c7792c2b4e65e88c5125448f8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for geronimo-0.4.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