管理者ダッシュボード
アノテーションの進捗監視、アノテーター管理、リアルタイム設定変更。
Potato 2.0には、アノテーションの進捗監視、アノテーターのパフォーマンス追跡、タスク設定のリアルタイム管理を行うための包括的な管理者ダッシュボードが含まれています。
ダッシュボードへのアクセス
APIキー認証
設定で管理者APIキーを構成します:
admin_api_key: "your-secure-api-key-here"/adminにアクセスし、プロンプトが表示されたらAPIキーを入力します。
認証方法
- 直接ナビゲーション -
/adminにアクセスしてAPIキーを入力する - ヘッダーベース - リクエストに
X-API-Keyヘッダーを含める - デバッグモード -
debug: trueの場合、サーバー自身のマシンからのリクエストでは管理ページがキーなしで開く
デバッグモードで管理ページがキーなしで開くのは、サーバー自身のマシンからのリクエストに限られます。つまり、X-Forwarded-For、X-Real-IP、Forwardedのいずれのヘッダーも持たないループバックアドレスからのリクエストです。転送ヘッダーを付けないトンネルやリバースプロキシが同じマシン上にあると、すべてのアクセス元がローカルに見えてしまいます。そのため、デプロイ済みのサーバーでは決してdebugを設定しないでください。
# Development only
debug: true # Admin pages open without a key for requests from this machineダッシュボードタブ
概要タブ
アノテーションタスクの高レベルメトリクス:
- 総ユーザー数 - 登録されたアノテーターの数
- 総アノテーション数 - 完了したアノテーションの合計
- 完了率 - データのアノテーション済み割合
- アクティブセッション - 現在アクティブなアノテーター
- タスク設定 - 現在の設定概要
アノテータータブ
各アノテーターの詳細情報:
| 列 | 説明 |
|---|---|
| ユーザーID | アノテーター識別子 |
| フェーズ | 現在のワークフローフェーズ |
| アノテーション数 | 完了した数 |
| 作業時間 | 合計作業時間 |
| 速度 | 1時間あたりのアノテーション数 |
| 最終アクティビティ | 最新のアクション |
機能:
- 任意の列でソート
- フェーズまたはアクティビティでフィルタ
- アノテーターデータのエクスポート
- 個々のアノテーターの詳細表示
インスタンスタブ
アノテーションインスタンスの閲覧と管理:
| 列 | 説明 |
|---|---|
| ID | インスタンス識別子 |
| テキストプレビュー | 最初の100文字 |
| アノテーション数 | 受け取ったアノテーションの数 |
| 不一致度 | アノテーター間の不一致スコア |
| アノテーター | アノテーションしたユーザーのリスト |
機能:
- ページネーション(25、50、または100件ごと)
- アノテーション数、不一致度などでソート
- アノテーション数でフィルタ
- 完全なインスタンス詳細の表示
設定タブ
再起動なしでリアルタイムに設定を変更:
- ユーザーあたりの最大アノテーション数 - 各ユーザーがアノテーションできるアイテム数を制限
- アイテムあたりの最大アノテーション数 - インスタンスあたりの目標アノテーション数
- 割り当て戦略 - インスタンスがユーザーに割り当てられる方法
変更は即座に反映されます。
割り当て戦略
ダッシュボードからインスタンスの割り当て方法を設定する:
| 戦略 | 説明 |
|---|---|
random | ランダム割り当て |
ordered | 順次(最初から最後まで) |
least_annotated | アノテーションが最も少ないアイテムを優先 |
max_diversity | アイテムあたりのアノテーターの多様性を最大化 |
active_learning | 不確実性に基づく優先順位付け |
llm_based | LLM駆動の割り当て |
タイミング分析
ダッシュボードは詳細なタイミングデータを追跡します:
- 合計作業時間 - すべてのアノテーションセッションの合計
- アノテーションあたりの平均時間 - アイテムあたりの平均時間
- 1時間あたりのアノテーション数 - スループット率
- セッション時間 - ログインセッションあたりの時間
タイミングデータは行動トラッキングとページインタラクションイベントから導出されます。
設定
基本設定
# Enable admin dashboard
admin_api_key: "your-secure-api-key"完全な設定
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: 3APIエンドポイント
管理者ダッシュボードはREST APIエンドポイントで動作します:
統計
GET /api/admin/stats
タスク全体の統計情報を返します。
アノテーター
GET /api/admin/annotators
GET /api/admin/annotators/{user_id}
すべてのアノテーターを一覧表示するか、特定のユーザーの詳細を取得します。
インスタンス
GET /api/admin/instances
GET /api/admin/instances/{instance_id}
ページネーションとフィルタリング付きでインスタンスを一覧表示します。
設定
GET /api/admin/config
POST /api/admin/config
タスク設定の取得または更新。
トレーニング進捗
GET /api/admin/training/stats
GET /api/admin/training/user/{user_id}
トレーニングフェーズの統計とユーザーごとの進捗。
能動学習
GET /api/admin/active-learning/status
GET /api/admin/active-learning/metrics
能動学習モデルのステータスとパフォーマンスメトリクス。
監視機能
不審なアクティビティの検出
ダッシュボードは潜在的に問題のある行動をフラグできます:
- 非常に速いアノテーション速度
- 異常なセッションパターン
- 一貫した回答パターン
- 欠落したアノテーション
品質メトリクス
アノテーション品質の指標を追跡:
- アノテーター間の一致度
- アノテーションあたりの時間分布
- ラベル分布のバランス
- トレーニングフェーズのパフォーマンス
セキュリティのベストプラクティス
APIキー管理
# Use environment variables
admin_api_key: ${ADMIN_API_KEY}export ADMIN_API_KEY="your-secure-key"アクセス制御
- 強力でユニークなAPIキーを使用する
- 定期的にキーをローテーションする
- 管理者エンドポイントを公開しない
- 本番ではHTTPSを使用する
監査ログ
ダッシュボードは管理者のアクションを追跡します:
- 設定変更
- ユーザー管理アクション
- データエクスポート
- アクセス試行
設定例
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パフォーマンスに関する考慮事項
大規模データセット
数千のインスタンスを持つデータセットの場合:
- ページネーションを使用する(インスタンスタブ)
- 遅延読み込みを有効にする
- パフォーマンス向上のためにデータベースバックエンドを検討する
多数のアノテーター
多くの同時アノテーターがいるタスクの場合:
- 適切なリフレッシュ間隔を設定する
- サーバーリソースを監視する
- スケーラビリティのためにデータベースバックエンドを使用する
# For large-scale deployments
database:
type: mysql
host: localhost
database: potato_db
username: ${DB_USER}
password: ${DB_PASSWORD}トラブルシューティング
ダッシュボードにアクセスできない
- 設定でAPIキーが設定されていることを確認する
- URLが
/adminであることを確認する - APIキーが正確に一致していることを確認する
- 設定にタイプミスがないか確認する
ダッシュボードの読み込みが遅い
- ページサイズを小さくする
- リフレッシュ間隔を長くする
- データベースバックエンドを検討する
- サーバーリソースを確認する
統計が更新されない
- 自動更新が有効になっていることを確認する
- リフレッシュ間隔の設定を確認する
- ページを手動でリフレッシュする
- JavaScriptエラーを確認する
関連情報
実装の詳細については、ソースドキュメントを参照してください。