Skip to main content

AIMLite

The Django for AI & Machine Learning — an opinionated, convention-over-configuration Python framework with zero-path CLI execution.


PyPI Installation

pip install aimlite

Or with uv:

uv add aimlite
from aimlite import Model, Dataset, BaseTrainer, BaseConfig, BaseEvaluator, BaseInference

Authors & Collaborators


Why AIMLite?

Traditional AI and machine learning projects suffer from repetitive boilerplate: scattered scripts, brittle path configurations, unstandardized train/test splits, hardcoded checkpoint paths, and ad-hoc serving code.

AIMLite provides a standardized, convention-based structure inspired by modern web frameworks like Django and Vite:

  • Zero-Path Execution: Run aimlite anywhere inside your project directory. AIMLite resolves modules, sets up paths, and locates your data and models automatically.
  • Automated Virtual Environment Management: Automatically detects and uses project .venv (powered by uv or pip).
  • First-Class IDE Typing Headers: Generates PEP 561 headers and .aimlite/workspace.json on project initialization, giving VS Code, Cursor, and PyCharm immediate auto-completion, parameter hints, and docstrings with zero global installs.
  • Per-Model Artifacts & Lifecycle: Supports multiple model classes per project with standardized naming (models/<model_name>.pkl and experiments/<model_name>_snapshot.json).
  • Built-in Inference Serving: Production-ready HTTP server with POST /predict, GET /health, GET /docs, custom user-defined endpoints, and optional static frontend hosting.

Quickstart

Requires Python >= 3.10 (tested on 3.14) and uv (or pip).

git clone https://github.com/Alazar42/aimlite.git
cd aimlite
uv sync

Essential Commands

uv run aimlite --help         # Run AIMLite CLI
uv run test                   # Run core test suite (41 tests)
uv run pytest                 # Full pytest runner

Project Structure Conventions

When you run aimlite init <project_name> (or aimlite init .), AIMLite scaffolds a standardized convention layout:

my_project/
├── .aimlite/
│   └── workspace.json        # IDE workspace configuration
├── .venv/                    # Project-isolated virtual environment
├── data/                     # Raw datasets (.csv, .json, .txt, .md)
├── models/                   # Model architectures and saved weights (*.pkl)
├── experiments/              # Training run logs and metric snapshots (*.json)
├── data.py                   # Dataset definitions extending Dataset
├── model.py                  # Model classes extending Model / RAGModel / AdapterModel
├── trainer.py                # Training lifecycle hooks extending BaseTrainer
├── evaluator.py              # Metric benchmarks extending BaseEvaluator
├── inference.py              # Inference pipeline extending BaseInference
└── aimlite.json              # Project config, dependencies manifest, and paradigms

The 3 AI Paradigms

AIMLite is architected around the 3 primary modern machine learning paradigms:

Paradigm 1: Training from Scratch (Customer Churn Classifier)

Bespoke tabular architectures, full optimization loops, and custom weights.

  • Dataset: Kaggle Telecom Churn Dataset (Kaggle Source)
  • Required Dependencies:
    aimlite install scikit-learn pandas
    # or
    pip install scikit-learn pandas
    
  • Example Files: docs/examples/churn_scratch/
    • data.py: TelecomChurnDataset(Dataset) ingesting data/telecom_churn.csv with automatic 80/10/10 train/val/test splits.
    • model.py: ChurnClassifier(Model) wrapping scikit-learn's RandomForestClassifier.
    • trainer.py: ChurnTrainer(BaseTrainer) fitting and saving weights to models/churn_classifier.pkl.
    • evaluator.py: ChurnEvaluator(BaseEvaluator) calculating accuracy, precision, recall, and F1 score.
    • inference.py: ChurnInference(BaseInference) scoring churn risk probability and returning retention decisions.
  • Workflow:
    # Initialize (new directory or in-place with .)
    aimlite init churn_model && cd churn_model
    # Place telecom_churn.csv in data/
    aimlite data validate
    aimlite train ChurnClassifier
    aimlite evaluate ChurnClassifier
    aimlite serve ChurnClassifier --port 8000
    

Paradigm 2: RAG (Knowledge Base Question Answering)

Ground foundation models in enterprise documents with semantic vector search and zero hallucination.

  • Data Formats: Markdown (.md) or text (.txt) documents placed in data/.
  • Required Dependencies:
    aimlite install sentence-transformers numpy
    # or
    pip install sentence-transformers numpy
    
  • Example Files: docs/examples/knowledge_rag/
    • data.py: KnowledgeDocsDataset(Dataset) chunking documents with TextSplitter.
    • model.py: SupportDocRAG(RAGModel) binding MemoryVectorStore and VectorRetriever.
    • trainer.py: IndexBuilderTrainer(BaseTrainer) building and persisting the vector index to models/rag_index.json.
    • inference.py: RAGInference(BaseInference) querying the retriever and synthesizing grounded answers with citations.
  • Workflow:
    aimlite init support_rag && cd support_rag
    # Place knowledge documents in data/
    aimlite train SupportDocRAG
    aimlite serve SupportDocRAG --port 8000
    

