Repository: modelscope/evalscope
Issue: bfcl_v3评估方式是否与官方结果对齐
Root cause: Algorithmic Error

## 自查清单

在提交 issue 之前，请确保您已完成以下步骤:
- [x] 我已仔细阅读了[相关使用说明文档](https://evalscope.readthedocs.io/zh-cn/latest/get_started/parameters.html)
- [x] 我已查看了[常见问题解答](https://evalscope.readthedocs.io/zh-cn/latest/get_started/faq.html)
- [x] 我已搜索并查看了现有的 issues，确认这不是一个重复的问题

## 问题描述

![Image](https://github.com/user-attachments/assets/163a29eb-a28e-4c77-8b44-43d7ef65467a)

在完整评估bfcl_v3时，模型难以避免的会遇到一些错误，如"due to 1 validation error for ToolInfo", "Exceeded max inference steps，"等。所以他最终的有效返回（4391）低于题目总数（4441），但Evalscope似乎是按出结果的题目计分的，是否会导致报告分数偏高？

此外，在最终的reports里，你会给出下述两个得分，但和[官方](https://github.com/ShishirPatil/gorilla/tree/main/berkeley-function-call-leaderboard)的评估方式似乎都不对齐。
            "score": 0.7048,
            "macro_score": 0.6608,
官方排行榜的最终得分并不是一个简单的全局平均分，其计算逻辑是：
   1. 首先，将所有测试用例分为 Live, Non-Live, Multi-Turn 三大组，并用各自不同的逻辑计算出每组的分数。
   2. 然后，对这三大组的得分取等权平均值（算术平均），从而得到最终的 Overall Score。

如果确实不对齐的话，能否修改最终的统计方式，使得分和官方对齐？

## EvalScope 版本（必填）
v2.0.0

## 使用的工具
- [x] Native / 原生框架
- [ ] Opencompass backend
- [ ] VLMEvalKit backend
- [ ] RAGEval backend
- [ ] Perf / 模型推理压测工具
- [ ] Arena / 竞技场模式

## 执行的代码或指令

```
import os
from evalscope import TaskConfig, run_task

task_cfg = TaskConfig(
    model='qwen-plus',
    api_url='https://dashscope.aliyuncs.com/compatible-mode/v1',
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    eval_type='service',  # 使用API模型服务
    datasets=['bfcl_v3'],
    eval_batch_size=10,
    dataset_args={
        'bfcl_v3': {
            'extra_params':{
                # 模型在函数名称中拒绝使用点号（`.`）；设置此项，以便在评估期间自动将点号转换为下划线。
                'underscore_to_dot': True,
                # 模式是否为函数调用模型（Function Calling Model），如果是则会启用函数调用相关的配置；否则会使用prompt绕过函数调用。
                'is_fc_model': True,
            }
        }
    },
    generation_config={
        'temperature': 0,
        'max_tokens': 32000,
        'parallel_tool_calls': True,  # 启用并行函数调用
    },
    ignore_errors=True,
)
run_task(task_cfg=task_cfg)
```

## 错误日志

请粘贴完整的错误日志或控制台输出。

## 运行环境

- 操作系统：Linux
- Python版本：

## 其他信息

如果有其他相关信息，请在此处提供。


感谢你的反馈！我确认一下

+1，同样遇到这个结果不对齐的问题！

main分支更新了计算方式，可以pull main分支代码再试试

感谢修复！我试了一下，但目前的统计还是只考虑有效的返回？忽略失败的回复会导致评分偏高吧？（共4441题）

<img width="1749" height="291" alt="Image" src="https://github.com/user-attachments/assets/6ecf7107-0460-4183-9f5e-71698e58eb0e" />

<img width="1770" height="301" alt="Image" src="https://github.com/user-attachments/assets/1e5b98f3-33d9-49f3-aead-9d8df8cc0253" />

这是具体的日志文件：

[gemini-2.5-flash.txt](https://github.com/user-attachments/files/22358863/gemini-2.5-flash.txt)

> 感谢修复！我试了一下，但目前的统计还是只考虑有效的返回？忽略失败的回复会导致评分偏高吧？（共4441题）
> 
> <img alt="Image" width="1749" height="291" src="https://private-user-images.githubusercontent.com/33119031/489940925-6ecf7107-0460-4183-9f5e-71698e58eb0e.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTgwOTI1NTEsIm5iZiI6MTc1ODA5MjI1MSwicGF0aCI6Ii8zMzExOTAzMS80ODk5NDA5MjUtNmVjZjcxMDctMDQ2MC00MTgzLTlmNWUtNzE2OThlNThlYjBlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTA5MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwOTE3VDA2NTczMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZkNGFjMTIyZjVjODYwOWZhYzA4M2IwNTdiNDQ1ZDA2YTRjMmU4YjExYWEyMTRkNGIzZWFhZjg3NDYxYmY5ZTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.r098ICXfl2VcWC8Z-NOcGr2DpyLXhpWm5hQ3tqhE0cM"> <img alt="Image" width="1770" height="301" src="https://private-user-images.githubusercontent.com/33119031/489940750-1e5b98f3-33d9-49f3-aead-9d8df8cc0253.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTgwOTI1NTEsIm5iZiI6MTc1ODA5MjI1MSwicGF0aCI6Ii8zMzExOTAzMS80ODk5NDA3NTAtMWU1Yjk4ZjMtMzNkOS00OWYzLWFlYWQtOWQ4ZGY4Y2MwMjUzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTA5MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwOTE3VDA2NTczMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg0MTU5OTk2N2Q1YTExNTA0ZDUxYjc0MmMwZDMzZDNmZTJiM2U3NmNkMGUzYjc0ZWUyZjcyNjA5YTYwMGY1YWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.pDgHZ4kXhsDGsuCbGC_JmeWr2AcmiiAXn7wEa4DBE7c">
> 这是具体的日志文件：
> 
> [gemini-2.5-flash.txt](https://github.com/user-attachments/files/22358863/gemini-2.5-flash.txt)

@xiaobanni 这里添加的附件好像有点问题，下载后没有内容

抱歉，请重新查看：[gemini-2.5-flash.txt](https://github.com/user-attachments/files/22378052/gemini-2.5-flash.txt)



@xiaobanni main分支修复了ToolInfo的validation问题，可以再试一下。`'NoneType' object is not iterable`的问题，我这里没有复现，如有问题可以再贴一下log

> 感谢你的反馈！我们将关闭此问题。如果您有任何疑问，请随时重新打开它。如果EvalScope对您有所帮助，欢迎给我们点个STAR以示支持，谢谢！