LLM函数调用性能评估框架

基于OpenRouter API的LLM函数调用性能评估框架,用于精确测量大型语言模型的函数调用能力。

  • by mink555
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 mink555/mcp-llm-bm-v2

使用说明

BFCL-V4-Bench(OpenRouter)

基于OpenRouter API的LLM Function Calling性能评估框架
BFCL(伯克利函数调用排行榜)V4기반


📋 项目概述

主题 详细信息
目的 准确测量OpenRouter主要LLM的Function Calling(FC)性能
基于基准测试 UC Berkeley BFCL V4(基于Abstract Syntax Tree的精确评分)
评估对象 Llama 3.3、Mistral Small 3.2、Qwen 3系列(14B、32B、80B)
主要功能 单转身(Single-turn) 验证以精确FC为中心的能力

🎯 评估框架(BFCL V4)

1.评估类别和翻转方式

本项目旨在测量模型的纯函数调用准确度。 单转身(Single-turn) 正在采用这种方式。

类别 方式 类型 详细说明 数据数量
简单 单次调用 对单个函数执行一次调用(Python/Java/JS) 550个
多个 单循环 选择函数 从多个候选函数中选择一个最佳函数进行调用 200个
并行 单次并行调用使用不同参数多次同时调用同一函数200个
并行多重 复合单转 复合并行 一次请求同时调用200个不同的函数

2.单轮(我们做的)vs多轮(计划支援)

区分单转身(Single-turn)多转身(Multi-turn) | :--- | :--- | :--- | | 对话结构 | 질문 1회 ➔ 응답 1회 | 질문/응답 반복 (对话)| | 保持状态 |无需(Zero-shot)| 必需 (记住之前的对话背景)| | 评估目的 |纯函数调用和参数准确度|根据对话流推断代理(Agent)的能力| | 当前状态 | 跑完全程(V2.1) |数据集支持(可稍后评估)

3.核心评价指标(Metrics)

指标名称计算逻辑备注 | :--- | :--- | :--- | | 准确度 | Correct / Total |单个类别的纯正确率| | 总体Acc | AVERAGE(Cat_Acc_1, Cat_Acc_2, ...) |各类别正确率的 非加权平均 (BFCL官方)| | 加权Acc | ΣCorrect / ΣTotal |正确答案总数与整个测试案例的比率|


🤖 各型号的评估结果

类别准确度(%)

모델 简单 多重 并行 并行多重 平均
Qwen3-14B 95.0 95.5 93.0 96.0 94.9
Qwen3-Next-80B 96.8 95.0 93.5 92.0 94.3
Qwen3-32B 93.5 89.0 89.0 93.0 91.1
米斯特拉尔·斯莫尔-24B 57.8 63.0 40.5 40.0 50.3
Llama-3.3-70B 26.3 14.5 32.0 4.0 19.2

主要发现

型号 等级 特征 主要错误类型
Qwen3-14B 🥇 最高性价比,80B级性能 发生类型错误(int float)小数
Qwen3-Next-80B 🥇 稳定,Simple最高点 类型错误(int float)小数出现
Qwen3-32B 🥈 符合要求的性能 JSON解析错误,函数选择失败
米斯特拉尔·斯莫尔-24B 不稳定 文本响应而不是函数调用,解析错误
Llama-3.3-70B FC无效 类型错误 (数字→字符串),函数名错误(.→_)

🛠️ 安装和首选参数

1.安装依赖性

# 저장소 클론 및 이동
git clone <repository-url>
cd BFCL-V4-Bench/gorilla/berkeley-function-call-leaderboard

# 패키지 및 리포트 엔진 설치
pip install -e .
pip install openpyxl

2.设置API密钥

.env 在以下路径中创建文件。 (.gitignore受保护)

  • 路径: gorilla/berkeley-function-call-leaderboard/.env
OPENROUTER_API_KEY=your_api_key_here

🚀 快速启动(Quick Start)

# 1. 작업 디렉토리 이동
cd gorilla/berkeley-function-call-leaderboard

# 2. 퀵 테스트 실행 (카테고리별 2개씩, 약 1분 소요)
python run_eval.py --quick

# 3. 결과 확인
open reports/  # 엑셀 보고서 자동 생성됨

执行流

run_eval.py 실행
    │
    ├─➊ 응답 생성 (generate)  → result/*.jsonl
    ├─➋ AST 채점 (evaluate)   → score/*.json
    └─➌ 보고서 생성 (report)  → reports/*.xlsx

📖 CLI参考

默认运行模式

命令 说明 所需时间
python run_eval.py --quick 快速测试(2个类别)~1分钟
python run_eval.py --full 评估整个数据集~30分钟+
python run_eval.py --report-only 仅根据现有结果生成报告~10秒

详细选项

# 특정 모델만 테스트
python run_eval.py --quick --models "openrouter/qwen3-14b-FC"

# 특정 카테고리만 테스트
python run_eval.py --full --categories "simple_python,multiple"

# 샘플링 테스트 (카테고리별 100개씩)
python run_eval.py --sample-size 100

# 병렬 처리로 속도 향상
python run_eval.py --full --num-threads 4

# 기존 결과에 추가 실행 (덮어쓰기 방지)
python run_eval.py --append --categories "parallel"

# 생성 또는 평가 단계 스킵
python run_eval.py --skip-generate   # 평가+보고서만
python run_eval.py --skip-evaluate   # 생성+보고서만

支持型号列表

型号ID 说明
openrouter/qwen3-next-80b-a3b-instruct-FC Qwen3-Next 80B(建议)
openrouter/qwen3-14b-FC Qwen3 14B(性价比)
openrouter/qwen3-32b-FC Qwen3 32B
openrouter/mistral-small-3.2-24b-instruct-FC Mistral小24B
openrouter/llama-3.3-70b-instruct-FC Llama 3.3 70B

📂 体系结构(Architecture)

1.目录树

BFCL-V4-Bench/
├── 📄 README.md           # 프로젝트 통합 가이드
├── ⚙️ .env                # OpenRouter API 키 (보안)
└── 📂 gorilla/
    └── 📂 berkeley-function-call-leaderboard/
        ├── 🐍 run_eval.py       # [핵심] 평가/채점/리포트 통합 실행기
        ├── 🐍 excel_reporter.py # [엔진] 수식 기반 엑셀 생성 모듈
        ├── 📂 bfcl_eval/        # BFCL 원본 프레임워크 모듈
        ├── 📂 reports/          # 최종 엑셀 보고서 (결과물)
        ├── 📂 result/           # 모델 응답 원본 (JSONL)
        └── 📂 score/            # AST 채점 결과 (JSON)

2.配置报告(Excel)页面

图纸名 主要内容 特点
摘要 核心KPI、排名、失败原因Top5 100%Excel公式通过实时联动
类别矩阵 比较型号×类别的准确度 应用最高/最低点自动高亮样式
详细 所有测试案例的输入输出和错误依据 包括参数名称、期望/实际类型等分析提示

🔗 参考资料