feat: HSAP platform v2 — modular navigation, quality review, audit log, world model simulation
Major changes: - New frontend (platform/web/): Vite + React 18 + TypeScript + Tailwind - 4-module navigation: 数据送标 / 模型管理 / 车队管理 / 系统管理 - Data catalog with charts (DMS/ADAS/Lane 3-tab view) - Quality review workflow (标注质检): Good/Fine/Bad scoring with auto-advance - Audit enhancements: batch operations, rejection categories, Feishu notifications - Operation audit log (操作日志) - World model simulation studio (仿真工坊) - Dataset version management with snapshots and diff - ADAS 7-class dataset integration (138K images organized + compressed) - User management with Feishu integration and pagination - CRUD/search/filter on all pages, card layout redesign - PIL-optimized image overlay rendering - Auto-snapshot on build, in_review workflow stage - Removed embedded algorithm code (now in workspace)
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
||||
|
||||
__version__ = "8.4.9"
|
||||
|
||||
import importlib
|
||||
import os
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
# Set ENV variables (place before imports)
|
||||
if not os.environ.get("OMP_NUM_THREADS"):
|
||||
os.environ["OMP_NUM_THREADS"] = "1" # default for reduced CPU utilization during training
|
||||
|
||||
from ultralytics.utils import ASSETS, SETTINGS
|
||||
from ultralytics.utils.checks import check_yolo as checks
|
||||
from ultralytics.utils.downloads import download
|
||||
|
||||
settings = SETTINGS
|
||||
|
||||
MODELS = ("YOLO", "YOLOWorld", "YOLOE", "NAS", "SAM", "FastSAM", "RTDETR")
|
||||
|
||||
__all__ = (
|
||||
"__version__",
|
||||
"ASSETS",
|
||||
*MODELS,
|
||||
"checks",
|
||||
"download",
|
||||
"settings",
|
||||
)
|
||||
|
||||
if TYPE_CHECKING:
|
||||
# Enable hints for type checkers
|
||||
from ultralytics.models import YOLO, YOLOWorld, YOLOE, NAS, SAM, FastSAM, RTDETR # noqa
|
||||
|
||||
|
||||
def __getattr__(name: str):
|
||||
"""Lazy-import model classes on first access."""
|
||||
if name in MODELS:
|
||||
return getattr(importlib.import_module("ultralytics.models"), name)
|
||||
raise AttributeError(f"module {__name__} has no attribute {name}")
|
||||
|
||||
|
||||
def __dir__():
|
||||
"""Extend dir() to include lazily available model names for IDE autocompletion."""
|
||||
return sorted(set(globals()) | set(MODELS))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
print(__version__)
|
||||
Reference in New Issue
Block a user