Files
life-echo/api/.env.staging

185 lines
8.5 KiB
Plaintext
Raw Normal View History

2026-03-23 13:21:07 +08:00
# =============================================================================
# Life Echo API — staging预发
#
# 仓库维护本文件staging 发布时 workflow 会上传并复制为运行时 .env。
# 不要把生产密钥误填进本文件。
# =============================================================================
# =============================================================================
# Loggingloguru sink 最低级别TRACE / DEBUG / INFO / WARNING / ERROR / CRITICAL
# =============================================================================
LOG_LEVEL=INFO
2026-04-03 13:49:24 +08:00
# Agent 单行 INFO 摘要(耗时、路由、段落规模);与 LOG_LEVEL 独立
# LOG_AGENT_VERBOSE=0
# DEBUG 下 prompt/响应预览最大字符数
# AGENT_LOG_MAX_CHARS=4096
# DEBUG 下访谈/资料:省略 SystemMessage 正文(仅 total_len+sha120/false=打出全文
# AGENT_LOG_OMIT_SYSTEM_MESSAGE_BODY=1
# DEBUG 下超长单段 *.prompt总长超过下一项时先跳过前 N 字符再预览0=不跳过)
# 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=
2026-03-23 13:21:07 +08:00
# =============================================================================
# LLM / DeepSeek
# =============================================================================
DEEPSEEK_API_KEY=your_deepseek_api_key
DEEPSEEK_BASE_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-chat
# =============================================================================
# Database
# =============================================================================
# 本地开发:
# DATABASE_URL=postgresql://postgres:postgres@localhost:5432/life_echo
# Docker / 服务端(主机名一般为 compose 服务名 postgres:
# DATABASE_URL=postgresql://postgres:postgres@postgres:5432/life_echo
DATABASE_URL=postgresql://postgres:postgres@postgres:5432/life_echo
# =============================================================================
# Redis
# =============================================================================
# 本地开发:
# REDIS_URL=redis://localhost:6379/0
# Docker / 服务端:
# REDIS_URL=redis://redis:6379/0
REDIS_URL=redis://redis:6379/0
REDIS_SESSION_TTL=86400
# =============================================================================
# Memory compaction近重复 memory chunk 软排除Celery + Redis 防抖)
# 与 example / development / production 一致默认开启;预发须跑 worker + celery-beat。
# =============================================================================
MEMORY_COMPACTION_ENABLED=true
# MEMORY_COMPACTION_DEBOUNCE_SECONDS=105
# MEMORY_COMPACTION_LOCK_TTL_SECONDS=600
# MEMORY_COMPACTION_CHUNK_SIMILARITY_THRESHOLD=0.92
# MEMORY_COMPACTION_MIN_LAYERS_FOR_EXCLUDE=2
# MEMORY_COMPACTION_MAX_CHUNKS_PER_RUN=200
# MEMORY_COMPACTION_MAX_EXCLUDES_PER_RUN=50
# MEMORY_COMPACTION_MAX_NEIGHBORS_PER_CHUNK=25
# MEMORY_COMPACTION_TEXT_JACCARD_MIN=0.55
# MEMORY_COMPACTION_METADATA_EVENT_YEAR_WINDOW=1
# MEMORY_COMPACTION_SWEEP_RECENT_HOURS=24
2026-03-23 13:21:07 +08:00
# =============================================================================
# Auth
# =============================================================================
# 建议使用: openssl rand -hex 32
SECRET_KEY=replace_with_a_strong_random_secret
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=120
# =============================================================================
# Tencent Cloud — 短信
# =============================================================================
# 短信、一句话 ASR/TTS、COS 为不同产品;同一主账号可共用同一对 SecretId/SecretKey分别填三处
TENCENT_SMS_SECRET_ID=your_tencent_sms_secret_id
TENCENT_SMS_SECRET_KEY=your_tencent_sms_secret_key
# 短信应用 SDK AppID
TENCENT_SMS_SDK_APP_ID=your_sms_sdk_app_id
# 短信签名内容(不包含【】符号)
TENCENT_SMS_SIGN_NAME=your_sms_sign_name
# 短信模板 ID
TENCENT_SMS_TEMPLATE_ID=your_sms_template_id
# 短信模板参数数量1=仅验证码2=验证码+过期时间)
# 若遇 TemplateParamSetNotMatchApprovedTemplate请对照控制台模板配置
TENCENT_SMS_TEMPLATE_PARAM_COUNT=1
# =============================================================================
# ASR Providerwhisper | tencent
# =============================================================================
ASR_PROVIDER=whisper
# =============================================================================
# Whisper ASRASR_PROVIDER=whisper 时使用)
# =============================================================================
ASR_MODEL_SIZE=small
ASR_DEVICE=cpu
ASR_COMPUTE_TYPE=int8
# GPU 环境(示例,按需启用)
# ASR_MODEL_SIZE=medium
# ASR_DEVICE=cuda
# ASR_COMPUTE_TYPE=float16
# =============================================================================
# Tencent Cloud — 一句话 ASR + TTSASR_PROVIDER=tencent 或 TTS_PROVIDER=tencent
# =============================================================================
TENCENT_SECRET_ID=your_tencent_asr_secret_id
TENCENT_SECRET_KEY=your_tencent_asr_secret_key
# =============================================================================
# TTS文字转语音Agent 回复播音)— 与 ASR 独立
# =============================================================================
# ENABLE_TTS仅控制是否合成并下发 TTS_AUDIO不影响用户语音转写ASR
ENABLE_TTS=true
TTS_PROVIDER=tencent
# 仅 TTS_PROVIDER=openai 时需要
# OPENAI_API_KEY=your_openai_api_key
# 音色 ID 见 https://cloud.tencent.com/document/product/1073/92668
TTS_VOICE_TYPE=502001
TTS_CODEC=mp3
# =============================================================================
# WeChat Pay
# =============================================================================
WECHAT_PAY_APP_ID=your_wechat_pay_app_id
WECHAT_PAY_MCH_ID=your_wechat_mch_id
WECHAT_PAY_API_V3_KEY=your_wechat_api_v3_key
# 商户私钥:推荐使用文件路径,避免 .env 中长 PEM 转义问题
WECHAT_PAY_PRIVATE_KEY_PATH=certs/apiclient_key.pem
# 若不用文件,可配置 WECHAT_PAY_PRIVATE_KEYPEM换行用 \n
# WECHAT_PAY_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----"
WECHAT_PAY_CERT_SERIAL_NO=your_wechat_cert_serial_no
WECHAT_PAY_NOTIFY_URL=https://your-domain.com/api/payment/notify/wechat
# 平台公钥模式(仅当无法走平台证书自动拉取时使用);勿填商户私钥路径
# WECHAT_PAY_PLATFORM_PUBLIC_KEY_PATH=certs/wechat_platform_public_key.pem
# WECHAT_PAY_PLATFORM_PUBLIC_KEY_ID=your_wechat_platform_public_key_id
# =============================================================================
# Alipay
# =============================================================================
ALIPAY_APP_ID=your_alipay_app_id
ALIPAY_PRIVATE_KEY=your_alipay_private_key
ALIPAY_PUBLIC_KEY=your_alipay_public_key
ALIPAY_NOTIFY_URL=https://your-domain.com/api/payment/notify/alipay
# =============================================================================
# Misc
# =============================================================================
ENABLE_TEST_SUBSCRIPTION=0
# =============================================================================
# Memoir image generationStory 主图等;轮询 Liblib 任务)
# =============================================================================
MEMOIR_IMAGE_ENABLED=false
MEMOIR_IMAGE_POLL_INTERVAL=3
MEMOIR_IMAGE_MAX_ATTEMPTS=20
MEMOIR_IMAGE_PROVIDER=liblib
MEMOIR_IMAGE_STYLE_DEFAULT=watercolor
MEMOIR_IMAGE_SIZE_DEFAULT=1280x720
# 可选Liblib 返回图片域名不在默认白名单时(逗号分隔)
# MEMOIR_IMAGE_DOWNLOAD_HOSTS=liblib.cloud,liblibai.cloud
# =============================================================================
# Liblib image provider
# =============================================================================
LIBLIB_ACCESS_KEY=your_liblib_access_key
LIBLIB_SECRET_KEY=your_liblib_secret_key
LIBLIB_BASE_URL=https://openapi.liblibai.cloud
LIBLIB_TEMPLATE_UUID=your_liblib_template_uuid
# =============================================================================
# Tencent Cloud — COS回忆录图片存储
# =============================================================================
TENCENT_COS_SECRET_ID=your_tencent_cos_secret_id
TENCENT_COS_SECRET_KEY=your_tencent_cos_secret_key
TENCENT_COS_REGION=ap-shanghai
TENCENT_COS_BUCKET=your_bucket_name
TENCENT_COS_BASE_URL=https://your_bucket_name.cos.ap-shanghai.myqcloud.com
# 可选临时凭证
# TENCENT_COS_TOKEN=