""" 系统配置模块 """ from pydantic_settings import BaseSettings from typing import Optional import os class Settings(BaseSettings): """应用配置""" # 应用基础配置 APP_NAME: str = "会会虚拟用户 AI 互动系统" APP_VERSION: str = "1.0.0" DEBUG: bool = True API_PREFIX: str = "/api/v1" # 数据库配置 DATABASE_HOST: str = "mysql" DATABASE_PORT: int = 3306 DATABASE_USER: str = "root" DATABASE_PASSWORD: str = "root123456" DATABASE_NAME: str = "huihui_ai_bot" DATABASE_URL: Optional[str] = None @property def get_database_url(self) -> str: if self.DATABASE_URL: return self.DATABASE_URL return f"mysql+pymysql://{self.DATABASE_USER}:{self.DATABASE_PASSWORD}@{self.DATABASE_HOST}:{self.DATABASE_PORT}/{self.DATABASE_NAME}?charset=utf8mb4" # JWT 配置 JWT_SECRET_KEY: str = "your-secret-key-change-in-production" JWT_ALGORITHM: str = "HS256" JWT_EXPIRE_MINUTES: int = 60 * 24 * 7 # 7 天 # 会会接口配置 HUIHUI_API_BASE: str = "http://192.168.1.200:63120" HUIHUI_DOC_URL: str = "http://192.168.1.200:63120/doc.html" # AI 模型配置(默认) DEFAULT_AI_MODEL: str = "openai" OPENAI_API_KEY: Optional[str] = None OPENAI_BASE_URL: str = "https://api.openai.com/v1" OPENAI_MODEL: str = "gpt-3.5-turbo" ZHIPU_API_KEY: Optional[str] = None ZHIPU_MODEL: str = "glm-4" # 系统限制配置 MAX_TOKENS_PER_DAY: int = 10000 # 每日 Token 上限 MAX_COMMENTS_PER_USER_PER_DAY: int = 20 # 单用户每日最大评论数 MAX_REPLIES_PER_USER_PER_DAY: int = 10 # 单用户每日最大回复数 # 定时任务配置 TASK_START_HOUR: int = 9 # 活动开始时间 TASK_END_HOUR: int = 22 # 活动结束时间 TASK_INTERVAL_MIN: int = 10 # 最小间隔(分钟) TASK_INTERVAL_MAX: int = 30 # 最大间隔(分钟) # 互动概率配置 LIKE_PROBABILITY: float = 0.8 # 点赞概率 FAVORITE_PROBABILITY: float = 0.5 # 收藏概率 SHARE_PROBABILITY: float = 0.3 # 转发概率 # 文件存储配置 UPLOAD_DIR: str = "/app/data/uploads" LOG_DIR: str = "/app/data/logs" class Config: env_file = ".env" case_sensitive = True # 创建全局配置实例 settings = Settings()