feat: 实现数据库驱动的API配置管理和项目结构重组

## 新功能
- 实现管理后台API配置管理(OpenAI/Anthropic/Qwen)
- API配置保存到数据库,实时生效无需重启
- API密钥遮罩显示(前10位+后4位)
- 完整endpoint URL自动显示

## 后端改进
- 新增 config_service.py 用于加载数据库配置
- LLMService 支持动态配置注入,回退到环境变量
- 更新 exam.py 和 question.py 使用数据库配置
- 扩展 schemas.py 支持所有API配置字段

## 前端改进
- 重写 AdminSettings.jsx 增强UI体验
- API密钥显示/隐藏切换
- 当前使用的提供商可视化标识
- 移除"需要重启"的误导性提示

## 项目结构重组
- 移动所有脚本到 scripts/ 目录
- 移动所有文档到 docs/ 目录
- 清理 Python 缓存文件

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-01 19:24:12 +08:00
parent 0ea8e5aa1e
commit a01f3540c5
47 changed files with 1051 additions and 129 deletions

View File

@@ -0,0 +1,134 @@
@echo off
chcp 65001 >nul
title QQuiz - 启动服务 (国内优化版)
cd /d "%~dp0.."
echo.
echo ==========================================
echo QQuiz - 智能刷题与题库管理平台
echo (国内网络优化版)
echo ==========================================
echo.
REM 检查是否在项目目录
if not exist "docker-compose.yml" (
echo [错误] 请在项目根目录运行此脚本!
pause
exit /b 1
)
REM 检查 .env 文件
if not exist ".env" (
echo [警告] .env 文件不存在,正在从模板创建...
copy .env.example .env >nul
echo [完成] 已创建 .env 文件,请编辑后重新运行此脚本
notepad .env
pause
exit /b 1
)
echo [1/5] 检查 Docker Desktop...
docker info >nul 2>&1
if %errorlevel% neq 0 (
echo [错误] Docker Desktop 未运行!
echo.
echo 请先启动 Docker Desktop然后按任意键继续...
pause >nul
REM 再次检查
docker info >nul 2>&1
if %errorlevel% neq 0 (
echo [错误] Docker Desktop 启动失败!
pause
exit /b 1
)
)
echo [完成] Docker Desktop 运行正常
echo.
echo [2/5] 检查镜像加速器配置...
docker info | findstr "Registry Mirrors" >nul
if %errorlevel% neq 0 (
echo [警告] 未检测到镜像加速器配置
echo.
echo 强烈建议配置镜像加速器以提高下载速度!
echo.
choice /C YN /M "是否现在配置镜像加速器"
if %errorlevel% equ 1 (
echo.
echo 请按照提示配置 Docker Desktop 镜像加速器...
call scripts\setup_docker_mirror.bat
echo.
echo 配置完成后,请重新运行此脚本
pause
exit /b 0
)
) else (
echo [完成] 已配置镜像加速器
)
echo.
echo [3/5] 停止旧容器...
docker-compose down >nul 2>&1
echo [完成]
echo.
echo [4/5] 启动服务(首次启动需要几分钟)...
echo.
echo [提示] 如果下载镜像失败,请:
echo 1. 配置镜像加速器(运行 setup_docker_mirror.bat
echo 2. 或使用备用启动方式(见下方提示)
echo.
docker-compose up -d
if %errorlevel% neq 0 (
echo.
echo [错误] 服务启动失败!
echo.
echo 可能的原因:
echo 1. 网络问题 - 无法下载 Docker 镜像
echo 2. 端口被占用 - 3000/8000/5432 端口已被使用
echo 3. 配置错误 - 检查 .env 文件
echo.
echo 解决方案:
echo 1. 配置镜像加速器: 运行 scripts\setup_docker_mirror.bat
echo 2. 查看详细错误: docker-compose logs
echo 3. 阅读文档: docs\DOCKER_MIRROR_SETUP.md
echo.
pause
exit /b 1
)
echo [完成] 服务启动成功
echo.
echo [5/5] 等待服务就绪...
timeout /t 8 /nobreak >nul
echo.
echo ==========================================
echo 服务已启动!
echo ==========================================
echo.
echo 前端地址: http://localhost:3000
echo 后端地址: http://localhost:8000
echo API 文档: http://localhost:8000/docs
echo.
echo 默认账户:
echo 用户名: admin
echo 密码: admin123
echo.
echo 镜像加速: 已配置国内镜像源
echo ==========================================
echo.
REM 询问是否打开浏览器
choice /C YN /M "是否打开浏览器"
if %errorlevel% equ 1 (
start http://localhost:3000
)
echo.
echo 按任意键查看日志Ctrl+C 退出日志查看)...
pause >nul
docker-compose logs -f