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

94
scripts/start_windows.bat Normal file
View File

@@ -0,0 +1,94 @@
@echo off
chcp 65001 >nul
title QQuiz - 启动服务
cd /d "%~dp0.."
echo.
echo ==========================================
echo QQuiz - 智能刷题与题库管理平台
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/4] 检查 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 启动失败!
echo 请确保已安装 Docker Desktop: https://www.docker.com/products/docker-desktop/
pause
exit /b 1
)
)
echo [完成] Docker Desktop 运行正常
echo.
echo [2/4] 停止旧容器...
docker-compose down >nul 2>&1
echo [完成] 旧容器已停止
echo.
echo [3/4] 启动服务(首次启动需要几分钟下载镜像)...
docker-compose up -d
if %errorlevel% neq 0 (
echo [错误] 服务启动失败!
echo 请查看错误信息或运行: docker-compose logs
pause
exit /b 1
)
echo [完成] 服务启动成功
echo.
echo [4/4] 等待服务就绪...
timeout /t 5 /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.
REM 询问是否打开浏览器
choice /C YN /M "是否打开浏览器"
if %errorlevel% equ 1 (
start http://localhost:3000
)
echo.
echo 按任意键查看日志Ctrl+C 退出日志查看)...
pause >nul
docker-compose logs -f