SuperAPI AI 工具集

01-auto-arena

智能体与模型

查看项目

更新于 10-25 08:46

技能介绍

用途

01-auto-arena 用于在缺少现成测试数据的情况下,自动评估和比较多个 AI 模型或智能体。它面向“模型选型”与“版本对比”类需求:给定一个任务描述,由工具自动生成测试问题、收集各模型回答,并给出可量化排序。

主要能力

整个流程由 OpenJudge AutoArenaPipeline 驱动,包含若干步骤:

  • 生成查询:由 LLM 根据任务描述生成多样化的测试查询。
  • 收集回答:并发调用所有目标端点获取响应。
  • 生成评测标准:LLM 根据任务与样例查询生成 rubrics。
  • 成对评估:裁判模型对每一对模型进行比较,并做位置偏置交换(原始顺序与交换顺序各评一次)。
  • 分析与排名:计算胜率、胜率矩阵和排名。
  • 报告与图表:输出 Markdown 报告、胜率柱状图,可选生成矩阵热力图。

使用方式

安装依赖:

pip install py-openjudge
pip install matplotlib

运行评测的 CLI 用法:

python -m cookbooks.auto_arena --config config.yaml --save

其他 CLI 选项包括:使用预生成查询(--queries_file)、忽略检查点从头运行(--fresh)、仅重跑成对评估(--rerun-judge)等。

也可通过 Python API 调用:

import asyncio
from cookbooks.auto_arena.auto_arena_pipeline import AutoArenaPipeline

async def main():
    pipeline = AutoArenaPipeline.from_config("config.yaml")
    result = await pipeline.evaluate()
    print(f"Best model: {result.best_pipeline}")

asyncio.run(main())

配置使用 YAML 文件,必填项包括任务描述、至少两个目标端点、一个裁判端点;密钥支持 ${ENV_VAR} 环境变量写法。可选配置覆盖查询数量(默认 20)、种子查询、系统提示词、输出目录、报告语言(默认 zh)、生成与评估参数(并发、超时、重试、去重阈值等)以及报告与图表开关。

适用场景

  • 在多个模型之间做选型对比,或对比微调前后的版本。
  • 评估不同智能体方案在同一任务上的表现。
  • 需要自动化、可复现的评测报告与图表时。

限制与前提

  • 目标端点与裁判端点需为 OpenAI 兼容接口,且至少需要两个目标端点。
  • 需要相应 API 密钥;不同模型前缀对应不同环境变量(如 OPENAI_API_KEY、ANTHROPIC_API_KEY、DASHSCOPE_API_KEY、DEEPSEEK_API_KEY),自定义端点需在配置中填写 api_key 与 base_url。
  • 图表生成依赖 matplotlib。
  • 工具支持检查点与断点续跑;向配置新增端点会触发增量响应收集。

结果解读

胜率表示模型在成对比较中获胜的比例,每对均以两种顺序评估以消除位置偏置;胜率矩阵中 win_matrix[A][B] 表示模型 A 在所有查询上战胜模型 B 的频率。输出文件包括结果 JSON、可选 Markdown 报告、图表、查询、响应、rubrics、比较详情与检查点。