events/standings 创建 Team 前均经 team_names.normalize(已有,确认), TeamRepository.get_or_create 收敛为归一化唯一咽喉 + info 日志。 新增 team_aliases 表(NFKD 归一别名 → teams.id FK CASCADE), 定位三步链:normalize(name) → teams.name → team_aliases → insert。 不自动合并历史重复队;提供 POST /api/v1/admin/teams/aliases 显式添加。 迁移 0020_team_aliases + Admin 别名管理端点(admin_teams.py)。 全量测试 270 通过。
30 lines
1.3 KiB
Python
30 lines
1.3 KiB
Python
"""后台管理路由聚合入口:按职责拆分为四个子模块,统一挂载。
|
|
|
|
所有路由仍挂在 /api/v1/admin,且均带 dependencies=[Depends(require_admin)]
|
|
(鉴权由各子路由器声明,行为与拆分前完全一致)。
|
|
|
|
子模块:
|
|
- admin_datasources 数据源列表/连通性测试、KeyRing、采集健康概览
|
|
- admin_config settings CRUD、运行日志
|
|
- admin_llm LLM agents/models/ping
|
|
- admin_quality stats、data-completeness、data-quality
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter
|
|
|
|
from src.api.routes.admin_config import router as admin_config_router
|
|
from src.api.routes.admin_datasources import router as admin_datasources_router
|
|
from src.api.routes.admin_ingest_jobs import router as admin_ingest_jobs_router
|
|
from src.api.routes.admin_llm import router as admin_llm_router
|
|
from src.api.routes.admin_quality import router as admin_quality_router
|
|
from src.api.routes.admin_teams import router as admin_teams_router
|
|
|
|
router = APIRouter()
|
|
router.include_router(admin_datasources_router)
|
|
router.include_router(admin_config_router)
|
|
router.include_router(admin_ingest_jobs_router)
|
|
router.include_router(admin_llm_router)
|
|
router.include_router(admin_quality_router)
|
|
router.include_router(admin_teams_router)
|