Skip to content

管理仪表板

实时监控标注进度、管理标注者和配置设置。

管理仪表板

Potato 2.0 包含一个综合管理仪表板,用于监控标注进度、跟踪标注者表现以及实时管理任务配置。

访问仪表板

API 密钥认证

在配置中设置管理员 API 密钥:

yaml
admin_api_key: "your-secure-api-key-here"

通过 /admin 访问仪表板,并在提示时输入您的 API 密钥。

认证方式

  1. 直接导航 - 前往 /admin 并输入 API 密钥
  2. 基于标头 - 在请求中包含 X-API-Key 标头
  3. 调试模式 - 设置 debug: true 用于开发(不建议用于生产环境)
yaml
# Development only
debug: true  # Bypasses authentication

仪表板标签页

概览标签页

标注任务的高层指标:

  • 总用户数 - 已注册标注者数量
  • 总标注数 - 已完成的标注总数
  • 完成率 - 数据标注完成百分比
  • 活跃会话 - 当前活跃的标注者
  • 任务配置 - 当前设置摘要

标注者标签页

每个标注者的详细信息:

描述
用户 ID标注者标识符
阶段当前工作流阶段
标注数已完成数量
工作时间总花费时间
速度每小时标注数
最后活动最近的操作

功能:

  • 按任意列排序
  • 按阶段或活动筛选
  • 导出标注者数据
  • 查看单个标注者详情

实例标签页

浏览和管理标注实例:

描述
ID实例标识符
文本预览前 100 个字符
标注数已接收的标注数
分歧度标注者间分歧评分
标注者标注用户列表

功能:

  • 分页(每页 25、50 或 100 条)
  • 按标注数、分歧度等排序
  • 按标注数量筛选
  • 查看完整实例详情

配置标签页

实时修改设置,无需重启:

  • 每用户最大标注数 - 限制每个用户可标注的项目数
  • 每项最大标注数 - 每个实例的目标标注数
  • 分配策略 - 实例如何分配给用户

更改立即生效。

分配策略

从仪表板配置实例分配方式:

策略描述
random随机分配
ordered顺序(从头到尾)
least_annotated优先选择标注最少的项目
max_diversity最大化每项的标注者多样性
active_learning基于不确定性的优先排序
llm_basedLLM 驱动的分配

时间分析

仪表板跟踪详细的时间数据:

  • 总工作时间 - 所有标注会话的总和
  • 平均每条标注时间 - 每项的平均时间
  • 每小时标注数 - 吞吐率
  • 会话时长 - 每次登录会话的时间

时间数据来源于行为跟踪和页面交互事件。

配置

基本设置

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: 50

API 端点

管理仪表板由 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 错误

延伸阅读

有关实现细节,请参阅源文档