FEDOT.ASSISTANT is an LLM-based prototype for next-generation AutoML. It combines the power of Large Language Models with automated machine learning techniques to enhance data analysis and pipeline building processes.
fedot-assistant/
├── packages/
│ ├── fedotllm/ # Core package library
│ └── shared/ # Shared
│
├── apps/
│ ├── frontend/ # Streamlit UI application
│ └── server/ # FastAPI backend server
├── examples/ # Example tasks and datasets
└── docs/ # Documentation
- CAAFE integration: LLM-driven feature engineering for tabular classification tasks. Enabled by default via
feature_transformers.enabled_models: [CAAFE]. Requires installing the optional dependency group and setting an API key (see below).
- Install uv (A fast Python package installer and resolver):
curl -LsSf https://astral.sh/uv/install.sh | sh- Clone the repository:
git clone https://github.com/AaLexUser/Fedot-assistant.git
cd Fedot-assistant- Create a virtual environment:
uv venv --python 3.10
source .venv/bin/activate # On Unix/macOS
# Or on Windows:
# .venv\Scripts\activate- Install all dependencies:
# Install all workspace packages
uv sync --all-packagesSet your OpenAI API key:
export FEDOTLLM_LLM_API_KEY="your-api-key-here"Optional (CAAFE feature generation uses its own LLM settings; you can also put these into a .env file):
export CAAFE_LLM_API_KEY="your-api-key-here"
# Optional overrides (defaults work with the example config)
export CAAFE_LLM_MODEL="openai/gemini-2.0-flash"
export CAAFE_LLM_BASE_URL="https://generativelanguage.googleapis.com/v1beta/openai/"The system uses YAML configuration files you can customize. The default configuration is located at packages/fedotllm/src/fedotllm/configs/default.yaml. You can create your own configuration file and specify it using the --config-path option.
fedotllm-uifedotllm-serverfedotllm run /path/to/your/task/directory
# Use specific presets
fedotllm run /path/to/your/task/directory --presets best_quality
# Custom configuration
fedotllm run /path/to/your/task/directory --config-path config.yaml
# Override specific settings
fedotllm run /path/to/your/task/directory -o automl.enabled=fedot,time_limit=7200CAAFE performs LLM-driven feature engineering and currently supports classification tasks only.
# Ensure optional deps are installed
uv sync --group caafe
# Run with CAAFE enabled (default), customizing parameters on the fly
fedotllm run /path/to/task \
-o "feature_transformers.enabled_models=[CAAFE]" \
-o "feature_transformers.models.CAAFE.num_iterations=5" \
-o "feature_transformers.models.CAAFE.optimization_metric=roc" \
-o "feature_transformers.models.CAAFE.eval_model=lightgdm" # or tab_pfnYour task directory should contain:
- Training data file (e.g.,
train.csv) - Test data file (e.g.,
test.csv) - Sample submission file (e.g.,
sample_submission.csv) - Task description file (e.g.,
descriptions.txt)
medium_quality: Fast execution with good performancebest_quality: Maximum accuracy (default)
You can also use the FedotLLM package directly in your Python code:
from fedotllm import run_assistant
# Run a task programmatically
task, assistant = run_assistant(
task_path="/path/to/task",
config_overrides=["time_limit=600"],
presets="best_quality",
)Our implementation adapts code from AutoGluon Assistant. We thank authors of this project for providing high quality open source code!