feat(multimodal): 完成阶段F运行管理与收尾验收

This commit is contained in:
2026-09-05 02:02:45 +08:00
parent 510936431a
commit 6ee6cd7d73
33 changed files with 1180 additions and 86 deletions
+18 -3
View File
@@ -1,15 +1,30 @@
import asyncio
from fastapi import APIRouter
from app.services import model_diagnostics
from app.local_models import manager
from app.local_models.runtime import RuntimeConfig, configuration, configure, interpreter, runtime
router = APIRouter(prefix="/api/local-models", tags=["Local models"])
@router.get("/runtime-components/cuda")
async def cuda_status():
from app.local_models import components
return await components.status()
@router.post("/runtime-components/cuda", status_code=202)
async def install_cuda():
from app.local_models import components
return await components.install()
@router.get("")
async def list_models():
return {**manager.describe(), "runtime_installed": interpreter().is_file(), "config": configuration(),
items, diagnostics = await asyncio.gather(asyncio.to_thread(manager.describe), asyncio.to_thread(model_diagnostics.recent))
return {**items, "runtime_installed": interpreter().is_file(), "config": configuration(),
"active_models": list(runtime.active.values()), "queued_requests": len(runtime.waiters),
"last_inference": runtime.diagnostics[-1] if runtime.diagnostics else None}
"last_inference": diagnostics[-1] if diagnostics else None}
@router.put("/config")
@@ -34,5 +49,5 @@ async def delete(key: str):
@router.get("/diagnostics")
async def diagnostics():
return {"items": runtime.diagnostics, "config": configuration(), "scope": "current_process",
return {"items": await asyncio.to_thread(model_diagnostics.recent), "config": configuration(), "scope": "application_last_200_attempts",
"contains": "model_revision_device_timing_resources_only"}