DJANGO_SETTINGS_MODULE=airshelf.settings.development DJANGO_SECRET_KEY=S2GYXa8YC21lmnFfVwC+6cyFNhCCSoclhpylOmSAm16vKflUgQi398VQQSM+Rbit DJANGO_DEBUG=true DJANGO_ALLOWED_HOSTS=airshelf-web.airlabs.art,airshelf-web.test.airlabs.art,localhost,127.0.0.1,192.168.124.86 DJANGO_CSRF_TRUSTED_ORIGINS=https://airshelf-web.airlabs.art,https://airshelf-web.test.airlabs.art,https://airshelf.airlabs.art,http://localhost:3000,http://127.0.0.1:3000,http://localhost:5173,http://127.0.0.1:5173,http://192.168.124.86:5173 CORS_ALLOWED_ORIGINS=https://airshelf-web.airlabs.art,https://airshelf-web.test.airlabs.art,https://airshelf.airlabs.art,http://localhost:3000,http://127.0.0.1:3000,http://localhost:5173,http://127.0.0.1:5173,http://192.168.124.86:5173 DB_ENGINE=mysql DB_NAME=airshelf_test DB_USER=airshelf_app DB_PASSWORD=d5020f4d41e0e4c52a371ecb913be3d1f1ab2b85 DB_HOST=14.103.27.192 DB_PORT=3306 # DB_BIND_ADDRESS=192.168.124.137 # local-dev blanked: upstream dev-host LAN addr, not present on this machine -> WinError 10049 REDIS_CACHE_URL=redis://zyc:Zyc188208@redis-shzlsczo52dft8mia.redis.volces.com:6379/0 CELERY_BROKER_URL=redis://zyc:Zyc188208@redis-shzlsczo52dft8mia.redis.volces.com:6379/1 CELERY_RESULT_BACKEND=redis://zyc:Zyc188208@redis-shzlsczo52dft8mia.redis.volces.com:6379/2 REDIS_LOCK_URL=redis://zyc:Zyc188208@redis-shzlsczo52dft8mia.redis.volces.com:6379/3 TOS_ENDPOINT=https://tos-s3-cn-shanghai.volces.com TOS_BUCKET=airshelf TOS_ACCESS_KEY_ID=AKLTODVhY2U1NzY1MTU3NDA4NThiYzk2ZDMyZDNjYmZhZGY TOS_SECRET_ACCESS_KEY=TWpjNVpqVm1NbVkzTWprNE5ESXlZMkUyT1dNNFlqVmtaRGRoTVdNME5qRQ== VOLCANO_ARK_API_KEY=ark-a0efcea2-fbf4-47bb-a43e-e3eed4138abc-0ad26 VOLCANO_ARK_BASE_URL=https://ark.cn-beijing.volces.com/api/v3 # 2026-07-09 视频(Seedance)ARK key 换成新账号,与新账号素材库审核同账号 → 真人 asset:// 可解析。EP=ep-20260707204223-wkcn9(备用,代码按模型名调不用它)。 VIDEO_ARK_API_KEY=ark-a0efcea2-fbf4-47bb-a43e-e3eed4138abc-0ad26 DEFAULT_TRIAL_CREDITS=0 YUNQI_API_KEY=sk-2J8wlLBG9YITZlMwVYa369WgRM3IJyx99p8anpDAdunVYm5x YUNQI_BASE_URL=https://www.yunqiai.chat/v1 # YunQi 对话(脚本助手)· 按模型分开计费的两把 key(同一 base_url,各自独立额度) YUNQI_GPT_API_KEY=sk-2J8wlLBG9YITZlMwVYa369WgRM3IJyx99p8anpDAdunVYm5x YUNQI_GEMINI_API_KEY=sk-JTTFjs68RV7r2X5MCaXypHmejpV91gx7mtELQNRlWtWHfYY0 # tokenssr 中转站(主力:gpt-image-2 参考图 + gpt-5.5/gemini 文本 + gemini 图像)· 一把 key 通吃 90 模型 TOKENSSR_API_KEY=sk-vDg00IAX6EW4ABo4ePwAFPRaIjScFLUs1ZM1lInZJvs7z6M0 TOKENSSR_BASE_URL=https://king.tokenssr.com/v1 # 飞书机器人「小毛球」(交接文档推送)· 凭证也在 AirDrama utils/alert_service.py FEISHU_APP_ID=cli_a90478156bf85bd7 FEISHU_APP_SECRET=87N2nnx6Yv56TPjl2GraLdKOjFiGOSGp # 火山人像素材库(审核绿/红标)· 2026-07-09 换成新账号自有 AK/SK(Patrick 提供,已连通性验证通过) # PROJECT_NAME=default:新账号已有的默认项目,内含 Patrick 建的 human 素材组(实测连通);火山对该字段宽松,default 是真正有数据的项目 ASSETS_API_ACCESS_KEY=AKLTOTgzMTgzMGYxNjczNGI1NGE2ZTg5ZjA0Yzc5ZWM4ZTQ ASSETS_API_SECRET_KEY=TTJZMk9HWTJNakZoTUdVd05ESmpNVGszT1RFME4ySmxabVUzWTJNd00yRQ== ASSETS_API_ENABLED=true ASSETS_API_PROJECT_NAME=default # 豆包语音合成(旁白配音 TTS)· 火山控制台-语音技术-语音合成 VOLC_TTS_APPID=8945759494 VOLC_TTS_ACCESS_TOKEN=w7Ye8FdTHADU05PV5cVNjud8FseOnYzR # 模型失败重试与动态 Fallback 统一策略。修改后必须同时重启 Django API 与 Celery Worker。 # 单个逻辑任务最多尝试的不同模型数(包含用户选择或系统默认的主模型)。 MODEL_ROUTING_MAX_MODELS=3 # 单个逻辑任务最多发出的真实模型请求数(包含首次、重试和 Fallback)。 MODEL_ROUTING_MAX_CALLS=5 # 重试退避的随机抖动比例;0.20 表示基础等待时间上下浮动 20%。 MODEL_ROUTING_JITTER_RATIO=0.20 # 文本:原模型失败后的重试等待秒数;逗号分隔,列表长度就是重试次数。 MODEL_ROUTING_TEXT_RETRY_DELAYS=1,3 # 文本:普通非流式请求单次超时秒数。 MODEL_ROUTING_TEXT_REQUEST_TIMEOUT=120 # 文本:脚本等流式请求单次超时秒数。 MODEL_ROUTING_TEXT_STREAM_TIMEOUT=1740 # 文本:一次逻辑任务从首次请求起的总时限秒数。 MODEL_ROUTING_TEXT_TOTAL_TIMEOUT=1800 # 文本:429 Retry-After 允许等待的最长秒数。 MODEL_ROUTING_TEXT_RETRY_AFTER_CAP=15 # 图片:原模型失败后的重试等待秒数;默认重试 1 次。 MODEL_ROUTING_IMAGE_RETRY_DELAYS=3 # 图片:单次生成或编辑请求超时秒数。 MODEL_ROUTING_IMAGE_REQUEST_TIMEOUT=300 # 图片:单张图片逻辑任务总时限秒数。 MODEL_ROUTING_IMAGE_TOTAL_TIMEOUT=900 # 图片:429 Retry-After 允许等待的最长秒数。 MODEL_ROUTING_IMAGE_RETRY_AFTER_CAP=15 # 配音:原模型失败后的重试等待秒数;默认重试 1 次。 MODEL_ROUTING_AUDIO_RETRY_DELAYS=2 # 配音:单次 TTS 请求超时秒数。 MODEL_ROUTING_AUDIO_REQUEST_TIMEOUT=60 # 配音:一次配音逻辑任务总时限秒数。 MODEL_ROUTING_AUDIO_TOTAL_TIMEOUT=180 # 配音:429 Retry-After 允许等待的最长秒数。 MODEL_ROUTING_AUDIO_RETRY_AFTER_CAP=15 # 视频:尚未拿到远端任务 ID 时的提交重试等待秒数;状态未知时禁止重提。 MODEL_ROUTING_VIDEO_SUBMIT_RETRY_DELAYS=3 # 视频:单次创建远端任务的请求超时秒数。 MODEL_ROUTING_VIDEO_SUBMIT_TIMEOUT=120 # 视频:提交、重试和 Fallback 阶段的总时限秒数。 MODEL_ROUTING_VIDEO_SUBMIT_TOTAL_TIMEOUT=300 # 视频:单次查询远端任务状态的超时秒数。 MODEL_ROUTING_VIDEO_POLL_REQUEST_TIMEOUT=60 # 视频:429 Retry-After 允许等待的最长秒数。 MODEL_ROUTING_VIDEO_RETRY_AFTER_CAP=30 # 后处理:下载、上传和资产保存的重试等待秒数;不会重新调用模型。 MODEL_ROUTING_POSTPROCESS_RETRY_DELAYS=2,5,10 # 模特库三视图真实生成与计费开关:true 允许预留积分并投递 worker;false 时提交接口直接拒绝任务。 MODEL_TRIVIEW_GENERATION_ENABLED=true # 模特上身图 V2.2:共享测试环境全量开启。仅切换提示词,不改变模型选择和积分扣费。 MODEL_TRYON_PROMPT_V2_ENABLED=true MODEL_TRYON_PROMPT_V2_CANARY_TEAM_IDS=