Skip to content

数据流

每张序列图配套关键代码路径——点 GitHub 或 IDE 跳转直达函数。

标注一条任务的完整链路

代码索引:

  • 取下一题:apps/api/app/api/v1/tasks.py (get_next_task / next_smart 端点)
  • 任务锁:apps/api/app/services/task_lock.py:acquire/heartbeat/release
  • 提交:apps/api/app/api/v1/tasks.py:submit_task
  • 审计:apps/api/app/services/audit.py:AuditAction.TASK_SUBMIT
  • 通知:apps/api/app/services/notification.py:NotificationService.notify
  • presigned URL:apps/api/app/services/storage.py

AI 预标注

代码索引:

  • 触发端点:apps/api/app/api/v1/projects.pyml_backends.py
  • ML client:apps/api/app/services/ml_client.py:predict (ml_client.py:41-62)
  • ML 协议契约:docs-site/dev/ml-backend-protocol.md
  • Worker:apps/api/app/workers/tasks.py:batch_predict
  • WS 频道:apps/api/app/api/v1/ws.py:preannotate_progress (ws.py:48-67)
  • WS 协议:docs-site/dev/ws-protocol.md

数据导出

代码索引:

  • 端点:apps/api/app/api/v1/projects.py (导出/列表/下载)
  • 审计:v0.7.8 起所有导出写 AuditAction.PROJECT_EXPORT / BATCH_EXPORT
  • Worker:apps/api/app/workers/tasks.py(export_project 任务)
  • 格式适配:apps/api/app/services/export/

实时通知

服务端 push 主要事件:

  • 任务被分配 / 被回退(type=task.assigned / task.review_rejected
  • AI 预标注完成(type=ai.preannotate_done
  • 导出完成(type=export.completed
  • 评论 @ 提及(type=comment.mention

代码索引:

  • WS 端点:apps/api/app/api/v1/ws.py (ws.py:70-114)
  • 通知服务:apps/api/app/services/notification.py:NotificationService.notify (notification.py:51-94)
  • 通知模型:apps/api/app/db/models/notification.py
  • 前端 hook:apps/web/src/hooks/useNotificationSocket.ts
  • 重连基础:apps/web/src/hooks/useReconnectingWebSocket.ts
  • WS 协议详细:docs-site/dev/ws-protocol.md

Released under the MIT License.