项目简介
mir-eval-autolab 是一个用于音乐信息检索 (MIR) 算法评估和自动改进的平台。其核心组件之一是 MCP 服务器,它基于 Model Context Protocol (MCP) 构建,旨在为 LLM 客户端提供标准化的上下文信息和功能接口,以支持 AI 驱动的 MIR 算法自动改善。
主要功能点:
- 资源管理: 托管和管理 MIR 算法评估所需的音频文件和参照标签等资源。
- 工具注册与执行: 提供评估工具(如音符检测、onset检测等)的注册和执行能力,允许 LLM 客户端调用这些工具进行算法评估。
- Prompt 模板: 支持自定义 Prompt 模板,用于与 LLM 进行交互,例如生成评估分析、改进建议等 Prompt。
- AI 驱动的自动改善: 通过集成的 MCP 服务器和 AI 工具,实现 MIR 算法的自动评估、分析、假设生成和代码改善循环。
- 非异步任务管理: 支持处理耗时任务,如数据集评估和网格搜索,并提供任务状态查询接口。
- 服务器端状态管理: 集中管理会话状态、评估历史、改进过程数据等。
安装步骤:
-
克隆仓库:
git clone https://github.com/romot-co/mir-eval-autolab cd mir-eval-autolab -
安装 uv (推荐):
curl -LsSf https://astral.sh/uv/install.sh | sh -
创建并激活虚拟环境:
uv venv .venv source .venv/bin/activate -
安装依赖:
uv pip install -e .[dev,numba,crepe]或使用锁文件:
uv pip compile pyproject.toml --all-extras -o requirements-lock.txt uv pip sync requirements-lock.txt -
配置环境变量: 复制 '.env.example' 为 '.env' 并根据需要修改,例如设置 'ANTHROPIC_API_KEY' (用于 AI 自动改进功能) 和 'MIREX_WORKSPACE' (工作区路径)。
-
生成合成数据 (可选,用于评估):
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 传输时无需配置 } }
基本使用方法:
-
启动 MCP 服务器: 在终端中激活虚拟环境后,运行以下命令启动 MCP 服务器:
python -m src.cli.mcp_server默认情况下,服务器将在 'http://localhost:5002' 启动 (通过 Stdio 传输协议与客户端通信)。
-
使用 '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与计算