跳转至

API 参考

欢迎来到 EvoToolkit API 参考文档。本节提供所有公共 API、类和函数的详细信息。


概述

EvoToolkit 组织为几个主要模块:

  • 核心 API: 核心功能,包括 evotoolkit.solve()SolutionTask 和基类
  • 任务: 内置优化任务(Python 和 CUDA)
  • 方法: 进化算法(EoH、EvoEngineer、FunSearch)
  • 接口: 连接任务和算法的方法接口
  • 工具: 实用工具和 LLM API 客户端

快速 API 参考

高级 API

使用 EvoToolkit 的最简单方式:

import evotoolkit

result = evotoolkit.solve(
    interface=interface,
    output_path='./results',
    running_llm=llm_api,
    max_generations=5
)

详见 核心 API: evotoolkit.solve()

核心类

描述 文档
Solution 表示候选解 核心 API
Task 优化任务基类 核心 API
MethodInterface 算法接口基类 接口

内置任务

任务 描述 文档
ScientificRegressionTask 科学符号回归任务 任务
PythonTask 通用 Python 任务 任务
CudaTask GPU 内核优化任务 任务

进化算法

算法 描述 文档
EvoEngineer 主要的 LLM 驱动进化算法 方法
FunSearch 函数搜索优化 方法
EoH 启发式进化 方法

API 设计理念

EvoToolkit 提供两个级别的 API:

1. 高级 API(推荐)

通过 evotoolkit.solve() 的高级 API 自动处理大部分复杂性:

# 创建任务和接口
task = ScientificRegressionTask(dataset_name="bactgrow")
interface = EvoEngineerPythonInterface(task)

# 求解
result = evotoolkit.solve(
    interface=interface,
    output_path='./results',
    running_llm=llm_api,
    max_generations=5
)

优点: - 简单明了 - 自动配置 - 适合大多数用例

2. 低级 API(高级)

低级 API 提供细粒度控制:

from evotoolkit.evo_method.evoengineer import EvoEngineer, EvoEngineerConfig

# 创建自定义配置
config = EvoEngineerConfig(
    task=task,
    output_path='./results',
    running_llm=llm_api,
    max_generations=5,
    pop_size=10,
    # ... 更多自定义设置
)

# 创建并运行算法
algorithm = EvoEngineer(config)
algorithm.run()

# 获取最佳解
best_solution = algorithm._get_best_sol(algorithm.run_state_dict.sol_history)

优点: - 完全自定义 - 访问内部状态 - 高级调试

详见 高级用法教程


模块组织

evotool/
├── __init__.py              # 高级 API (solve 函数)
├── core/                    # 核心抽象
│   ├── base_task.py        # Task 基类
│   ├── solution.py         # Solution 类
│   ├── base_method.py      # 算法基类
│   ├── base_config.py      # 配置基类
│   └── method_interface/   # 算法接口
├── evo_method/             # 进化算法
│   ├── eoh/               # EoH 实现
│   ├── evoengineer/       # EvoEngineer 实现
│   └── funsearch/         # FunSearch 实现
├── task/                   # 任务实现
│   ├── python_task/       # Python 任务框架
│   ├── cuda_engineering/  # CUDA 任务框架
│   └── string_optimization/ # 字符串优化任务
├── tools/                  # 工具
│   └── llm.py             # LLM API 客户端 (HttpsApi)
└── data/                   # 数据管理工具

常见模式

模式 1: 基本优化

import evotoolkit
from evotoolkit.task.python_task.scientific_regression import ScientificRegressionTask
from evotoolkit.task.python_task import EvoEngineerPythonInterface

task = ScientificRegressionTask(dataset_name="bactgrow")
interface = EvoEngineerPythonInterface(task)
result = evotoolkit.solve(interface, './results', llm_api, max_generations=5)

模式 2: 自定义任务

from evotoolkit.core import BaseTask, Solution

class MyTask(BaseTask):
    def evaluate(self, solution: Solution) -> float:
        # 您的评估逻辑
        return fitness_value

task = MyTask()
interface = EvoEngineerPythonInterface(task)
result = evotoolkit.solve(interface, './results', llm_api)

模式 3: 算法比较

algorithms = [
    ('EoH', EoHPythonInterface(task)),
    ('EvoEngineer', EvoEngineerPythonInterface(task)),
    ('FunSearch', FunSearchPythonInterface(task))
]

for name, interface in algorithms:
    result = evotoolkit.solve(interface, f'./results/{name}', llm_api)
    print(f"{name}: {result.fitness}")

API 版本控制

EvoToolkit 遵循语义化版本

  • 主版本 (1.x.x): 破坏性 API 更改
  • 次版本 (x.1.x): 新功能,向后兼容
  • 修订版本 (x.x.1): Bug 修复,向后兼容

检查当前版本:

import evotoolkit
print(evotoolkit.__version__)  # 例如 "1.0.0"

类型提示

EvoToolkit 在整个代码库中使用类型提示。使用 mypy 等类型检查器进行静态分析:

pip install mypy
mypy your_script.py

下一步