# ============================================================================= # Life Echo API — staging(预发) # # 基于 .env.production 生成;staging 发布时 workflow 会上传并复制为运行时 .env。 # 不要把生产密钥误填进本文件(当前与 production 共用同一套三方密钥)。 # ============================================================================= # ============================================================================= # Docker Compose(宿主机独立 Caddy 反代到本 API) # ============================================================================= LIFE_ECHO_API_HOST_BIND=0.0.0.0 LIFE_ECHO_API_HOST_PORT=8000 POSTGRES_HOST_PORT=15432 # ============================================================================= # Logging(loguru sink 最低级别:TRACE / DEBUG / INFO / WARNING / ERROR / CRITICAL) # ============================================================================= LOG_LEVEL=INFO # Agent 单行 INFO 摘要;与 LOG_LEVEL 独立 # LOG_AGENT_VERBOSE=0 # DEBUG 下预览上限(默认 4096);0=全文 # AGENT_LOG_MAX_CHARS=4096 # DEBUG 下 *.prompt:preview | hash_only # AGENT_LOG_PROMPT_MODE=preview # AGENT_LOG_PROMPT_DEDUP=0 # DEBUG 下访谈/资料:省略 SystemMessage 正文(仅 total_len+sha12);0/false=打出全文 # AGENT_LOG_OMIT_SYSTEM_MESSAGE_BODY=1 # DEBUG 下超长单段 *.prompt:先跳过前 N 字符再预览 # AGENT_LOG_JSON_PROMPT_PREFIX_CHARS=0 # AGENT_LOG_JSON_PROMPT_PREFIX_ONLY_IF_LEN_GT=4000 # 第三方 stdlib logging(空=自动) # CELERY_LOG_LEVEL= # HTTPX_LOG_LEVEL= # ============================================================================= # LLM / DeepSeek # ============================================================================= DEEPSEEK_API_KEY=sk-09f17fb61c5a4299a3afc2a01de7af75 DEEPSEEK_BASE_URL=https://api.deepseek.com DEEPSEEK_MODEL=deepseek-v4-flash # ============================================================================= # Memory 向量(智谱 BigModel 国内 embedding-3;与 DeepSeek/OpenAI 用途分离) # ============================================================================= ZHIPU_API_KEY=524eda18eb3848e881eefe4c7ef17ec2.xBmGUabYDEa44m3M EMBEDDING_MODEL=embedding-3 # Chat 访谈 CHAT_ERA_CONTEXT_ENABLED=true CHAT_INTERVIEW_PERSONA=warm_listener CHAT_INTERVIEW_TEMPERATURE=0.65 CHAT_MEMORY_TOP_K=4 CHAT_MEMORY_EVIDENCE_MAX_CHARS=1400 CHAT_REPLY_PLANNER_LLM_ENABLED=true # Memoir:叙事前口述归一 MEMOIR_ORAL_NORMALIZE_ENABLED=true MEMOIR_ORAL_NORMALIZE_MODE=llm MEMOIR_ORAL_NORMALIZE_LLM_MAX_TOKENS=512 MEMOIR_ORAL_NORMALIZE_LLM_MAX_INPUT_CHARS=8000 # ============================================================================= # Database # ============================================================================= DATABASE_URL=postgresql://postgres:postgres@postgres:5432/life_echo # ============================================================================= # Redis # ============================================================================= REDIS_URL=redis://redis:6379/0 REDIS_SESSION_TTL=86400 # ============================================================================= # Memory compaction # ============================================================================= MEMORY_COMPACTION_ENABLED=true # ============================================================================= # Auth # ============================================================================= SECRET_KEY=cf47555c7ecbe5ddb7fd2113c59e08a8bcb110810c42f7c644e06a5acc898608 ALGORITHM=HS256 ACCESS_TOKEN_EXPIRE_MINUTES=120 APP_ENV=staging MOCK_SMS_LOGIN_ENABLED=1 # ============================================================================= # Tencent Cloud — 短信 # ============================================================================= TENCENT_SMS_SECRET_ID=AKIDa2ILCwUr56uVt31oU0JOHxPfGhvvkLiq TENCENT_SMS_SECRET_KEY=xiFbjlZ9XheS2NWYLvHRPAh2A5nGYcR2 TENCENT_SMS_SDK_APP_ID=1401010099 TENCENT_SMS_SIGN_NAME=上海华嘎科技有限公司 TENCENT_SMS_TEMPLATE_ID=2592163 TENCENT_SMS_TEMPLATE_PARAM_COUNT=1 # ============================================================================= # ASR Provider(whisper | tencent) # ============================================================================= ASR_PROVIDER=tencent # ============================================================================= # Whisper ASR(ASR_PROVIDER=whisper 时使用) # ============================================================================= ASR_MODEL_SIZE=small ASR_DEVICE=cpu ASR_COMPUTE_TYPE=int8 # ============================================================================= # Tencent Cloud — 一句话 ASR + TTS # ============================================================================= TENCENT_SECRET_ID=AKIDa2ILCwUr56uVt31oU0JOHxPfGhvvkLiq TENCENT_SECRET_KEY=xiFbjlZ9XheS2NWYLvHRPAh2A5nGYcR2 # ============================================================================= # TTS # ============================================================================= ENABLE_TTS=true TTS_PROVIDER=tencent TTS_VOICE_TYPE=501004 TTS_CODEC=mp3 # ============================================================================= # WeChat Pay # ============================================================================= WECHAT_PAY_APP_ID=wx1df508452e06cfb8 WECHAT_PAY_MCH_ID=1662979099 WECHAT_PAY_API_V3_KEY=xjvGSJLGJAJfjgskfjslafjsajsdjals WECHAT_PAY_PRIVATE_KEY_PATH=certs/apiclient_key.pem WECHAT_PAY_CERT_SERIAL_NO=1AA82328AC1456C6F115B014606F22CD621D2032 WECHAT_PAY_NOTIFY_URL=https://lifecho.worldsplats.com/api/payment/notify/wechat # ============================================================================= # Alipay(未接入时保持空字符串) # ============================================================================= ALIPAY_APP_ID= ALIPAY_PRIVATE_KEY= ALIPAY_PUBLIC_KEY= ALIPAY_NOTIFY_URL=https://lifecho.worldsplats.com/api/payment/notify/alipay # ============================================================================= # Misc # ============================================================================= ENABLE_TEST_SUBSCRIPTION=1 # ============================================================================= # Memoir image generation # ============================================================================= MEMOIR_IMAGE_ENABLED=true MEMOIR_IMAGE_POLL_INTERVAL=3 MEMOIR_IMAGE_MAX_ATTEMPTS=20 MEMOIR_IMAGE_PROVIDER=liblib MEMOIR_IMAGE_STYLE_DEFAULT=watercolor MEMOIR_IMAGE_SIZE_DEFAULT=1280x720 MEMOIR_MIN_INLINE_IMAGES_FOR_CHAPTER_COVER=1 STORY_IMAGE_MIN_BODY_CHARS=800 MEMOIR_NARRATIVE_FALLBACK_BODY_RATIO=0.5 MEMOIR_NARRATIVE_FALLBACK_MIN_CHARS=20 # ============================================================================= # Liblib image provider # ============================================================================= LIBLIB_ACCESS_KEY=zrDp6quCOKlLwcewOEfrog LIBLIB_SECRET_KEY=iTVHo5Nf3KA-xpC1Mja80bC93u6chJem LIBLIB_BASE_URL=https://openapi.liblibai.cloud LIBLIB_TEMPLATE_UUID=5d7e67009b344550bc1aa6ccbfa1d7f4 # ============================================================================= # Tencent Cloud — COS(回忆录图片存储) # ============================================================================= TENCENT_COS_SECRET_ID=AKIDa2ILCwUr56uVt31oU0JOHxPfGhvvkLiq TENCENT_COS_SECRET_KEY=xiFbjlZ9XheS2NWYLvHRPAh2A5nGYcR2 TENCENT_COS_REGION=ap-shanghai TENCENT_COS_BUCKET=life-echo-dev-1319381411 TENCENT_COS_BASE_URL=https://life-echo-dev-1319381411.cos.ap-shanghai.myqcloud.com