Diva Lesson Backend 是一个基于 FastAPI 的后端开发项目,专注于音乐课程教学系统的核心功能实现。该项目提供了完整的后端服务,支持语音交互、智能对话、课程管理、评分系统等核心功能。
Diva-Lesson-Backend/ ├── src/ # 源代码目录 │ ├── common/ # 公共模块 │ │ ├── cache/ # Redis 缓存管理 │ │ ├── db/ # 数据库连接和 ORM │ │ ├── oss/ # OSS 文件存储 │ │ └── config.py # 配置管理 │ ├── gateway/ # API 网关层 │ │ ├── controllers/ # 控制器 │ │ ├── docs/ # API 文档 │ │ ├── middlewares/ # 中间件 │ │ ├── models/ # 请求/响应模型 │ │ └── routes/ # 路由定义 │ ├── services/ # 业务逻辑层 │ │ ├── agent/ # 智能体服务 │ │ ├── asr/ # 语音识别服务 │ │ ├── tts/ # 语音合成服务 │ │ ├── fileupload/ # 文件上传服务 │ │ ├── login/ # 登录认证服务 │ │ └── scoring/ # 评分服务 │ ├── utils/ # 工具函数 │ ├── logs/ # 日志模块 │ └── scripts/ # 脚本工具 ├── tests/ # 测试目录 │ ├── benchmark/ # 性能测试 │ └── performance/ # 性能分析 ├── docs/ # 文档目录 ├── alembic/ # 数据库迁移 ├── MODEL_WEIGHT/ # 模型权重文件 ├── main.py # 应用入口 ├── pyproject.toml # 项目配置 ├── .env.example # 环境变量示例 └── README.md # 项目说明文档
git clone <repository-url>
cd Diva-Lesson-Backend
如果尚未安装 uv,请运行:
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# 创建虚拟环境
uv venv
# 激活虚拟环境
# Windows
.venv\Scripts\activate
# macOS/Linux
source .venv/bin/activate
# 安装依赖
uv sync
复制环境变量示例文件并根据实际情况修改:
cp .env.example .env
编辑 .env 文件,配置以下关键参数:
# 主配置 HOST=0.0.0.0 PORT=8000 RELOAD=True # Redis 配置 REDIS_HOST=localhost REDIS_PORT=6379 REDIS_DB=0 REDIS_PASSWORD= # PostgreSQL 配置 POSTGRES_HOST=localhost POSTGRES_PORT=5432 POSTGRES_DB=diva_ai_lesson POSTGRES_USER=postgres POSTGRES_PASSWORD=your_password # JWT 配置 JWT_SECRET_KEY=your_secret_key JWT_EXPIRE_TIMEOUT=7200 JWT_ALGORITHM=HS256 # OSS 配置 OSS_ACCESS_KEY_ID=your_access_key_id OSS_ACCESS_KEY_SECRET=your_access_key_secret OSS_ENDPOINT=your_oss_endpoint OSS_BUCKET_NAME=your_bucket_name OSS_DOMAIN=your_oss_domain # DashScope 配置 DASHSCOPE_API_KEY=your_api_key DASHSCOPE_ASR_MODEL=paraformer-realtime-v2 DASHSCOPE_LLM_MODEL=qwen-plus DASHSCOPE_TTS_MODEL=sambert-zhichu-v1
# 运行数据库迁移
alembic upgrade head
# 初始化默认账户(仅限开发环境)
python src/scripts/init_default_accounts.py
如果需要配置 OSS 跨域访问:
python src/scripts/setup_oss_cors.py
# 启动开发服务器(支持热重载)
uv run python main.py
或使用 uvicorn 直接启动:
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
修改 .env 文件中的 RELOAD=False,然后运行:
uv run python main.py
启动服务后,访问以下地址查看 API 文档:
运行测试套件:
# 运行所有测试
pytest
# 运行特定测试文件
pytest tests/test_example.py
# 运行测试并生成覆盖率报告
pytest --cov=src --cov-report=html
# 代码格式化
black src/ tests/
# 代码检查
flake8 src/ tests/
# 导入排序
isort src/ tests/
项目已配置为使用 CPU 版本的 PyTorch,如果遇到问题,请确保:
# 手动安装 CPU 版本
uv pip install torch --index-url https://download.pytorch.org/whl/cpu
检查 PostgreSQL 服务是否运行,以及 .env 中的数据库配置是否正确。
检查 Redis 服务是否运行,以及 .env 中的 Redis 配置是否正确。
本项目为内部项目,用于内部服务器部署,不对外开源。