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
- Mickyas Tesfaye (alazartesfaye42@gmail.com)
- Beamlak Tadesse (atocodes@gmail.com)
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
aimliteanywhere 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 byuvorpip). - First-Class IDE Typing Headers: Generates PEP 561 headers and
.aimlite/workspace.jsonon 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>.pklandexperiments/<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)ingestingdata/telecom_churn.csvwith automatic 80/10/10 train/val/test splits.model.py:ChurnClassifier(Model)wrapping scikit-learn'sRandomForestClassifier.trainer.py:ChurnTrainer(BaseTrainer)fitting and saving weights tomodels/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 indata/. - 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 withTextSplitter.model.py:SupportDocRAG(RAGModel)bindingMemoryVectorStoreandVectorRetriever.trainer.py:IndexBuilderTrainer(BaseTrainer)building and persisting the vector index tomodels/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.jsonordata/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)configuringAdapterConfig(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 viaPOST /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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| aimlite-0.1.0.tar.gz | 552.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.