Paradigm 3: Fine-Tuning (LoRA & PEFT Adapters)

Parameter-efficient adaptation with lightweight delta checkpoints (~50KB to 50MB instead of 14GB+).

  • Data Formats: Prompt-response instruction pairs in data/instructions.json or data/instructions.jsonl.
  • Required Dependencies:
    aimlite install torch peft
    # or
    pip install torch peft
    
  • Example Files: docs/examples/instruction_adapter/
    • data.py: InstructionDataset(Dataset) formatting instruction prompt templates.
    • model.py: LoRAInstructionModel(AdapterModel) configuring AdapterConfig(r=8, alpha=16.0) and freezing foundation weights.
    • trainer.py: AdapterInstructionTrainer(BaseTrainer) optimizing low-rank delta matrices.
    • inference.py: AdapterInference(BaseInference) executing fine-tuned generations via POST /predict.
  • Workflow:
    aimlite init lora_app && cd lora_app
    # Place instructions.json in data/
    aimlite train LoRAInstructionModel
    aimlite serve LoRAInstructionModel --port 8000
    

Zero-Path CLI Reference

AIMLite provides zero-path convention-over-configuration commands:

Command Description
aimlite init [project_name | .] Scaffolds a project in a new folder or directly in the current directory (.), setting up .venv, .aimlite/workspace.json IDE headers, starter files, and conventions.
aimlite install [packages...] Without arguments, installs all dependencies listed in aimlite.json. With packages, installs them into .venv using uv (or pip) and adds them to aimlite.json.
aimlite data validate Validates dataset schema, record count, column names, and partition readiness across all datasets in data/.
aimlite train [ModelName] Automatically discovers registered models and executes training. Saves checkpoint to models/<model_name>.pkl and snapshots to experiments/.
aimlite evaluate [ModelName] Loads the model's checkpoint and calculates benchmark metrics on test partitions.
aimlite serve [ModelName] [--port 8000] [--frontend <dir>] Starts an HTTP inference server exposing POST /predict, GET /health, GET /docs, custom routes, and optional static frontend hosting.
aimlite doctor Diagnoses runtime health, virtual environment, hardware accelerator availability (cuda, mps, cpu), and directory permissions.

Standalone Executable & Build System (build/)

The standalone binary is packaged using Python's native zipapp format into a single self-contained executable with zero runtime dependencies:

# Compile / rebuild the standalone binary:
python3 build/build_cli.py

# Run directly without python invocation:
./build/aimlite doctor

Interactive API Documentation Portal (api_docs/)

The full documentation portal is built with React, Vite, and modern styling, featuring interactive paradigm step-by-step guides, code explanation walkthroughs, copy-to-clipboard code blocks, and an API test playground:

cd api_docs
npm install
npm run dev     # Launch local docs dev server at http://localhost:5173
npm run build   # Build production bundle into api_docs/dist/

Testing

AIMLite includes a comprehensive 41-test suite validating CLI commands, header generation, data validation, model lifecycle, inference serving, and end-to-end paradigm workflows:

uv run test        # Core test runner
uv run pytest      # Full pytest runner (41/41 passing)

Metadata

Release files for aimlite 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aimlite 0.1.0
File Size Uploaded Provenance
aimlite-0.1.0.tar.gz 552.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for aimlite 0.1.0
File Interpreter ABI Platform
aimlite-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 612.7 kB

Release files / aimlite-0.1.0.tar.gz

Download URL aimlite-0.1.0.tar.gz
Size 552.4 kB
Tags Source
SHA-256 checksum
How to use checksums
2b5985c14b4f44903e7862ab8f4fb24ae6c14717605f3c1f92a10122618b1ac3
BLAKE2b-256 checksum
How to use checksums
c247ca5d50d35c7606e001d315f2589b2a978bc245e9cf1f7d21a21d6449e839
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / aimlite-0.1.0-py3-none-any.whl

Download URL aimlite-0.1.0-py3-none-any.whl
Size 60.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
224205f997e68c5d059615f109abe8b8aac2b4379fc5375a2cd073c3cbfbe866
BLAKE2b-256 checksum
How to use checksums
5c30c1e1b0d1061a608440d1e02f3c4814419d9ca29a0ec1c24832af762b978b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for aimlite 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page