""" 配置管理模块 """ import os from pathlib import Path # 基础路径 BASE_DIR = Path(__file__).parent.absolute() DATA_DIR = BASE_DIR / "data" IMAGES_DIR = DATA_DIR / "images" DB_PATH = DATA_DIR / "events.db" # 确保目录存在 IMAGES_DIR.mkdir(parents=True, exist_ok=True) # Web 服务配置 WEB_PORT = 19016 WEB_HOST = "0.0.0.0" # 摄像头配置 CAMERA_INDEX = 0 # 默认摄像头 CAPTURE_INTERVAL = 60 # 拍照间隔(秒) # 大模型配置(用于图片分析) LLM_PROVIDER = "bailian" # bailian / openai / local LLM_API_URL = os.environ.get("VISION_API_URL", "https://dashscope.aliyuncs.com/compatible-mode/v1") LLM_API_KEY = os.environ.get("VISION_API_KEY", "sk-lm-fuP5tGU8:Hi7YU87jHyDP6Ay8Tl2j") LLM_MODEL = os.environ.get("VISION_MODEL", "qwen-vl-plus") # 视觉模型 # 分析配置 ANALYSIS_PROMPT = """请分析这张图片,识别其中的重要事件或变化。 重点关注: 1. 人物活动(有人出现、离开、动作等) 2. 物体变化(物品移动、新增、消失等) 3. 环境变化(光线、天气、状态等) 4. 异常情况(潜在危险、异常行为等) 请用简洁的中文描述你观察到的事件,格式如下: 事件类型: [类型] 描述: [简短描述] 置信度: [高/中/低] 如果没有明显事件,请回答"无明显事件"。 """ # 数据库配置 DB_SCHEMA = """ CREATE TABLE IF NOT EXISTS images ( id INTEGER PRIMARY KEY AUTOINCREMENT, path TEXT NOT NULL, timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, camera_id INTEGER DEFAULT 0, analyzed BOOLEAN DEFAULT 0 ); CREATE TABLE IF NOT EXISTS events ( id INTEGER PRIMARY KEY AUTOINCREMENT, image_id INTEGER NOT NULL, event_type TEXT, description TEXT, confidence TEXT, timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (image_id) REFERENCES images(id) ); CREATE INDEX IF NOT EXISTS idx_images_timestamp ON images(timestamp); CREATE INDEX IF NOT EXISTS idx_events_type ON events(event_type); """