Metadata-Version: 2.4
Name: llm4ad-next
Version: 1.0.0
Summary: Interactive LLM-driven automated algorithm design with evolutionary optimization
Project-URL: Homepage, https://github.com/Optima-CityU/LLM4AD_Next
Project-URL: Documentation, https://llm4ad.readthedocs.io
Project-URL: Repository, https://github.com/Optima-CityU/LLM4AD_Next
Project-URL: Issues, https://github.com/Optima-CityU/LLM4AD_Next/issues
Project-URL: Changelog, https://github.com/Optima-CityU/LLM4AD_Next/releases
Author: LLM4AD Contributors
Maintainer: LLM4AD Contributors
License: BSD-3-Clause
License-File: LICENSE
Keywords: ai,algorithm-design,automated-algorithm-design,code-generation,evolutionary-optimization,llm
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Code Generators
Requires-Python: >=3.12
Requires-Dist: agentscope<3.0,>=2.0
Requires-Dist: aiofiles>=25.1.0
Requires-Dist: aiohttp>=3.9.0
Requires-Dist: claude-agent-sdk
Requires-Dist: click>=8.3.1
Requires-Dist: inquirerpy>=0.3.4
Requires-Dist: loguru>=0.7.3
Requires-Dist: numpy>=2.2.6
Requires-Dist: openai>=2.26.0
Requires-Dist: pandas>=2.3.3
Requires-Dist: prompt-toolkit>=3.0.0
Requires-Dist: pydantic-settings>=2.0.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: pytest-custom-exit-code>=0.3.0
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: rich<14.0.0,>=13.0.0
Requires-Dist: scikit-learn>=1.3.0
Requires-Dist: typer>=0.24.1
Requires-Dist: typing-extensions>=4.5.0
Requires-Dist: xgboost>=3.2.0
Provides-Extra: agent
Requires-Dist: agentscope<3.0,>=2.0; extra == 'agent'
Provides-Extra: all
Requires-Dist: anthropic>=0.19.0; extra == 'all'
Requires-Dist: black>=24.0.0; extra == 'all'
Requires-Dist: codebleu>=0.7.0; extra == 'all'
Requires-Dist: gymnasium[box2d]>=0.29.0; extra == 'all'
Requires-Dist: isort>=5.13.0; extra == 'all'
Requires-Dist: llvmlite==0.44.0; extra == 'all'
Requires-Dist: matplotlib>=3.5.0; extra == 'all'
Requires-Dist: mkdocs-git-committers-plugin-2>=2.5.0; extra == 'all'
Requires-Dist: mkdocs-git-revision-date-localized-plugin>=1.5.1; extra == 'all'
Requires-Dist: mkdocs-material>=9.5.0; extra == 'all'
Requires-Dist: mkdocs-minify-plugin>=0.8.0; extra == 'all'
Requires-Dist: mkdocs>=1.5.0; extra == 'all'
Requires-Dist: mkdocstrings[python]>=0.24.0; extra == 'all'
Requires-Dist: mypy>=1.8.0; extra == 'all'
Requires-Dist: numba==0.61.2; extra == 'all'
Requires-Dist: numpy>=1.24.0; extra == 'all'
Requires-Dist: openai>=1.0.0; extra == 'all'
Requires-Dist: pandas>=2.0.0; extra == 'all'
Requires-Dist: psutil>=5.9.0; extra == 'all'
Requires-Dist: pymoo>=0.6.1; extra == 'all'
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'all'
Requires-Dist: pytest-cov>=4.1.0; extra == 'all'
Requires-Dist: pytest-custom-exit-code>=0.3.0; extra == 'all'
Requires-Dist: pytest>=8.0.0; extra == 'all'
Requires-Dist: ruff>=0.2.0; extra == 'all'
Requires-Dist: scikit-learn>=1.3.0; extra == 'all'
Requires-Dist: scipy>=1.10.0; extra == 'all'
Requires-Dist: sympy>=1.12.0; extra == 'all'
Requires-Dist: tiktoken>=0.6.0; extra == 'all'
Requires-Dist: tree-sitter-python==0.21.0; extra == 'all'
Requires-Dist: umap-learn>=0.5.12; extra == 'all'
Provides-Extra: dev
Requires-Dist: black>=24.0.0; extra == 'dev'
Requires-Dist: isort>=5.13.0; extra == 'dev'
Requires-Dist: mypy>=1.8.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
Requires-Dist: pytest-custom-exit-code>=0.3.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.2.0; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-git-committers-plugin-2>=2.5.0; extra == 'docs'
Requires-Dist: mkdocs-git-revision-date-localized-plugin>=1.5.1; extra == 'docs'
Requires-Dist: mkdocs-material>=9.5.0; extra == 'docs'
Requires-Dist: mkdocs-minify-plugin>=0.8.0; extra == 'docs'
Requires-Dist: mkdocs>=1.5.0; extra == 'docs'
Requires-Dist: mkdocstrings[python]>=0.24.0; extra == 'docs'
Provides-Extra: dyca
Requires-Dist: numpy>=1.24.0; extra == 'dyca'
Requires-Dist: scikit-learn>=1.3.0; extra == 'dyca'
Provides-Extra: eval
Requires-Dist: llvmlite==0.44.0; extra == 'eval'
Requires-Dist: numba==0.61.2; extra == 'eval'
Requires-Dist: numpy>=1.24.0; extra == 'eval'
Requires-Dist: pandas>=2.0.0; extra == 'eval'
Requires-Dist: scipy>=1.10.0; extra == 'eval'
Requires-Dist: sympy>=1.12.0; extra == 'eval'
Requires-Dist: umap-learn>=0.5.12; extra == 'eval'
Provides-Extra: infra
Requires-Dist: psutil>=5.9.0; extra == 'infra'
Provides-Extra: lunarlander
Requires-Dist: gymnasium[box2d]>=0.29.0; extra == 'lunarlander'
Requires-Dist: matplotlib>=3.5.0; extra == 'lunarlander'
Provides-Extra: meoh
Requires-Dist: codebleu>=0.7.0; extra == 'meoh'
Requires-Dist: pymoo>=0.6.1; extra == 'meoh'
Requires-Dist: scikit-learn>=1.3.0; extra == 'meoh'
Requires-Dist: tree-sitter-python==0.21.0; extra == 'meoh'
Provides-Extra: providers
Requires-Dist: anthropic>=0.19.0; extra == 'providers'
Requires-Dist: openai>=1.0.0; extra == 'providers'
Requires-Dist: tiktoken>=0.6.0; extra == 'providers'
Provides-Extra: tsp
Requires-Dist: numpy>=1.24.0; extra == 'tsp'
Description-Content-Type: text/markdown

