Local-first, customizable classifier template for production-minded Python projects
Project description
AI Classifier Template
Production-minded, local-first Python template for building customizable classification projects.
This repository is designed for developers who want a clean baseline that feels like an internal engineering starter kit: stable abstractions, reproducible training pipeline, clear documentation, quality gates, and straightforward extension points.
Why this template exists
Most classifier repos either overfit to one model stack or under-document architecture decisions. This template balances both sides:
- Local-first execution with no hosted dependency requirements.
- Strong extension points for project-specific classifiers.
- Professional documentation structure suited for public OSS and team handoffs.
- Reproducible artifacts and CLI workflows for daily development.
- Optional deep-learning path without forcing heavyweight dependencies in core installs.
Core Features
- Extensible classifier interface via base contracts.
- Built-in template classifier (
TemplateCentroidClassifier) for fast customization. - Optional sklearn adapter (
model.kind: sklearn) for common production baselines. - YAML-driven pipeline config for train/evaluate reproducibility.
- CLI commands for local train/predict/evaluate.
- Starter dataset and pre-trained artifact for immediate demos.
- CI-ready test/lint/type-check setup.
Repository Layout
.
|-- src/ai_classifier/ # Package source
|-- tests/ # Unit and integration tests
|-- examples/ # Configs, sample data, starter scripts
|-- docs/ # Architecture, API, troubleshooting, examples docs
|-- .github/workflows/ # CI and release pipelines
|-- README.md # Public overview and quick start
|-- LEARN.md # Deep technical handbook
|-- LICENSE.md # Human-readable license notes
|-- LICENSE # Canonical MIT license text
Quick Start
1. Install locally
python -m venv .venv
. .venv/Scripts/activate
pip install -e .[dev]
Optional extras:
pip install -e .[ml]
2. Train using starter config
ai-classifier train --config examples/configs/template_config.yaml
This generates:
artifacts/model.jsonartifacts/report.json
3. Predict locally
ai-classifier predict --model artifacts/model.json --input examples/data/predict.csv --output artifacts/predictions.csv
4. Evaluate on labeled data
ai-classifier evaluate --model artifacts/model.json --input examples/data/train.csv --label-column label --output artifacts/eval.json
Local and Customizable by Design
You can create a new classifier with minimal work:
- Implement
BaseClassifiermethods (fit,predict,to_artifact,from_artifact). - Add your classifier module under
src/ai_classifier/classifiers/. - Extend model factory logic in pipeline.
- Add tests and a docs snippet in
LEARN.md.
The template classifier exists as a readable baseline so teams can fork and evolve without hidden magic.
Documentation Map
README.md: overview + quick start.LEARN.md: architecture and extension handbook.docs/ARCHITECTURE.md: module boundaries and design rationale.docs/API.md: public contracts and expected behavior.docs/TROUBLESHOOTING.md: common failures and fixes.docs/EXAMPLES.md: practical usage patterns.
Quality and Release
Recommended local checks:
pytest
ruff check .
mypy src
python -m build
GitHub workflows are included for CI validation and package publishing.
Public Repository Notes
- Maintainer:
zaber-dev - Suggested repository name:
ai-classifier-template - Versioning model: Semantic Versioning (
MAJOR.MINOR.PATCH)
License
MIT License. See LICENSE and LICENSE.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ai_classifier_template-0.1.0.tar.gz.
File metadata
- Download URL: ai_classifier_template-0.1.0.tar.gz
- Upload date:
- Size: 18.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfb61a825764b387331f5dab719c52bfa9ff335089d90a8a2e950df1c29165d6
|
|
| MD5 |
06342e1508ea321f40b6bca2f89032bb
|
|
| BLAKE2b-256 |
a786461e83f4c1fc929ab31d37dd844f3bddc180befbdd8403b934b8fdc2a1d6
|
Provenance
The following attestation bundles were made for ai_classifier_template-0.1.0.tar.gz:
Publisher:
publish.yml on zaber-dev/ai-classifier-template
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ai_classifier_template-0.1.0.tar.gz -
Subject digest:
bfb61a825764b387331f5dab719c52bfa9ff335089d90a8a2e950df1c29165d6 - Sigstore transparency entry: 1246606401
- Sigstore integration time:
-
Permalink:
zaber-dev/ai-classifier-template@d1578876f2a831a74154b387b076e4d16de4e69c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/zaber-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d1578876f2a831a74154b387b076e4d16de4e69c -
Trigger Event:
push
-
Statement type:
File details
Details for the file ai_classifier_template-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ai_classifier_template-0.1.0-py3-none-any.whl
- Upload date:
- Size: 18.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
758fa2fbbdae65e0903e8e2d783b6621db71ade332a5f33b2e66d3a3988bb255
|
|
| MD5 |
63e78fa3c6d89eadca3e6653c513b57c
|
|
| BLAKE2b-256 |
28ba0bcd199a508f97fd60b943b1bc84a39ac3a2e8b17074c41075779c9a09e0
|
Provenance
The following attestation bundles were made for ai_classifier_template-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on zaber-dev/ai-classifier-template
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ai_classifier_template-0.1.0-py3-none-any.whl -
Subject digest:
758fa2fbbdae65e0903e8e2d783b6621db71ade332a5f33b2e66d3a3988bb255 - Sigstore transparency entry: 1246606414
- Sigstore integration time:
-
Permalink:
zaber-dev/ai-classifier-template@d1578876f2a831a74154b387b076e4d16de4e69c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/zaber-dev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d1578876f2a831a74154b387b076e4d16de4e69c -
Trigger Event:
push
-
Statement type: