# ============================================== # DREAMWEAVER 环境变量配置模板 # ============================================== # 使用说明: # 1. 在仓库根目录执行:cp backend/.env.example backend/.env # 2. 填入您的 API Keys # 3. 后端、Celery、Docker demo 都读取 backend/.env # 4. 仓库根目录 .env 仅供 Docker Compose 自身读取构建参数,不放后端密钥 # ============================================== # ---------------------------------------------- # 1. 基础设施 (Infrastructure) [必填] # ---------------------------------------------- # ⚠️ Docker 演示通常无需修改这部分,直接使用默认值即可 # ⚠️ 本机直跑后端时,把 DATABASE_URL/CELERY_* 改成文件末尾的 localhost 版本 POSTGRES_USER=dreamweaver POSTGRES_PASSWORD=dreamweaver_password POSTGRES_DB=dreamweaver_db DATABASE_URL=postgresql+asyncpg://dreamweaver:dreamweaver_password@db:5432/dreamweaver_db CELERY_BROKER_URL=redis://redis:6379/0 CELERY_RESULT_BACKEND=redis://redis:6379/0 REDIS_URL=redis://redis:6379/0 # Web Security SECRET_KEY=change-me-to-a-secure-random-string-in-production DEBUG=true # ---------------------------------------------- # 2. AI 引擎配置 (AI Engines) [核心] # ---------------------------------------------- # [策略配置] # 系统默认使用的供应商列表 (按优先级排序) # 本地求职演示可设置 ENABLE_DEMO_PROVIDERS=true,在没有真实 API Key 时使用确定性 Demo Provider。 ENABLE_DEMO_PROVIDERS=false # 文本生成: 优先 Gemini,其次 OpenAI TEXT_PROVIDERS=["gemini", "openai"] # 图片生成: 优先 CQTAI (Flux/NanoBanana) IMAGE_PROVIDERS=["cqtai"] # 语音生成: 优先 MiniMax,其次 ElevenLabs,最后 EdgeTTS(免费) TTS_PROVIDERS=["minimax", "elevenlabs", "edge_tts"] # 绘本结构生成: 默认复用 Gemini Storybook adapter STORYBOOK_PROVIDERS=["storybook_primary"] # 语音识别: 本地演示默认 demo;真实转写可设置为 ["openai_asr", "demo"] # 真实 ASR smoke 必须让 openai_asr 排在 demo 前面,否则 demo hint 路径会先命中。 ASR_PROVIDERS=["demo"] # [模型参数] TEXT_MODEL=gemini-2.0-flash IMAGE_MODEL=nano-banana IMAGE_RESOLUTION=1K STORY_AUDIO_CACHE_TTL_DAYS=30 GENERATION_JOB_STALE_MINUTES=60 # TTS_MODEL=speech-2.6-turbo (MiniMax) / zh-CN-XiaoxiaoNeural (Edge) # [API 密钥池] # 请填入您拥有的 Key,没有的留空即可 # ⚠️ 注意: 除非您使用国内中转(OneAPI)或企业私有版,否则无需填写 API_BASE (系统会自动使用官方地址) # Google Gemini TEXT_API_KEY= TEXT_API_BASE= # CQTAI / GoQuantum (Image) CQTAI_API_KEY= # CQTAI_API_BASE=https://api.cqtai.com/v1 # Antigravity (Image - OpenAI Compatible) ANTIGRAVITY_API_KEY= ANTIGRAVITY_API_BASE=http://127.0.0.1:8045/v1 # 模型: gemini-3-pro-image, gemini-3-pro-image-16-9, etc. # MiniMax (TTS) MINIMAX_API_KEY= # MINIMAX_GROUP_ID 是 MiniMax v1/v2 接口必须的参数 (通常在 MiniMax 控制台可见) MINIMAX_GROUP_ID= MINIMAX_API_BASE= # ElevenLabs (TTS) ELEVENLABS_API_KEY= # ELEVENLABS_API_BASE=https://api.elevenlabs.io/v1 # OpenAI (如需使用) OPENAI_API_KEY= # 可选:OpenAI 官方地址可留空;使用兼容网关时填类似 https://example.com/v1 OPENAI_API_BASE= # OpenAI ASR VOICE_TRANSCRIPTION_MODE=provider VOICE_TRANSCRIPTION_MODEL=gpt-4o-mini-transcribe VOICE_TRANSCRIPTION_LANGUAGE=zh # ---------------------------------------------- # 3. 第三方登录 (OAuth Config) [可选] # ---------------------------------------------- # 若留空,则无法使用该方式登录 GITHUB_CLIENT_ID= GITHUB_CLIENT_SECRET= GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= # ---------------------------------------------- # 4. 管理后台 (Admin Console) # ---------------------------------------------- # 是否开启 /admin 路由与 API (生产环境建议 false) ENABLE_ADMIN_CONSOLE=true # 管理员 Basic Auth 账号 ADMIN_USERNAME=admin ADMIN_PASSWORD=local-demo-admin # ---------------------------------------------- # 5. 部署与网络 (Deployment & Network) # ---------------------------------------------- # [外部访问地址] # 用于 OAuth 回调验证 (对应 docker-compose 的 52000 端口) BASE_URL=http://localhost:52000 # [跨域白名单 CORS] # 包含 User Frontend (52080), Admin Frontend (52888) 及本地开发端口 CORS_ORIGINS=["http://localhost:52080", "http://localhost:52888", "http://localhost:5173", "http://localhost:5174"] # [本地开发覆盖 Local Dev Override] # 如果您不使用 Docker,而是在本机直接运行 `python -m uvicorn ...` # 请改用以下值连接 localhost 数据库/Redis: # DATABASE_URL=postgresql+asyncpg://dreamweaver:dreamweaver_password@localhost:52432/dreamweaver_db # CELERY_BROKER_URL=redis://localhost:52379/0 # CELERY_RESULT_BACKEND=redis://localhost:52379/0 # REDIS_URL=redis://localhost:52379/0