# LLM4AD_Next

<p align="center">
  <strong>From problem description to runnable evolutionary algorithm search — in one command.</strong><br>
  LLM-driven automated algorithm design with evolutionary optimization
</p>

<p align="center">
  <a href="https://pypi.org/project/llm4ad-next/">
    <img src="https://img.shields.io/pypi/v/llm4ad-next?color=blue" alt="PyPI Version">
  </a>
  <a href="https://pypi.org/project/llm4ad-next/">
    <img src="https://img.shields.io/badge/python-3.12%2B-blue" alt="Python Versions">
  </a>
  <a href="https://github.com/Optima-CityU/LLM4AD_Next/blob/main/LICENSE">
    <img src="https://img.shields.io/badge/license-BSD--3--Clause-blue" alt="License">
  </a>
  <a href="https://github.com/Optima-CityU/LLM4AD_Next/actions/workflows/ci.yml">
    <img src="https://img.shields.io/github/actions/workflow/status/Optima-CityU/LLM4AD_Next/ci.yml" alt="CI">
  </a>
</p>

---

## 🔥 News

- 🚀 [2026.07][New Release]: **LLM4AD_Next Online Trial** is now available at [https://llm4ad-next.cn/](https://llm4ad-next.cn/) — try the full problem-to-algorithm workflow directly in your browser with no local setup.
- ✨ [2026.07][New Feature]: Introducing an **interactive problem-to-project workflow** that turns natural-language problem descriptions into runnable evolutionary algorithm search projects.
- 🐳 [2026.07][New Feature]: Versioned **Docker Hub deployment images** are now aligned with GitHub Release tags for reproducible local deployment.

## 🚀 Why LLM4AD_Next?

Traditionally, using Large Language Models for Automated Algorithm Design (LLM4AD) required a tedious, multi-step configuration pipeline. **LLM4AD_Next destroys this entry barrier.**

<div align="center">
  <img src="docs/en/process.png" alt="LLM4AD vs LLM4AD_Next Process Overview" width="850">
</div>


With **LLM4AD_Next**, after creating your directory, all of these painful steps are fully automated through an interactive conversational terminal. Just run:

```bash
uv run llm4ad chat
```

Our built-in AI-powered consultant will interview you, instantly understand your requirements, and automatically generate a ready-to-run pipeline (evaluator, algorithm skeleton, configuration, and debugger) so you can leap straight into producing Useful Algorithms.

## 🎯 Key Features Overview

* 🧠 **LLM-Powered Design** & 🧬 **Evolutionary Optimization** combined to automatically evolve top-performing code.
* 💬 **Interactive Configuration (`llm4ad chat`)** — Your conversational AI consultant that generates the entire runnable app framework.
* 🔍 **Evolve-Block Advisor & Recommender** — Point LLM4AD_Next at any repository, and it will scan, score, and recommend exactly *which* blocks of code are most promising to evolve to hit your goals.

## Quick Start

<table>
  <tr>
    <td align="center" width="33%">
      <strong>Try Online</strong><br>
    </td>
    <td align="center" width="33%">
      <strong>Watch Instruction</strong><br>
    </td>
    <td align="center" width="33%">
      <strong>Read Docs</strong><br>
    </td>
  </tr>
  <tr>
    <td align="center" width="33%">
      Run LLM4AD_Next in your browser. No installation or API key required.
    </td>
    <td align="center" width="33%">
      Watch the introduction before installing or configuring a local environment.
    </td>
    <td align="center" width="33%">
      Use the documentation path map for setup, configuration, examples, and Web UI deployment.
    </td>
  </tr>
  <tr>
    <td align="center" width="33%">
      <a href="https://llm4ad-next.cn/">
        <img src="https://img.shields.io/badge/Launch%20Online%20Demo-Open%20Now-2ea44f?style=for-the-badge"
             alt="Launch Online Demo">
      </a>
    </td>
    <td align="center" width="33%">
      <a href="https://youtu.be/x47kEosu0jk" target="_blank" rel="noopener noreferrer">
        <img src="https://img.shields.io/badge/Watch%20Instruction-YouTube-FF0000?style=for-the-badge&logo=youtube&logoColor=white"
             alt="Watch the instruction video on YouTube">
      </a>
    </td>
    <td align="center" width="33%">
      <a href="docs/en/index.md">
        <img src="https://img.shields.io/badge/Open%20Documentation-Read%20Now-0969da?style=for-the-badge"
             alt="Open Documentation">
      </a>
    </td>
  </tr>
</table>

## Instruction Video

<div align="center">
  <a href="https://youtu.be/x47kEosu0jk" target="_blank" rel="noopener noreferrer">
    <img src="https://img.youtube.com/vi/x47kEosu0jk/maxresdefault.jpg"
         alt="LLM4AD_Next instruction video"
         width="720"
         height="405">
  </a>
</div>


## Run LLM4AD

### Option A: Online Demo (No Installation Required)

Use the online demo from [Quick Start](#quick-start), or open it directly:
[Launch Online Demo](https://llm4ad-next.cn/).

No setup, no API key needed — just open the link and start designing algorithms.

### Option B: Local Installation

Requires **Python 3.12+** (pinned in `.python-version`) and [uv](https://github.com/astral-sh/uv) (recommended) or pip. A plain `uv sync` sets up everything, including the `chatv2` AI build agent, out of the box.

```bash
# Clone the repository
git clone https://github.com/Optima-CityU/LLM4AD_Next.git
cd LLM4AD_Next

# Install dependencies
uv sync

# Configure your LLM provider (see Global Settings section below)
# Or set environment variables directly:
export LLM_BASE_URL="https://api.openai.com/v1"
export LLM_API_KEY="your-api-key"
export LLM_MODEL="gpt-4o"

# Option 1: Interactive configuration (recommended for new users)
llm4ad chat

# Option 2: Run with an existing config file
llm4ad run examples/applications/tsp_benchmark_python/config.yaml
```

For optional dependency groups (`infra`, `providers`, `eval`, `dev`, `docs`, `all`) and uv installation, see the [Installation Guide](docs/en/guides/installation.md).

## Global Settings

Create `~/.llm4ad/settings.yaml` to configure shared providers across all projects:

```yaml
providers:
  - name: default
    type: openai
    api_key: ${OPENAI_API_KEY}
    model: gpt-4o
  - name: anthropic
    type: anthropic
    api_key: ${ANTHROPIC_API_KEY}
    model: claude-sonnet-4-20250514
```

Task configs then only need the provider name — credentials and model are resolved from global settings automatically.

For CLI commands, the interactive chat workflow, the Evolve-Block Advisor / Recommender, and the Python API, see the [Documentation](docs/en/index.md).

## Documentation

- [Documentation Home](docs/en/index.md)
- [Quick Start Guide](docs/en/guides/quickstart.md)
- [Configuration Guide](docs/en/guides/configuration.md)
- [Writing Evaluators](docs/en/guides/evaluators.md)

### Local Development

```bash
# Serve documentation with live reload
mkdocs serve

# Build static documentation
mkdocs build
```

## Project Structure

```
LLM4AD/
├── src/llm4ad/          # Main source code
│   ├── config/           # Configuration schemas and global settings
│   ├── consultant/       # Interactive configuration wizard
│   ├── builder/          # Task builder (analyzer, creator, validator, writer)
│   ├── advisor/          # Evolve-block advisor and recommender
│   ├── provider/         # LLM provider implementations
│   ├── planner/          # Algorithm planning layer
│   ├── coder/            # Code generation layer
│   ├── evaluator/        # Evaluation layer
│   ├── orchestrator/     # Workflow orchestration
│   ├── infra/            # Infrastructure (Ray, monitoring)
│   └── utils/            # Utilities
├── examples/             # Example configurations and applications
├── tests/                # Test suite
└── docs/                 # Documentation
```

## Contributing

Contributions are welcome! Please read our [Contributing Guide](docs/en/contributing/guidelines.md) for details.

```bash
# Set up development environment
uv sync --extra all

# Run tests
pytest

# Format code
black src/ tests/
ruff check src/ tests/ --fix
```

## License

This project is licensed under the BSD 3-Clause License - see the [LICENSE](LICENSE) file for details.

## Support

- [Documentation](docs/en/index.md)
- [Discussions](https://github.com/Optima-CityU/LLM4AD_Next/discussions)
- [Issue Tracker](https://github.com/Optima-CityU/LLM4AD_Next/issues)

## Join the Community

Scan the QR code with WeChat to join the LLM4AD_Next community group.

<div align="center">
  <img src="docs/assets/live-qr.png"
       alt="LLM4AD_Next WeChat community QR code"
       width="220">
</div>

## Star History

<!-- star-history:start -->
<picture>
  <source media="(prefers-color-scheme: dark)" srcset="docs/assets/star-history/star-history-dark-20260709034730.svg">
  <img alt="Star history" src="docs/assets/star-history/star-history-light-20260709034730.svg">
</picture>
<!-- star-history:end -->
