管理仪表板
实时监控标注进度、管理标注者和配置设置。
管理仪表板
Potato 2.0 包含一个综合管理仪表板,用于监控标注进度、跟踪标注者表现以及实时管理任务配置。
访问仪表板
API 密钥认证
在配置中设置管理员 API 密钥:
yaml
admin_api_key: "your-secure-api-key-here"通过 /admin 访问仪表板,并在提示时输入您的 API 密钥。
认证方式
- 直接导航 - 前往
/admin并输入 API 密钥 - 基于标头 - 在请求中包含
X-API-Key标头 - 调试模式 - 设置
debug: true用于开发(不建议用于生产环境)
yaml
# Development only
debug: true # Bypasses authentication仪表板标签页
概览标签页
标注任务的高层指标:
- 总用户数 - 已注册标注者数量
- 总标注数 - 已完成的标注总数
- 完成率 - 数据标注完成百分比
- 活跃会话 - 当前活跃的标注者
- 任务配置 - 当前设置摘要
标注者标签页
每个标注者的详细信息:
| 列 | 描述 |
|---|---|
| 用户 ID | 标注者标识符 |
| 阶段 | 当前工作流阶段 |
| 标注数 | 已完成数量 |
| 工作时间 | 总花费时间 |
| 速度 | 每小时标注数 |
| 最后活动 | 最近的操作 |
功能:
- 按任意列排序
- 按阶段或活动筛选
- 导出标注者数据
- 查看单个标注者详情
实例标签页
浏览和管理标注实例:
| 列 | 描述 |
|---|---|
| ID | 实例标识符 |
| 文本预览 | 前 100 个字符 |
| 标注数 | 已接收的标注数 |
| 分歧度 | 标注者间分歧评分 |
| 标注者 | 标注用户列表 |
功能:
- 分页(每页 25、50 或 100 条)
- 按标注数、分歧度等排序
- 按标注数量筛选
- 查看完整实例详情
配置标签页
实时修改设置,无需重启:
- 每用户最大标注数 - 限制每个用户可标注的项目数
- 每项最大标注数 - 每个实例的目标标注数
- 分配策略 - 实例如何分配给用户
更改立即生效。
分配策略
从仪表板配置实例分配方式:
| 策略 | 描述 |
|---|---|
random | 随机分配 |
ordered | 顺序(从头到尾) |
least_annotated | 优先选择标注最少的项目 |
max_diversity | 最大化每项的标注者多样性 |
active_learning | 基于不确定性的优先排序 |
llm_based | LLM 驱动的分配 |
时间分析
仪表板跟踪详细的时间数据:
- 总工作时间 - 所有标注会话的总和
- 平均每条标注时间 - 每项的平均时间
- 每小时标注数 - 吞吐率
- 会话时长 - 每次登录会话的时间
时间数据来源于行为跟踪和页面交互事件。
配置
基本设置
yaml
# Enable admin dashboard
admin_api_key: "your-secure-api-key"
# Optional: customize admin settings
admin:
session_timeout: 3600 # seconds
max_export_size: 10000 # rows完整配置
yaml
admin_api_key: "your-secure-api-key"
admin:
# Session settings
session_timeout: 3600
# Export limits
max_export_size: 10000
# Dashboard refresh
auto_refresh: true
refresh_interval: 30 # seconds
# Pagination defaults
default_page_size: 50API 端点
管理仪表板由 REST API 端点驱动:
统计
text
GET /api/admin/stats
返回整体任务统计信息。
标注者
text
GET /api/admin/annotators
GET /api/admin/annotators/{user_id}
列出所有标注者或获取特定用户的详情。
实例
text
GET /api/admin/instances
GET /api/admin/instances/{instance_id}
列出实例,支持分页和筛选。
配置
text
GET /api/admin/config
POST /api/admin/config
获取或更新任务配置。
训练进度
text
GET /api/admin/training/stats
GET /api/admin/training/user/{user_id}
训练阶段统计和每用户进度。
主动学习
text
GET /api/admin/active-learning/status
GET /api/admin/active-learning/metrics
主动学习模型状态和性能指标。
监控功能
可疑活动检测
仪表板可以标记潜在的问题行为:
- 非常快的标注速度
- 异常的会话模式
- 一致的答案模式
- 缺失的标注
质量指标
跟踪标注质量指标:
- 标注者间一致性
- 每条标注时间分布
- 标签分布平衡
- 训练阶段表现
安全最佳实践
API 密钥管理
yaml
# Use environment variables
admin_api_key: ${ADMIN_API_KEY}bash
export ADMIN_API_KEY="your-secure-key"访问控制
- 使用强大、唯一的 API 密钥
- 定期轮换密钥
- 不要公开暴露管理端点
- 在生产环境中使用 HTTPS
审计日志
仪表板跟踪管理员操作:
- 配置更改
- 用户管理操作
- 数据导出
- 访问尝试
配置示例
yaml
task_name: "Sentiment Analysis"
task_dir: "."
port: 8000
# Admin dashboard
admin_api_key: ${ADMIN_API_KEY}
admin:
session_timeout: 7200
auto_refresh: true
refresh_interval: 60
default_page_size: 50
# Data and annotation configuration
data_files:
- "data/reviews.json"
item_properties:
id_key: id
text_key: text
annotation_schemes:
- annotation_type: radio
name: sentiment
labels:
- Positive
- Negative
- Neutral
# Assignment settings (editable from dashboard)
assignment:
strategy: least_annotated
max_annotations_per_user: 100
max_annotations_per_item: 3
output_annotation_dir: "output/"
output_annotation_format: "json"
allow_all_users: true性能考虑
大型数据集
对于包含数千个实例的数据集:
- 使用分页(实例标签页)
- 启用延迟加载
- 考虑使用数据库后端以获得更好的性能
多标注者
对于有多个并发标注者的任务:
- 设置合适的刷新间隔
- 监控服务器资源
- 使用数据库后端以提高可扩展性
yaml
# For large-scale deployments
database:
type: mysql
host: localhost
database: potato_db
user: ${DB_USER}
password: ${DB_PASSWORD}故障排除
无法访问仪表板
- 验证配置中已设置 API 密钥
- 检查 URL 是否为
/admin - 确保 API 密钥完全匹配
- 检查配置中是否有拼写错误
仪表板加载缓慢
- 减少页面大小
- 增加刷新间隔
- 考虑使用数据库后端
- 检查服务器资源
统计未更新
- 验证自动刷新已启用
- 检查刷新间隔设置
- 手动刷新页面
- 检查 JavaScript 错误
延伸阅读
有关实现细节,请参阅源文档。