77 lines
2.3 KiB
Python
77 lines
2.3 KiB
Python
"""
|
|
系统配置模块
|
|
"""
|
|
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()
|