from sqlalchemy import Column, String, Text, DateTime, Index, Enum as SQLEnum from app.models.base import BaseModel import enum class LogLevel(str, enum.Enum): DEBUG = "debug" INFO = "info" WARNING = "warning" ERROR = "error" class LogType(str, enum.Enum): AGENT = "agent" # 智能体调用 SYSTEM = "system" # 系统运行 CHAT = "chat" # 问答对话 class Log(BaseModel): __tablename__ = "logs" level = Column(String(20), default=LogLevel.INFO.value, index=True) # debug/info/warning/error type = Column(String(20), default=LogType.SYSTEM.value, index=True) # agent/system/chat user_id = Column(String(36), nullable=True, index=True) # 关联用户 message = Column(Text, nullable=False) # 日志内容 details = Column(Text, nullable=True) # 详细信息(JSON) source = Column(String(100), nullable=True) # 来源模块 duration_ms = Column(String(20), nullable=True) # 执行耗时 __table_args__ = ( Index('idx_logs_type_level', 'type', 'level'), Index('idx_logs_created_at', 'created_at'), )