外观
环境变量说明
环境变量用于控制数据库、鉴权、短信、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_KEY | 是 | JWT 签名密钥。 | <strong-random-secret> |
JWT_ALGORITHM | 是 | JWT 签名算法。 | 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_MODEL | Spark provider 使用 | Spark 模型选择。 | spark_max |
SPARK_APP_ID | Spark provider 使用 | Spark 应用标识。 | <secret> |
SPARK_API_KEY | Spark provider 使用 | Spark 访问凭据。 | <secret> |
SPARK_API_SECRET | Spark provider 使用 | Spark 签名凭据。 | <secret> |
DASHSCOPE_API_KEY | RAG 向量与 rerank 使用 | DashScope embedding 与 rerank 凭据。 | <secret> |
RAG_PIPELINE_VERSION | 是 | RAG 管线版本选择。 | hybrid |
RAG_HYBRID_SCHEMA_TAG | hybrid 使用 | knowledge_chunks schema tag。 | v1 |
RAG_RETRIEVAL_CANDIDATES | 是 | 检索召回候选数。 | 20 |
RAG_ENABLE_RERANK | 是 | 是否启用 rerank。 | true |
RAG_RERANK_MODEL | rerank 使用 | rerank 模型名。 | gte-rerank-v2 |
RAG_RERANK_TOP_N | rerank 使用 | rerank 后保留条数。 | 10 |
RAG_RERANK_TIMEOUT | rerank 使用 | rerank 超时秒数。 | 1.0 |
RAG_RERANK_CB_THRESHOLD | rerank 使用 | circuit breaker 触发阈值。 | 3 |
RAG_RERANK_CB_COOLDOWN | rerank 使用 | circuit breaker 冷却秒数。 | 60 |
本地模型缓存与离线开关
| 变量 | 用途 | 示例格式 |
|---|---|---|
HF_ENDPOINT | Hugging Face 镜像或 endpoint。 | https://<mirror-host> |
HF_HOME | Hugging Face 缓存目录。 | /opt/fitdoc/.cache/huggingface |
SENTENCE_TRANSFORMERS_HOME | sentence-transformers 缓存目录。 | /opt/fitdoc/.cache/sentence-transformers |
TRANSFORMERS_CACHE | transformers 缓存目录。 | /opt/fitdoc/.cache/transformers |
HF_HUB_OFFLINE | Hugging Face 离线模式。 | 1 |
TRANSFORMERS_OFFLINE | transformers 离线模式。 | 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 | 头像存储模式,支持 local 或 oss。 | local |
OSS_ENDPOINT | OSS endpoint。 | oss-cn-hangzhou.aliyuncs.com |
OSS_BUCKET_NAME | OSS bucket 名称。 | <bucket-name> |
OSS_ACCESS_KEY_ID | OSS 访问标识。 | <secret> |
OSS_ACCESS_KEY_SECRET | OSS 访问密钥。 | <secret> |
OSS_AVATAR_PREFIX | 头像对象前缀。 | fitdoc/avatars |
OSS_POLICY_EXPIRE_SECONDS | 直传 policy 过期秒数。 | 300 |
OSS_PUBLIC_BASE_URL | OSS CDN 或公开访问域名。 | https://static.example.com |
Flutter 编译期配置
--dart-define | 用途 | 默认行为 |
|---|---|---|
APP_ENV | development、staging 或 production。 | 默认 production。 |
API_BASE_URL | API 根地址,需包含 /api。 | 根据环境使用默认 host。 |
VIDEO_BASE_URL | 视频资源根地址。 | 默认 https://lechengzhikang.com/static/videos。 |
PROD_SERVER_HOST | 生产 host。 | 默认生产公网 IP。 |
STAGING_SERVER_HOST | staging 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.exampleapps/backend_service/app/core/config.pyapps/backend_service/app/core/llm_config.pyapps/flutter_app/lib/config/environment_config.dart- 生产 ECS
/opt/fitdoc/backend/.env非敏感 key 列表