用户认证: - User 模型(支持邮箱/手机号登录) - 双 Token JWT 认证(accessToken + refreshToken) - 注册/登录/刷新 Token API 组织模型: - Brand(品牌方)、Agency(代理商)、Creator(达人) - 多对多关系:品牌方↔代理商、代理商↔达人 项目与任务: - Project 模型(品牌方发布) - Task 模型(完整审核流程追踪) - Brief 模型(解析后的结构化内容) 文件上传: - 阿里云 OSS 直传签名服务 - 支持分片上传,最大 500MB 数据库迁移: - 003_user_org_project_task.py Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
52 lines
1.5 KiB
Python
52 lines
1.5 KiB
Python
"""应用配置"""
|
||
from pydantic_settings import BaseSettings
|
||
from functools import lru_cache
|
||
|
||
|
||
class Settings(BaseSettings):
|
||
"""应用设置"""
|
||
# 应用
|
||
APP_NAME: str = "秒思智能审核平台"
|
||
APP_VERSION: str = "1.0.0"
|
||
DEBUG: bool = False
|
||
|
||
# 数据库
|
||
DATABASE_URL: str = "postgresql+asyncpg://postgres:postgres@localhost:5432/miaosi"
|
||
|
||
# Redis
|
||
REDIS_URL: str = "redis://localhost:6379/0"
|
||
|
||
# JWT
|
||
SECRET_KEY: str = "your-secret-key-change-in-production"
|
||
ALGORITHM: str = "HS256"
|
||
ACCESS_TOKEN_EXPIRE_MINUTES: int = 30
|
||
|
||
# AI 服务(使用 OneAPI/OneInAll 等中转服务商,不直连厂商)
|
||
# 中转服务商统一了不同 AI 厂商的接口,只需配置中转商的 API
|
||
AI_PROVIDER: str = "oneapi" # oneapi | oneinall | openrouter 等中转服务商
|
||
AI_API_KEY: str = "" # 中转服务商的 API Key
|
||
AI_API_BASE_URL: str = "" # 中转服务商的 Base URL,如 https://api.oneinall.ai/v1
|
||
|
||
# 阿里云 OSS 配置
|
||
OSS_ACCESS_KEY_ID: str = ""
|
||
OSS_ACCESS_KEY_SECRET: str = ""
|
||
OSS_ENDPOINT: str = "oss-cn-hangzhou.aliyuncs.com"
|
||
OSS_BUCKET_NAME: str = "miaosi-files"
|
||
OSS_BUCKET_DOMAIN: str = "" # 公开访问域名,如 https://miaosi-files.oss-cn-hangzhou.aliyuncs.com
|
||
|
||
# 文件上传限制
|
||
MAX_FILE_SIZE_MB: int = 500 # 最大文件大小 500MB
|
||
|
||
class Config:
|
||
env_file = ".env"
|
||
case_sensitive = True
|
||
|
||
|
||
@lru_cache()
|
||
def get_settings() -> Settings:
|
||
"""获取配置单例"""
|
||
return Settings()
|
||
|
||
|
||
settings = get_settings()
|