feat(server): 完善 LLM 集成基础设施与规则配置

This commit is contained in:
2026-06-16 11:41:07 +08:00
parent fe2b569046
commit 66c0eb27c8
5 changed files with 207 additions and 8 deletions
+28
View File
@@ -11,8 +11,13 @@ import logging
from api import detection, models
from api.alerts import get_broadcaster
from api.rtsp import init_stream_manager
from api.llm import init_llm_api, router as llm_router
from api.rules import init_rules_api, router as rules_router
from core.settings import get_settings
from services.model_service import ModelService
from services.camera_service import CameraService
from services.llm_analysis_service import create_llm_service_from_settings
from services.llm_cost_tracker import init_global_tracker
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
@@ -74,6 +79,29 @@ async def lifespan(app: FastAPI):
app.include_router(rtsp_router, prefix="/api")
app.include_router(alerts_router, prefix="") # WebSocket 路径已带 /ws 前缀
# 初始化 LLM 集成 (MVP-3)
settings = get_settings()
llm_service = create_llm_service_from_settings(settings)
cost_tracker = init_global_tracker(
daily_budget_usd=settings.llm_cost.daily_budget_usd,
history_days=settings.llm_cost.history_days,
recent_window=settings.llm_cost.recent_window,
error_rate_threshold=settings.llm_cost.error_rate_threshold,
cooldown_seconds=settings.llm_cost.cooldown_seconds,
)
init_llm_api(llm_service, cost_tracker)
app.include_router(llm_router, prefix="/api")
logger.info(
"LLM 集成已加载: enabled=%s provider=%s",
settings.llm.enabled,
settings.llm.provider,
)
# 初始化规则配置 API (MVP-3 / D33),与 DetectionService 共享同一规则引擎
detection_service = detection.get_detection_service(model_service)
init_rules_api(lambda: detection_service.rule_engine)
app.include_router(rules_router, prefix="/api")
yield
# 关闭时清理资源