You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

280 lines
6.3 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 第十二章示例代码
本目录包含第十二章《智能体性能评估》的所有示例代码,按照文档顺序编号,方便学习者跟随文档学习。
## 📁 文件列表
| 文件名 | 对应章节 | 说明 |
|--------|---------|------|
| `01_basic_agent_example.py` | 12.1.1 | 基础智能体示例,说明为何需要评估 |
| `02_bfcl_quick_start.py` | 12.2.5 | BFCL快速开始一键评估 |
| `03_bfcl_custom_evaluation.py` | 12.2.5 | BFCL自定义评估底层组件 |
| `04_run_bfcl_evaluation.py` | 12.2.9 | BFCL评估最佳实践 |
| `05_gaia_quick_start.py` | 12.3.5 | GAIA快速开始一键评估 |
| `06_gaia_best_practices.py` | 12.3.9 | GAIA评估最佳实践 |
| `07_data_generation_complete_flow.py` | 12.4.6 | 数据生成完整评估流程 |
| `08_data_generation_llm_judge.py` | 12.4.3 | LLM Judge评估 |
| `09_data_generation_win_rate.py` | 12.4.4 | Win Rate评估 |
## 🚀 快速开始
### 环境准备
1. **安装HelloAgents框架**
```bash
pip install hello-agents[evaluation]==0.2.3
```
2. **设置环境变量**
```bash
# OpenAI API Key用于GPT-4o
export OPENAI_API_KEY="your_openai_api_key"
# HuggingFace Token用于GAIA数据集
export HF_TOKEN="your_huggingface_token"
```
3. **下载BFCL数据集**(可选,首次运行会自动下载):
```bash
cd ../HelloAgents
git clone https://github.com/ShishirPatil/gorilla.git temp_gorilla
```
### 运行示例
#### 1. 基础智能体示例
```bash
python 01_basic_agent_example.py
```
这个示例展示了一个基本的ReAct智能体说明为何需要评估系统。
#### 2. BFCL快速开始
```bash
python 02_bfcl_quick_start.py
```
这是最简单的BFCL评估方式一行代码完成评估。
**预期输出**
```
准确率: 100.00%
正确数: 5/5
```
#### 3. BFCL自定义评估
```bash
python 03_bfcl_custom_evaluation.py
```
展示如何使用底层组件进行自定义评估流程。
#### 4. BFCL最佳实践
```bash
python 04_run_bfcl_evaluation.py
```
展示BFCL评估的最佳实践包括
- 渐进式评估
- 多类别评估
- 对比评估
- 错误分析
#### 5. GAIA快速开始
**重要提示**GAIA是受限数据集需要先申请访问权限。
1. 访问 https://huggingface.co/datasets/gaia-benchmark/GAIA
2. 点击"Request Access"申请访问权限
3. 等待审核通过通常1-2天
4. 设置HF_TOKEN环境变量
```bash
python 05_gaia_quick_start.py
```
**预期输出**
```
精确匹配率: 100.00%
部分匹配率: 100.00%
正确数: 2/2
```
#### 6. GAIA最佳实践
```bash
python 06_gaia_best_practices.py
```
展示GAIA评估的最佳实践包括
- 分级评估
- 小样本快速测试
- 结果解读
#### 7. 数据生成完整评估流程
```bash
python 07_data_generation_complete_flow.py 30 3.0
```
参数说明:
- `30`生成30道题目
- `3.0`每道题目之间延迟3秒
这个示例展示了数据生成的完整评估流程:
1. 生成AIME题目
2. LLM Judge评估
3. Win Rate评估
4. 人工验证
**预期输出**
```
生成数量: 30道题目
LLM Judge平均分: 3.5/5.0
Win Rate: 45.0%
建议: 生成质量接近AIME真题水平
```
#### 8. LLM Judge评估
```bash
python 08_data_generation_llm_judge.py
```
展示如何使用LLM Judge评估生成的AIME题目质量。
**预期输出**
```
平均分:
正确性: 5.00/5
清晰度: 4.50/5
难度匹配: 4.00/5
完整性: 5.00/5
总体平均: 4.62/5
质量评估:
✅ 优秀 - 题目质量很高,可以直接使用
```
#### 9. Win Rate评估
```bash
python 09_data_generation_win_rate.py
```
展示如何使用Win Rate评估生成的AIME题目质量。
**预期输出**
```
Win Rate: 45.00%
Tie Rate: 10.00%
Loss Rate: 45.00%
质量评估:
✅ 优秀 - 生成质量接近AIME真题水平
```
## 📊 学习路径
### 初学者路径
1. **了解评估的必要性**
- 运行 `01_basic_agent_example.py`
2. **学习BFCL评估**
- 运行 `02_bfcl_quick_start.py`(快速开始)
- 运行 `04_run_bfcl_evaluation.py`(最佳实践)
3. **学习GAIA评估**
- 运行 `05_gaia_quick_start.py`(快速开始)
- 运行 `06_gaia_best_practices.py`(最佳实践)
### 进阶路径
1. **自定义评估流程**
- 运行 `03_bfcl_custom_evaluation.py`
2. **数据生成评估**
- 运行 `08_data_generation_llm_judge.py`LLM Judge
- 运行 `09_data_generation_win_rate.py`Win Rate
- 运行 `07_data_generation_complete_flow.py`(完整流程)
## 💡 常见问题
### Q1: 运行示例时提示找不到模块?
A: 请确保已安装HelloAgents框架
```bash
cd ../HelloAgents
pip install -e .
```
### Q2: BFCL评估提示找不到数据集
A: 首次运行会自动下载数据集,请确保网络连接正常。如果下载失败,可以手动下载:
```bash
cd ../HelloAgents
git clone https://github.com/ShishirPatil/gorilla.git temp_gorilla
```
### Q3: GAIA评估提示没有访问权限
A: GAIA是受限数据集需要先申请访问权限
1. 访问 https://huggingface.co/datasets/gaia-benchmark/GAIA
2. 点击"Request Access"
3. 等待审核通过
4. 设置HF_TOKEN环境变量
### Q4: 评估速度太慢?
A: 可以减少样本数量:
```python
# BFCL评估
results = bfcl_tool.run(agent, category="simple_python", max_samples=5)
# GAIA评估
results = gaia_tool.run(agent, level=1, max_samples=2)
# 数据生成评估
python 07_data_generation_complete_flow.py 10 3.0 # 只生成10道题目
```
### Q5: 如何估算评估成本?
A: 评估成本主要来自LLM API调用
**BFCL评估**
- 每个样本约1次API调用
- 成本约0.01-0.02元/样本
- 完整评估400样本约4-8元
**GAIA评估**
- 每个样本约1-5次API调用取决于任务复杂度
- 成本约0.05-0.20元/样本
- 完整评估466样本约23-93元
**数据生成评估**
- 生成约0.05元/题
- LLM Judge约0.02元/题
- Win Rate约0.02元/对比
- 生成30道题目约2-3元
## 📚 相关资源
- **HelloAgents框架**https://github.com/jjyaoao/HelloAgents
- **BFCL官方仓库**https://github.com/ShishirPatil/gorilla
- **GAIA官方仓库**https://huggingface.co/datasets/gaia-benchmark/GAIA
## 🤝 贡献
如果你发现示例代码有问题或有改进建议欢迎提交Issue或Pull Request。
## 📄 许可证
本示例代码遵循与HelloAgents框架相同的许可证。