本文档介绍了 gpt-engineer 中的测试和基准测试系统。它涵盖了如何运行测试、如何使用基准测试工具评估模型性能以及如何扩展测试和基准测试套件。
有关 gpt-engineer 自身架构的信息,请参阅 系统架构。
gpt-engineer 使用 pytest 进行单元测试和集成测试。测试组织结构与主代码库相对应。
来源
运行所有测试
运行特定测试文件
运行带有详细输出的测试
测试套件包含多种测试类别
SimpleAgent)的测试(tests/core/default/test_simple_agent.py)The MockAI 类(tests/mock_ai.py)在测试期间提供了 AI 接口的替代方案,允许在不实际调用语言模型 API 的情况下运行测试。它会为特定提示返回预先确定的响应。
来源
gpt-engineer 中的基准测试系统提供了一种在标准化任务上评估不同 Agent 实现性能的方法。它旨在衡量代码生成的质量、正确性和其他指标。
来源
来源
gpt-engineer 目前包含以下基准测试
GPT-Me:一组专门用于测试 gpt-engineer 功能的小型、集中的任务。例如,修改“Hello World”程序。
APPS:基于 APPS 数据集的基准测试,该数据集包含具有输入和预期输出的编程问题。
MBPP:基于 MBPP 数据集的一组基本编程问题,并附带测试用例以验证正确性。
来源
基准测试系统使用 bench 命令运行。基本用法模式是:
其中
path_to_agent 是一个 Python 文件的路径,该文件包含一个名为 default_config_agent 的函数。bench_config 是 TOML 配置文件(默认为 default_bench_config.toml)的路径。例如
选项包括:
--yaml-output:输出 YAML 格式结果的路径。--verbose:为每个单独的任务打印结果。--use-cache:启用 LLM 响应缓存以节省 token(默认:true)。来源
基准测试通过 TOML 文件进行配置。这是一个示例配置:
此配置激活了所有基准测试,并且每个基准测试都有少量测试用例。
来源
当基准测试运行完成后,它会输出性能统计数据。
--- Results ---
Total time: 123.45s
Completely correct tasks: 3/5
Total correct assertions: 8/12
Average success rate: 60.0% on 5 tasks
--- Results ---
关键指标是:
来源
每个基准测试任务都经过以下过程:
断言因基准测试类型而异:
来源
要创建一个新的基准测试,请执行以下操作:
gpt_engineer/benchmark/benchmarks/ 中创建一个新模块。Benchmark 对象的 load 函数。benchmarks/load.py 中将您的基准测试添加到 BENCHMARKS 字典中。每个任务应包含:
来源
基准测试系统独立于主 CLI 应用程序,但与之互补。主 CLI 专注于交互式生成和改进代码,而基准测试系统则用于评估和比较 Agent 实现。
对于不进行正式基准测试的单个项目测试,您可以使用 CLI 的内置执行功能,并带有 --no-execution 标志在需要时跳过执行。
来源
gpt-engineer 还包含一些旧的基准测试脚本,以供参考。
scripts/legacy_benchmark.py:一个用于运行基准测试的旧系统。scripts/clean_benchmarks.py:一个用于清理基准测试目录的实用程序。scripts/print_chat.py:一个用于可视化对话日志的实用程序。这些不是主要基准测试系统的一部分,但在特定场景下可能有用。
来源