# ai作业系统后端 **Repository Path**: tianyou_y/homework_backend ## Basic Information - **Project Name**: ai作业系统后端 - **Description**: 作业系统后端相关代码 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2026-05-10 - **Last Updated**: 2026-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Homework 后端项目 一个基于 FastAPI 的作业管理系统后端,支持用户管理、作业发布、团队协作和 AI 辅助功能。 ## 项目地址 - **前端项目**: https://gitee.com/lingxi066/HomeWork_frontend - **后端项目**: https://gitee.com/lingxi066/homework_backend ## 功能特性 - **用户管理**: 用户注册、登录、JWT 认证 - **作业管理**: 作业发布、提交、批改 - **团队协作**: 团队创建、成员管理、团队作业 - **AI 辅助**: OpenAI 集成,提供智能批改和建议 - **答题系统**: 支持选择题、简答题等多种题型 - **数据统计**: 作业完成情况统计和分析 ## 技术栈 - **后端框架**: FastAPI - **数据库**: PostgreSQL + SQLModel (ORM) - **认证**: JWT (JSON Web Tokens) - **AI 集成**: OpenAI API - **异步支持**: async/await - **数据验证**: Pydantic v2 ## 项目结构 ``` homework_backend/ ├── main.py # 应用入口 ├── settings.py # 配置文件 ├── requirements.txt # 依赖包 ├── dao/ # 数据访问对象 ├── dto/ # 数据传输对象 ├── model/ # 数据库模型 ├── plugin/ # 工具模块 │ ├── sql.py # 数据库连接 │ ├── crypt.py # 加密工具 │ └── ai.py # AI 集成 ├── router/ # API 路由 │ ├── user.py # 用户相关 │ ├── homework.py # 作业相关 │ ├── answer.py # 答题相关 │ ├── team.py # 团队相关 │ ├── ai.py # AI 功能 │ └── __init__.py # 路由初始化 ├── schema/ # Pydantic 模式 │ └── response.py # API 响应格式 └── service/ # 业务逻辑层 ├── user.py # 用户服务 ├── homework.py # 作业服务 ├── answer.py # 答题服务 └── ai.py # AI 服务 ``` ## 快速开始 ### 1. 环境要求 - Python 3.8+ - PostgreSQL 12+ - pip (Python 包管理器) ### 2. 安装依赖 ```bash pip install -r requirements.txt ``` ### 3. 数据库配置 1. 创建 PostgreSQL 数据库: ```sql CREATE DATABASE homework; ``` 2. 修改数据库连接配置(`settings.py`): ```python async_database_url = "postgresql+asyncpg://username:password@localhost:5432/homework" ``` ### 4. 运行应用 ```bash python main.py ``` 应用将在 `http://0.0.0.0:8000` 启动。 ### 5. 创建数据库表 访问以下端点创建数据库表: ``` GET http://localhost:8000/create_table ``` ## API 文档 启动应用后,访问以下地址查看 API 文档: - Swagger UI: `http://localhost:8000/docs` - ReDoc: `http://localhost:8000/redoc` ## 主要 API 端点 ### 用户管理 - `POST /user/login` - 用户登录 - `POST /user/register` - 用户注册 - `GET /user_info/{user_id}` - 获取用户信息 ### 作业管理 - `POST /homework/create` - 创建作业 - `GET /homework/list` - 获取作业列表 - `GET /homework/{homework_id}` - 获取作业详情 ### 答题系统 - `POST /answer/submit` - 提交答案 - `GET /answer/{answer_id}` - 获取答案详情 - `POST /answer_sheet/create` - 创建答题卡 ### 团队管理 - `POST /team/create` - 创建团队 - `POST /team/join` - 加入团队 - `GET /team/{team_id}` - 获取团队信息 ### AI 功能 - `POST /ai/grade` - AI 批改作业 - `POST /ai/suggest` - AI 学习建议 ## 开发指南 ### 代码规范 - 使用 **snake_case** 命名文件和变量 - 使用 **PascalCase** 命名类 - 使用 **UPPER_SNAKE_CASE** 命名常量 - 所有 API 响应使用 `ApiResponse` 模式包装 - 使用类型注解(Type Hints) ### 添加新功能 1. 在 `model/` 中定义数据库模型 2. 在 `dao/` 中创建数据访问对象 3. 在 `service/` 中实现业务逻辑 4. 在 `router/` 中定义 API 端点 5. 在 `schema/` 中定义请求/响应模式 ### 测试 ```bash # 启动应用后测试端点 curl -X GET http://localhost:8000/create_table curl -X POST http://localhost:8000/user/login -H "Content-Type: application/json" -d '{"user_id": 1, "user_password": "password"}' ``` ## 配置说明 ### 配置文件 所有配置集中在 `settings.py`: ```python DATABASE_URL = "postgresql+asyncpg://postgres:123456@localhost:5432/homework" JWT_SECRET_KEY = "5vCl6n3Uvi1HhKmPUNvszmMrFRyGC7ap" JWT_ALGORITHM = "HS256" AI_BASE_URL = "https://api.deepseek.com" AI_API_KEY = "sk-bb0c1814c4d047948a3ad61b813e5aed" ``` ### 生产环境建议 1. 使用环境变量替换 `settings.py` 中的配置 2. 限制 CORS 来源(当前为 `["*"]`) 3. 添加日志记录 4. 配置 HTTPS 5. 添加速率限制 ## 依赖包 - `fastapi~=0.124.4` - Web 框架 - `sqlmodel==0.0.27` - ORM 和数据库模型 - `asyncpg` - PostgreSQL 异步驱动 - `PyJWT` - JWT 认证 - `openai` - OpenAI API 客户端 - `uvicorn~=0.38.0` - ASGI 服务器 - `pydantic~=2.12.5` - 数据验证 ## 许可证 MIT License - 详见 LICENSE 文件 ## 贡献 1. Fork 项目 2. 创建功能分支 (`git checkout -b feature/amazing-feature`) 3. 提交更改 (`git commit -m 'Add amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 创建 Pull Request ## 问题反馈 如有问题或建议,请提交 Issue 或联系维护者。