项目简介

mir-eval-autolab 是一个用于音乐信息检索 (MIR) 算法评估和自动改进的平台。其核心组件之一是 MCP 服务器,它基于 Model Context Protocol (MCP) 构建,旨在为 LLM 客户端提供标准化的上下文信息和功能接口,以支持 AI 驱动的 MIR 算法自动改善。

主要功能点:

  • 资源管理: 托管和管理 MIR 算法评估所需的音频文件和参照标签等资源。
  • 工具注册与执行: 提供评估工具(如音符检测、onset检测等)的注册和执行能力,允许 LLM 客户端调用这些工具进行算法评估。
  • Prompt 模板: 支持自定义 Prompt 模板,用于与 LLM 进行交互,例如生成评估分析、改进建议等 Prompt。
  • AI 驱动的自动改善: 通过集成的 MCP 服务器和 AI 工具,实现 MIR 算法的自动评估、分析、假设生成和代码改善循环。
  • 非异步任务管理: 支持处理耗时任务,如数据集评估和网格搜索,并提供任务状态查询接口。
  • 服务器端状态管理: 集中管理会话状态、评估历史、改进过程数据等。

安装步骤:

  1. 克隆仓库:

    git clone https://github.com/romot-co/mir-eval-autolab
    cd mir-eval-autolab
  2. 安装 uv (推荐):

    curl -LsSf https://astral.sh/uv/install.sh | sh
  3. 创建并激活虚拟环境:

    uv venv .venv
    source .venv/bin/activate
  4. 安装依赖:

    uv pip install -e .[dev,numba,crepe]

    或使用锁文件:

    uv pip compile pyproject.toml --all-extras -o requirements-lock.txt
    uv pip sync requirements-lock.txt
  5. 配置环境变量: 复制 '.env.example' 为 '.env' 并根据需要修改,例如设置 'ANTHROPIC_API_KEY' (用于 AI 自动改进功能) 和 'MIREX_WORKSPACE' (工作区路径)。

  6. 生成合成数据 (可选,用于评估):

    python -m src.data_generation.generate_all

服务器配置 (MCP 客户端配置):

MCP 客户端需要配置以下信息以连接到 mir-eval-autolab MCP 服务器。以下是一个 JSON 格式的配置示例,适用于 MCP 客户端的 'servers' 字段:

{
  "mir-eval-autolab-server": {  // 服务器名称,客户端自定义
    "name": "mir-eval-autolab-server", // 服务器名称,与键名相同即可
    "command": "python",         // MCP 服务器启动命令 (Python 解释器)
    "args": [                   // 启动命令参数
      "-m",
      "src.cli.mcp_server",     // 运行 MCP 服务器的模块
      "--host", "0.0.0.0",       // (可选) 监听地址,允许外部访问
      "--port", "5002"          // (可选) 端口号,默认为 5002
    ],
    "protocol": "json-rpc",    // 协议类型,固定为 json-rpc
    "transport": "stdio",      // 传输协议,使用标准 I/O
    "url": "http://localhost:5002" // (可选)  WebSocket 或 HTTP 协议的 URL,stdio 传输时无需配置
  }
}

基本使用方法:

  1. 启动 MCP 服务器: 在终端中激活虚拟环境后,运行以下命令启动 MCP 服务器:

    python -m src.cli.mcp_server

    默认情况下,服务器将在 'http://localhost:5002' 启动 (通过 Stdio 传输协议与客户端通信)。

  2. 使用 'mirai' 命令行工具: 'mirai' 是项目的集成 CLI 工具,可以通过它进行以下操作:

    • 'mirai evaluate run': 运行单次评估或服务器端评估。
    • 'mirai grid-search run': 运行参数网格搜索。
    • 'mirai improve start': 启动 AI 驱动的自动改进循环 (实验性功能,需要配置 LLM API 密钥)。

    例如,运行服务器端评估的命令如下:

    python -m src.cli.mirai evaluate run --server http://localhost:5002 --detector YourDetectorClassName --dataset your_dataset_name

    更多使用细节和 AI 自动改进功能的使用方法,请参考仓库中的 'README.md' 和 'MCP_README.md' 文件。

注意: AI 驱动的自动改进功能为实验性,使用前请务必仔细阅读 'MCP_README.md' 文档。

信息

分类

AI与计算