GeoBuildBench
收藏GeoBuildBench 数据集概述
基本信息
- 数据集名称: GeoBuildBench - Geometry Construction from Text
- 数据集地址: https://github.com/ooongs/GeoBuildBench
- 许可证: MIT License
数据集描述
GeoBuildBench是一个用于从文本描述生成几何构造的数据集及评估基准系统。该数据集结合了多模态大语言模型(LLM)和领域特定语言(DSL),旨在评估和提升LLM在几何问题求解任务上的表现。
主要功能
- 几何问题解析: 从文本中提取几何对象和验证条件
- DSL构造: 使用领域特定语言进行几何构造,支持算术和三角表达式(如
100*cos(45°)、50+30*sin(60°)) - 多模态LLM代理: 基于视觉语言模型的ReAct代理
- 基准测试系统: 评估LLM在几何任务上的性能
- 可视化: 基于matplotlib的交互式查看器
项目结构
pyggb/ ├── src/ # 核心源代码 │ ├── core/ # 几何基元和命令 │ ├── dsl/ # DSL执行器和验证器 │ ├── agent/ # ReAct代理实现 │ ├── benchmark/ # 基准数据集处理 │ ├── interfaces/ # LLM接口 │ ├── parser/ # 问题解析 │ ├── ggb/ # GeoGebra集成 │ └── utils.py # 路径工具 ├── scripts/ # 实用脚本 ├── prompts/ # 代理提示词 ├── data/ # 基准数据集 ├── run_agent_benchmark.py # 主执行脚本 ├── preview.py # 可视化工具 └── *.sh # Shell脚本
核心模块
几何类型 (src/core/geo_types.py)
- Point(点)、Line(线)、Segment(线段)
- Circle(圆)、Arc(弧)
- Polygon(多边形)、Triangle(三角形)
命令 (src/core/commands.py)
line_pp: 经过两点的线intersect_ll: 线-线交点circle_cr: 以中心和半径作圆- 其他更多构造命令
DSL执行器 (src/dsl/dsl_executor.py)
执行DSL代码并渲染构造,支持数学表达式,例如:
point : 0 0 -> O point : 100cos(0°) 100sin(0°) -> A polygon : A B C -> triangle
ReAct代理 (src/agent/react_agent.py)
多模态代理用于解决几何问题,支持视觉语言模型(如 GPT-4o)。
基准测试
- 单问题运行:
python run_agent_benchmark.py --problem-id 0 --model gpt-4o --verbose - 批量模式:
python run_agent_benchmark.py --batch --model gpt-4o --limit 10 - Shell脚本: 提供多模型对比、视觉模型基准测试、并行数据集创建等脚本
可视化工具
使用 python preview.py 启动交互式查看器,支持键盘导航和构造重新生成。

- 1GeoBuildBench: A Benchmark for Interactive and Executable Geometry Construction from Natural Language北京大学; 王选计算机研究所 · 2026年



