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 後,來自伺服器本機的請求無需金鑰即可開啟管理頁面

除錯模式只對來自伺服器本機的請求免金鑰開放管理頁面,即來自迴環地址、且不帶 X-Forwarded-For、X-Real-IP 或 Forwarded 標頭的請求。同一臺機器上不新增轉發標頭的隧道或反向代理會讓每個呼叫方看起來都來自本機,因此切勿在已部署的伺服器上開啟 debug:

yaml
# Development only
debug: true  # Admin pages open without a key for requests from this machine

儀表板標籤頁

概覽標籤頁

標註任務的高層指標:

  • 總使用者數 - 已註冊標註者數量
  • 總標註數 - 已完成的標註總數
  • 完成率 - 資料標註完成百分比
  • 活躍會話 - 當前活躍的標註者
  • 任務配置 - 當前設定摘要

標註者標籤頁

每個標註者的詳細資訊:

列描述
使用者 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"

完整配置

yaml
admin_api_key: "your-secure-api-key"
 
# How long a session may sit idle before the server clears it.
# The clock restarts on every request, so it bounds inactivity,
# not the length of a shift. Default 480.
session_timeout_minutes: 480
 
# Editable from the Configuration tab while the server runs
assignment_strategy: least_annotated
max_annotations_per_user: 100
max_annotations_per_item: 3

API 端點

管理儀表板由 REST API 端點驅動:

統計

text
GET /admin/api/overview

返回整體任務統計資訊。

標註者

text
GET /admin/api/annotators
GET /admin/user_state/<user_id>

列出所有標註者或獲取特定使用者的詳情。

實例

text
GET /admin/api/instances?page=1&page_size=25&sort_by=annotation_count&sort_order=desc&filter_completion=
GET /admin/item_state/<item_id>

列出實例,支援分頁和篩選。

配置

text
GET /admin/api/config
POST /admin/api/config

獲取或更新任務配置。

訓練進度

text
GET /admin/training/api/status
GET /admin/training/api/runs
GET /admin/training/api/runs/<run_id>

訓練階段統計和每使用者進度。

主動學習

text
GET /admin/active-learning/stats

主動學習模型狀態和效能指標。

監控功能

可疑活動檢測

儀表板可以標記潛在的問題行為:

  • 非常快的標註速度
  • 異常的會話模式
  • 一致的答案模式
  • 缺失的標註

品質指標

跟蹤標註品質指標:

  • 標註者間一致性
  • 每條標註時間分佈
  • 標籤分佈平衡
  • 訓練階段表現

安全最佳實踐

API 金鑰管理

yaml
# Use environment variables
admin_api_key: ${ADMIN_API_KEY}
bash
export ADMIN_API_KEY="your-secure-key"

訪問控制

  • 使用強大、唯一的 API 金鑰
  • 定期輪換金鑰
  • 不要公開暴露管理端點
  • 在生產環境中使用 HTTPS

審計日誌

儀表板跟蹤管理員操作:

  • 配置更改
  • 使用者管理操作
  • 資料匯出
  • 訪問嘗試

配置示例

yaml
annotation_task_name: "Sentiment Analysis"
task_dir: "."
port: 8000
 
# Admin dashboard
admin_api_key: ${ADMIN_API_KEY}
session_timeout_minutes: 480
 
# Data and annotation configuration
data_files:
  - "data/reviews.json"
 
item_properties:
  id_key: id
  text_key: text
 
annotation_schemes:
  - annotation_type: radio
    name: sentiment
    description: "How does this review read?"
    labels:
      - Positive
      - Negative
      - Neutral
 
# Assignment settings (editable from the Configuration tab)
assignment_strategy: least_annotated
max_annotations_per_user: 100
max_annotations_per_item: 3
 
output_annotation_dir: "output/"
export_annotation_format: jsonl
 
user_config:
  allow_all_users: true

效能考慮

大型資料集

對於包含數千個實例的資料集:

  • 使用分頁(實例標籤頁)
  • 啟用延遲載入
  • 考慮使用資料庫後端以獲得更好的效能

多標註者

對於有多個併發標註者的任務:

  • 設定合適的重新整理間隔
  • 監控伺服器資源
  • 使用資料庫後端以提高可擴充套件性
yaml
# For large-scale deployments
database:
  type: mysql
  host: localhost
  database: potato_db
  username: ${DB_USER}
  password: ${DB_PASSWORD}

故障排除

無法訪問儀表板

  • 驗證配置中已設定 API 金鑰
  • 檢查 URL 是否為 /admin
  • 確保 API 金鑰完全匹配
  • 檢查配置中是否有拼寫錯誤

儀表板載入緩慢

  • 減少頁面大小
  • 增加重新整理間隔
  • 考慮使用資料庫後端
  • 檢查伺服器資源

統計未更新

  • 驗證自動重新整理已啟用
  • 檢查重新整理間隔設定
  • 手動重新整理頁面
  • 檢查 JavaScript 錯誤

延伸閱讀

有關實現細節,請參閱源文件。