Skip to main content

AI-powered ML project generation with local LLMs - lightweight and modular

Project description

NoLess Library 🚀

NoLess is a Python library for building complete machine-learning projects with the help of cooperative AI agents and local LLMs. It exposes the same generators, planners, and feedback loops that power the original CLI so you can embed them inside notebooks, services, or custom tooling.

Why NoLess

  • 🤖 Multi-agent automation – orchestrate dataset discovery, architecture design, and code generation with reusable agents.
  • 🧱 LLM-powered builders – generate configs, models, training loops, and tests with a single call to ModelGenerator.
  • 🔍 Unified dataset search – query OpenML, Hugging Face, Kaggle, and UCI from the DatasetSearcher API.
  • 🛠️ Interactive refinement – use InteractiveFeedbackLoop to iteratively review and improve generated code.
  • Production-ready outputs – every project ships with config, model, training, tests, requirements, and README files.

Installation

# Clone the repository
git clone https://github.com/your-org/noless.git
cd noless

# Install dependencies
pip install -r requirements.txt

# Install the library in editable mode
pip install -e .

Optional extras:

  • Install Ollama and pull at least one model (e.g. ollama pull deepseek-r1:1.5b).
  • Configure Kaggle or Hugging Face credentials if you plan to download datasets automatically.

Quick Start

from noless.generator import ModelGenerator
from noless.ollama_client import OllamaClient

client = OllamaClient()
generator = ModelGenerator(llm_model="deepseek-r1:1.5b", ollama_client=client)
project = generator.create_project(
    task="image-classification",
    framework="pytorch",
    dataset="mnist",
    output_dir="./mnist_classifier",
)

print(project["files"])

The output directory now contains config.yaml, model.py, train.py, test_model.py, requirements.txt, and a README ready for version control.

Key Modules

noless.generator.ModelGenerator

Builds end-to-end ML project skeletons. Supports PyTorch, TensorFlow, and scikit-learn targets, optional Ollama-powered authoring, and automatic AI reviews via CodeValidator.

noless.autopilot.AutopilotPlanner

Uses an LLM to interpret natural-language goals, ask clarifying questions, and produce structured blueprints (task, framework, dataset hints, architecture recommendations).

noless.search.DatasetSearcher

Aggregates dataset discovery across OpenML, Hugging Face, Kaggle, and UCI. Returns normalized metadata and can download ready-to-use files.

noless.feedback_loop.InteractiveFeedbackLoop

Provides a conversational refinement loop for any generated file. Supply code plus context and iteratively apply user or AI feedback.

noless.code_validator.CodeValidator

Runs AI reviews against generated code using a larger reviewer model when available, returning improved code plus issue/suggestion lists.

noless.agents.MultiAgentSystem

Optional cooperative layer that lets you run the six specialized agents (orchestrator, dataset, model, code, training, optimization) inside your own applications.

End-to-End Pipeline Example

from noless.autopilot import AutopilotPlanner
from noless.generator import ModelGenerator
from noless.search import DatasetSearcher
from noless.ollama_client import OllamaClient

client = OllamaClient()
planner = AutopilotPlanner(client, llm_model="deepseek-r1:1.5b")
analysis = planner.plan_project("detect defects in solar panel images")

searcher = DatasetSearcher()
datasets = searcher.search(analysis.dataset_query, limit=5)

project = ModelGenerator(
    llm_model="deepseek-r1:1.5b",
    reviewer_model="mixtral:8x7b",
    ollama_client=client,
).create_project(
    task=analysis.task,
    framework=analysis.framework,
    dataset=datasets[0].name if datasets else None,
    output_dir="./solar_inspector",
    dataset_metadata=datasets[0].__dict__ if datasets else None,
)

Testing

Run the unit test suite after making changes:

python -m unittest

License

NoLess is released under the MIT License. See LICENSE for details.

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

noless-0.2.1a1.tar.gz (104.2 kB view details)

Uploaded Source

Built Distribution

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

noless-0.2.1a1-py3-none-any.whl (118.3 kB view details)

Uploaded Python 3

File details

Details for the file noless-0.2.1a1.tar.gz.

File metadata

  • Download URL: noless-0.2.1a1.tar.gz
  • Upload date:
  • Size: 104.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for noless-0.2.1a1.tar.gz
Algorithm Hash digest
SHA256 a0feba42998d4f5828218ae2bca97b3283463afaa48ecefc1053d80b19761f8f
MD5 76434be053f87b069679bee0989eb983
BLAKE2b-256 4ed581838b5b0a58902e1a4e1d91d5017946839fe54c131a5a7507f14c5984c7

See more details on using hashes here.

File details

Details for the file noless-0.2.1a1-py3-none-any.whl.

File metadata

  • Download URL: noless-0.2.1a1-py3-none-any.whl
  • Upload date:
  • Size: 118.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for noless-0.2.1a1-py3-none-any.whl
Algorithm Hash digest
SHA256 859438701cb17c67e3a6a8fb451e4326e39877bcc36ba7bac78e4cee4f03dd1c
MD5 a9dbba21aa7e3124fb3744fde69270f1
BLAKE2b-256 6d63ac9d96b3b7c2f67aa78103d131abf77475e5538e48481a41d11dc1ae9544

See more details on using hashes here.

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