Skip to content

环境变量说明

环境变量用于控制数据库、鉴权、短信、LLM/RAG、CORS、头像存储、视频资源和 Flutter 编译期配置。本页只记录变量名、用途和示例格式,不记录真实值。

后端核心运行

变量必填用途示例格式
DATABASE_URL后端数据库连接。Alembic 与运行时都会读取。<database-url>
DEVELOPMENT_MODE控制开发模式、CORS 默认策略和 debug route 注册。false
ALLOW_DEMO_AUTH控制 demo 鉴权绕过能力。生产应关闭。false
VIDEO_BASE_URL后端生成运动视频资源链接时使用。https://<domain>/static/videos/

鉴权与短信

变量必填用途示例格式
JWT_SECRET_KEYJWT 签名密钥。<strong-random-secret>
JWT_ALGORITHMJWT 签名算法。HS256
JWT_EXPIRES_HOURS登录令牌有效小时数。24
ALIYUN_ACCESS_KEY_ID生产短信必填阿里云短信访问标识。<aliyun-access-key-id>
ALIYUN_ACCESS_KEY_SECRET生产短信必填阿里云短信访问密钥。<aliyun-access-key-secret>
ALIYUN_SMS_REGION短信服务区域。cn-hangzhou
ALIYUN_SMS_SIGN_NAME短信签名。<sms-sign-name>
ALIYUN_SMS_TEMPLATE_CODE短信模板编号。<sms-template-code>
SMS_RATE_LIMIT_MINUTES验证码发送频率限制。1
SMS_CODE_EXPIRE_MINUTES验证码有效分钟数。5

LLM 与 RAG

变量必填用途示例格式
LLM_PROVIDER当前 LLM provider 选择。moonshot
LLM_MODEL当前 LLM 模型名。moonshot-v1-8k
MOONSHOT_API_KEY对应 provider 必填Moonshot/Kimi 兼容接口凭据。<secret>
KIMI_API_KEY可选Moonshot key 的兼容别名。<secret>
SPARK_MODELSpark provider 使用Spark 模型选择。spark_max
SPARK_APP_IDSpark provider 使用Spark 应用标识。<secret>
SPARK_API_KEYSpark provider 使用Spark 访问凭据。<secret>
SPARK_API_SECRETSpark provider 使用Spark 签名凭据。<secret>
DASHSCOPE_API_KEYRAG 向量与 rerank 使用DashScope embedding 与 rerank 凭据。<secret>
RAG_PIPELINE_VERSIONRAG 管线版本选择。hybrid
RAG_HYBRID_SCHEMA_TAGhybrid 使用knowledge_chunks schema tag。v1
RAG_RETRIEVAL_CANDIDATES检索召回候选数。20
RAG_ENABLE_RERANK是否启用 rerank。true
RAG_RERANK_MODELrerank 使用rerank 模型名。gte-rerank-v2
RAG_RERANK_TOP_Nrerank 使用rerank 后保留条数。10
RAG_RERANK_TIMEOUTrerank 使用rerank 超时秒数。1.0
RAG_RERANK_CB_THRESHOLDrerank 使用circuit breaker 触发阈值。3
RAG_RERANK_CB_COOLDOWNrerank 使用circuit breaker 冷却秒数。60

本地模型缓存与离线开关

变量用途示例格式
HF_ENDPOINTHugging Face 镜像或 endpoint。https://<mirror-host>
HF_HOMEHugging Face 缓存目录。/opt/fitdoc/.cache/huggingface
SENTENCE_TRANSFORMERS_HOMEsentence-transformers 缓存目录。/opt/fitdoc/.cache/sentence-transformers
TRANSFORMERS_CACHEtransformers 缓存目录。/opt/fitdoc/.cache/transformers
HF_HUB_OFFLINEHugging Face 离线模式。1
TRANSFORMERS_OFFLINEtransformers 离线模式。1
RAG_DISABLE_SENTENCE_TRANSFORMERS跳过本地 sentence-transformers 初始化。true
RAG_SENTENCE_MODEL_NAME本地 embedding 模型名。paraphrase-multilingual-MiniLM-L12-v2
RAG_SENTENCE_MODEL_PATH本地模型路径。/opt/fitdoc/models/<model>
RAG_SENTENCE_LOCAL_ONLY只从本地路径加载模型。true

CORS

变量用途示例格式
CORS_ALLOW_ORIGINS允许的精确 origin,逗号分隔。https://web.example.com,https://staging.example.com
CORS_ALLOW_ORIGIN_REGEX允许的 origin 正则。常用于本地 Web 调试端口。^https?://(localhost|127\\.0\\.0\\.1):\\d+$

生产模式下应显式配置可信 origin。开发模式会使用更宽松的本地调试策略。

头像与对象存储

变量用途示例格式
AVATAR_STORAGE_MODE头像存储模式,支持 localosslocal
OSS_ENDPOINTOSS endpoint。oss-cn-hangzhou.aliyuncs.com
OSS_BUCKET_NAMEOSS bucket 名称。<bucket-name>
OSS_ACCESS_KEY_IDOSS 访问标识。<secret>
OSS_ACCESS_KEY_SECRETOSS 访问密钥。<secret>
OSS_AVATAR_PREFIX头像对象前缀。fitdoc/avatars
OSS_POLICY_EXPIRE_SECONDS直传 policy 过期秒数。300
OSS_PUBLIC_BASE_URLOSS CDN 或公开访问域名。https://static.example.com

Flutter 编译期配置

--dart-define用途默认行为
APP_ENVdevelopmentstagingproduction默认 production
API_BASE_URLAPI 根地址,需包含 /api根据环境使用默认 host。
VIDEO_BASE_URL视频资源根地址。默认 https://lechengzhikang.com/static/videos
PROD_SERVER_HOST生产 host。默认生产公网 IP。
STAGING_SERVER_HOSTstaging host。默认同生产 host。
API_PORT展示用服务端口。默认 80

示例:

powershell
flutter build apk --release `
  --dart-define=APP_ENV=production `
  --dart-define=API_BASE_URL=https://<domain>/api `
  --dart-define=VIDEO_BASE_URL=https://<domain>/static/videos

脱敏规则

  • 文档可以写变量名、默认语义、布尔开关和占位示例。
  • 不写真实数据库连接串、JWT 签名密钥、短信凭据、LLM 凭据、OSS 凭据。
  • 不把服务器 .env 内容整段复制到文档、聊天记录或 Issue。
  • 排障截图和日志片段需要先移除 Authorization header、连接串、手机号、身份证号和患者病历内容。

来源锚点

  • apps/backend_service/.env.example
  • apps/backend_service/app/core/config.py
  • apps/backend_service/app/core/llm_config.py
  • apps/flutter_app/lib/config/environment_config.dart
  • 生产 ECS /opt/fitdoc/backend/.env 非敏感 key 列表