| --- |
| title: Chart QA Review System |
| emoji: 📊 |
| colorFrom: blue |
| colorTo: purple |
| sdk: gradio |
| sdk_version: "5.9.1" |
| python_version: "3.10" |
| app_file: app.py |
| pinned: false |
| --- |
| |
| # 📊 图表问答数据集审核系统 |
|
|
| 一个基于 Gradio 的人工审核系统,用于审核图表问答数据集中的问题和答案是否合理正确。 |
|
|
| ## 功能特点 |
|
|
| - 📊 **图表展示**:支持 HTML 格式的交互式图表展示 |
| - 📁 **目录导航**:按 Source → Chart Type → Chart → Model 层级浏览 |
| - ✅ **审核操作**:支持正确、错误、需修改、待定四种状态 |
| - ✏️ **内容编辑**:可修改问题和答案,添加评论备注 |
| - 📈 **统计面板**:实时显示审核进度和统计信息 |
| - 📥 **数据导出**:一键导出审核记录为 JSON 格式 |
| - ⌨️ **快捷键**:支持键盘导航和状态选择 |
|
|
| ## 目录结构 |
|
|
| ``` |
| project/ |
| ├── app.py # 主应用 |
| ├── data_manager.py # 数据管理模块 |
| ├── requirements.txt # 依赖列表 |
| │ |
| ├── dataset/ # 数据集目录(需要自行放置) |
| │ ├── web/ # 图表 HTML 文件 |
| │ │ └── {source}/ |
| │ │ └── {chart_type}/ |
| │ │ └── *.html |
| │ ├── label/ # 图表标签信息 |
| │ │ └── {source}/ |
| │ │ └── {chart_type}/ |
| │ │ └── *.json |
| │ └── question_answer/ # QA 数据 |
| │ └── {source}/ |
| │ └── {chart_type}/ |
| │ └── {model}/ |
| │ └── *.json |
| │ |
| └── reviews/ # 审核记录(自动创建) |
| └── reviews.json |
| ``` |
|
|
| ## 数据格式 |
|
|
| ### Label JSON 格式 |
| ```json |
| { |
| "Number": "0001", |
| "Type": "bar", |
| "Source": "Apache Echarts", |
| "Weblink": "https://example.com/chart", |
| "Topic": "Weather Statistics by City", |
| "Describe": "The chart compares...", |
| "Other": "" |
| } |
| ``` |
|
|
| ### QA JSON 格式 |
| ```json |
| { |
| "id": "chart_0001_bar_q1", |
| "chart": "chart_0001_bar", |
| "question": "Weather Statistics图表中,三个城市在Showers天气下的总天数是多少?", |
| "answer": "203" |
| } |
| ``` |
|
|
| ### 审核记录格式 |
| ```json |
| { |
| "review_id": "uuid", |
| "chart_id": "chart_0001_bar", |
| "qa_id": "chart_0001_bar_q1", |
| "source": "Apache Echarts", |
| "chart_type": "bar", |
| "model": "gpt-4", |
| "original_question": "...", |
| "original_answer": "...", |
| "status": "correct", |
| "modified_question": "", |
| "modified_answer": "", |
| "issue_type": "", |
| "comment": "", |
| "reviewer": "default", |
| "review_time": "2024-01-01T00:00:00" |
| } |
| ``` |
|
|
| ## 快速开始 |
|
|
| ### 1. 安装依赖 |
|
|
| ```bash |
| pip install -r requirements.txt |
| ``` |
|
|
| ### 2. 准备数据集 |
|
|
| 将你的数据集放置到 `dataset/` 目录下,按照上述目录结构组织。 |
|
|
| ### 3. 启动应用 |
|
|
| ```bash |
| python app.py |
| ``` |
|
|
| 应用将在 `http://localhost:7860` 启动。 |
|
|
| ## 快捷键 |
|
|
| | 按键 | 功能 | |
| |------|------| |
| | ← | 上一个图表 | |
| | → | 下一个图表 | |
| | 1 | 标记为正确 | |
| | 2 | 标记为错误 | |
| | 3 | 标记为需修改 | |
| | 4 | 标记为待定 | |
|
|
| ## 部署到 Hugging Face Spaces |
|
|
| ### 方法 1:通过网页界面上传 |
|
|
| 1. 在 Hugging Face 创建一个新的 Space |
| 2. 上传所有文件:`app.py`、`data_manager.py`、`requirements.txt`、`README.md` |
| 3. 在 Files 标签页创建 `dataset/` 目录结构 |
| 4. 上传你的数据集文件 |
|
|
| ### 方法 2:通过 Git 推送 |
|
|
| ```bash |
| # 克隆 Space |
| git clone https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME |
| cd YOUR_SPACE_NAME |
| |
| # 复制项目文件 |
| cp /path/to/app.py . |
| cp /path/to/data_manager.py . |
| cp /path/to/requirements.txt . |
| cp /path/to/README.md . |
| |
| # 创建数据集目录并上传数据 |
| mkdir -p dataset/web dataset/label dataset/question_answer |
| |
| # 提交并推送 |
| git add . |
| git commit -m "Initial commit" |
| git push |
| ``` |
|
|
| ## 注意事项 |
|
|
| - 免费版 Spaces 有存储限制 |
| - Spaces 重启后审核记录会丢失,请定期导出 |
| - 大数据集建议使用 Hugging Face Datasets 存储 |
|
|
| ## 许可证 |
|
|
| MIT License |