feat(server): 完善 LLM 集成基础设施与规则配置
This commit is contained in:
@@ -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
|
||||
|
||||
# 关闭时清理资源
|
||||
|
||||
Reference in New Issue
Block a user