diff --git a/.env.example b/.env.example index a91248b..1bd505d 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,4 @@ -QWEN_API_KEY=sk-85880595fc714d63bfd0b025e917bd26 +# 复制为 .env 并填写密钥,或直接在下方编辑(请勿将真实密钥提交到 Git) +QWEN_API_KEY= QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 -QWEN_MODEL=qwen3.5-plus +QWEN_MODEL=qwen-plus diff --git a/docker-compose.yml b/docker-compose.yml index f68f803..7f8833e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,12 +22,15 @@ services: context: ./backend container_name: exam-helper-backend restart: unless-stopped + # AI 相关变量优先从 .env.example 注入;若存在 .env 则覆盖同名项(见 Compose env_file 顺序) + env_file: + - .env.example + - path: .env + required: false environment: DATABASE_URL: postgresql+psycopg://exam_user:exam_pass@db:5432/exam_helper - CORS_ORIGINS: http://localhost:5173 - QWEN_API_KEY: ${QWEN_API_KEY:-} - QWEN_BASE_URL: ${QWEN_BASE_URL:-https://dashscope.aliyuncs.com/compatible-mode/v1} - QWEN_MODEL: ${QWEN_MODEL:-qwen-plus} + # 本地开发 Vite + Docker 前端均需允许 + CORS_ORIGINS: http://localhost:5173,http://localhost:8173 UPLOAD_DIR: /app/uploads volumes: - uploads_data:/app/uploads @@ -35,7 +38,7 @@ services: db: condition: service_healthy ports: - - "8866:8000" + - "127.0.0.1:8866:8000" frontend: build: @@ -45,7 +48,7 @@ services: depends_on: - backend ports: - - "8173:80" + - "127.0.0.1:8173:80" volumes: postgres_data: diff --git a/readme.md b/readme.md index 15508b4..e29bac2 100644 --- a/readme.md +++ b/readme.md @@ -64,20 +64,18 @@ docker compose up --build ## AI 配置(千问) -1. 复制配置模板: +`docker-compose.yml` 会从 **`.env.example`** 注入 `QWEN_*` 环境变量;若项目根目录存在 **`.env`**,其中同名变量会**覆盖** `.env.example`。 -```bash -cp .env.example .env -``` - -2. 编辑 `.env`,填入你的 `QWEN_API_KEY` -3. 重新启动服务: +1. 任选其一: + - 直接编辑 `.env.example`,填入 `QWEN_API_KEY`;或 + - `cp .env.example .env` 后只编辑 `.env`(推荐,避免把密钥提交进仓库) +2. 重新启动服务: ```bash ./start.sh ``` -> 千问接口采用 OpenAI 兼容模式,默认 `QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1`,模型 `qwen-plus`。 +> 千问接口采用 OpenAI 兼容模式,默认 `QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1`,模型可在 `.env.example` / `.env` 中通过 `QWEN_MODEL` 配置。 ## 常用命令 diff --git a/start.sh b/start.sh index 62f451a..fd23bd8 100755 --- a/start.sh +++ b/start.sh @@ -13,9 +13,9 @@ echo "==> 当前容器状态" docker compose ps if [[ -f ".env" ]]; then - echo "==> 检测到 .env,已可使用千问 AI 模块" + echo "==> 检测到 .env(将覆盖 .env.example 中的同名 AI 变量)" else - echo "==> 未检测到 .env(AI 模块需要配置 QWEN_API_KEY)" + echo "==> AI 配置来自 .env.example(请填写 QWEN_API_KEY;亦可复制为 .env 再填写)" fi echo "==> 健康检查(端口与 docker-compose.yml 一致:后端 8866,前端 Nginx 8173)"