plexe-ai/plexe is a Python tool that builds ML models from natural language prompts, supporting multiple frameworks and an agentic workflow. The project includes installation, configuration, multi-provider LLM support, and an experiment dashboard.
Collecting history — the radar snapshots this repo daily. The trend line appears after 3 days of data (1 so far).
What it is
plexe lets you create machine learning models by describing them in plain language. It supports building models with XGBoost, CatBoost, LightGBM, Keras, and PyTorch for tabular data, and provides a multi-agent architecture to analyze data, select metrics, search for models, evaluate performance, and package the final model for deployment. The repository includes Docker images, a YAML configuration, and an experiment dashboard.
How it works
The system uses 14 specialized AI agents across a 6-phase workflow to:
- Analyze your data and identify the ML task
- Select the right evaluation metric
- Search for the best model through hypothesis-driven iteration
- Evaluate model performance and robustness
- Package the model for deployment Configurable components include LLM routing per agent, search parameters, and Spark settings via a config.yaml. It uses LiteLLM providers for LLM access, with examples routing hypothesiser_llm, feature_processor_llm, and model_definer_llm to different providers. The output model is packaged in a self-contained directory with artifacts, inference code, and metadata.
Getting started
Installation is via pip: "pip install plexe". Then set environment variables for API keys:
export OPENAI_API_KEY=<your-key>
export ANTHROPIC_API_KEY=<your-key>
Run a quick start example:
python -m plexe.main \
--train-dataset-uri data.parquet \
--intent "predict whether a passenger was transported" \
--max-iterations 5
You can also call the API from Python:
from plexe.main import main
best_solution, metrics, report = main(
intent="predict whether a passenger was transported",
data_refs=["train.parquet"],
max_iterations=5,
work_dir=Path("./workdir"),
)
print(f"Performance: {best_solution.performance:.4f}")
There is a YAML config for customization and a multi-provider LLM setup allowing routing:
# config.yaml
max_search_iterations: 5
allowed_model_types: [xgboost, catboost]
spark_driver_memory: "4g"
hypothesiser_llm: "openai/gpt-5-mini"
feature_processor_llm: "anthropic/claude-sonnet-4-5-20250929"
Installing and running
CLI help is available via:
Run `python -m plexe.main --help` for all CLI options.
Docker and Makefile targets provide pre-configured environments and quick runs, with commands like:
make build # Build the Docker image
make test-quick # Fast sanity check (~1 iteration)
make run-titanic # Run on Spaceship Titanic dataset
Or run directly with Docker:
docker run --rm \
-e OPENAI_API_KEY=$OPENAI_API_KEY \
-e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
-v $(pwd)/data:/data -v $(pwd)/workdir:/workdir \
plexe:py3.12 python -m plexe.main \
--train-dataset-uri /data/dataset.parquet \
--intent "predict customer churn" \
--work-dir /workdir \
--spark-mode local
Getting started (continued)
The README provides installation options including additional extras, such as tabular, pytorch, pyspark, and aws, e.g.:
pip install plexe # Core (XGBoost, Keras, scikit-learn)
pip install "plexe[tabular,pyspark]" # tabular stack + local PySpark
Documentation
For full documentation, visit https://docs.plexe.ai.
License
Apache-2.0
Traction
Stars: 2593, Forks: 254, Open issues: 15





