-
🔐 用户认证系统
- 邮箱注册/登录
- JWT Token认证
- 密码找回功能
- 账户管理
-
🤖 AI智能问答
- 集成DeepSeek和豆包AI模型
- 流式回答输出
- 多模型支持
- 上下文记忆
-
📝 聊天记录管理
- 会话创建和管理
- 历史消息查看
- 会话删除
- 消息状态跟踪
-
📚 学习资源管理
- 资源分类管理
- 资源添加/删除
- 收藏功能
- 资源搜索
-
📁 云盘功能
- 文件上传/下载
- 多格式支持(文档、图片、视频等)
- 视频自动压缩
- 文件管理
-
📖 语言学习
- 单词表管理
- 学习进度跟踪
- 单词复习
- AI生成学习文章
-
👨💼 管理后台
- 用户管理
- 文件管理
- 反馈处理
- 系统监控
-
🌐 IPv6支持
- 原生IPv6网络支持
- IPv6连接测试
- 双栈网络兼容
- 框架: FastAPI 0.104+
- 数据库: MySQL (SQLAlchemy ORM)
- 认证: JWT (python-jose)
- 密码加密: Passlib (bcrypt)
- AI服务: OpenAI兼容API (DeepSeek, 豆包)
- 服务器: Uvicorn (ASGI)
- 技术: HTML5 + CSS3 + JavaScript (原生)
- UI特性: 响应式设计、深色模式支持
- 交互: 流式AI回答、实时文件上传
- 网络: IPv6/IPv4双栈支持
- 文件存储: 本地文件系统
- 邮件服务: SMTP (QQ邮箱)
- Python 3.8+
- MySQL 5.7+ 或 MariaDB 10.3+
- IPv6网络支持(可选)
git clone <repository-url>
cd 基于IPv6的AI智能学习伴侣导师8.1pip install -r requirements.txt或者使用虚拟环境(推荐):
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt创建MySQL数据库:
CREATE DATABASE IF NOT EXISTS ipv6_education
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;在项目根目录创建 .env 文件:
# 数据库配置
DATABASE_URL=mysql+pymysql://username:password@localhost/ipv6_education
# JWT密钥(请使用强密钥)
JWT_SECRET_KEY=your-super-secret-jwt-key-change-in-production
# AI模型API密钥
DEEPSEEK_API_KEY=your-deepseek-api-key
DOUBAO_KEY=your-doubao-api-key
DOUBAO_BASEURL=https://api.doubao.com/v1
# 其他配置
MAX_TOKEN=4096- DATABASE_URL: MySQL连接字符串
- 格式:
mysql+pymysql://用户名:密码@主机:端口/数据库名 - 示例:
mysql+pymysql://root:123456@localhost:3306/ipv6_education
- 格式:
- DEEPSEEK_API_KEY: DeepSeek API密钥
- DOUBAO_KEY: 豆包API密钥
- DOUBAO_BASEURL: 豆包API基础URL
- JWT_SECRET_KEY: JWT签名密钥
⚠️ 重要: 生产环境必须使用强密钥(至少32字符)- 建议使用随机生成的密钥
cd py
python run.py或者使用uvicorn直接运行:
cd py
uvicorn app:app --host :: --port 5000 --reloadcd py
uvicorn app:app --host :: --port 5000 --workers 4访问地址:
- IPv6: http://[::]:5000
- IPv4: http://localhost:5000
- 本地IPv6: http://[::1]:5000
- API文档: http://localhost:5000/docs
- ReDoc文档: http://localhost:5000/redoc
💡 提示: 详细的启动指南请参考 START_GUIDE.md
FastAPI自动生成了交互式API文档:
- Swagger UI: http://localhost:5000/docs
- ReDoc: http://localhost:5000/redoc
| 端点 | 方法 | 说明 |
|---|---|---|
/api/register/email |
POST | 发送注册验证码 |
/api/register |
POST | 用户注册 |
/api/login |
POST | 用户登录 |
/api/forgot-password/email |
POST | 发送重置密码验证码 |
/api/forgot-password |
POST | 重置密码 |
/api/delete-account |
DELETE | 删除账户 |
| 端点 | 方法 | 说明 |
|---|---|---|
/api/ask-stream |
POST | 流式AI问答 |
| 端点 | 方法 | 说明 |
|---|---|---|
/api/chat-records/save |
POST | 保存聊天记录 |
/api/chat-records/sessions |
GET | 获取会话列表 |
/api/chat-records/session/{session_id} |
GET | 获取会话消息 |
/api/chat-records/new-session |
POST | 创建新会话 |
| 端点 | 方法 | 说明 |
|---|---|---|
/api/cloud_disk/upload |
POST | 上传文件 |
/api/cloud_disk/files |
GET | 获取文件列表 |
/api/cloud_disk/download/{file_id} |
GET | 下载文件 |
/api/cloud_disk/delete/{file_id} |
DELETE | 删除文件 |
详细API文档请参考:
项目根目录/
├── py/ # Python后端代码
│ ├── app.py # FastAPI主应用
│ ├── run.py # 应用启动文件
│ ├── language_learning.py # 语言学习模块
│ ├── chat_records.py # 聊天记录模块
│ ├── jwt加密.py # JWT工具(待重命名)
│ ├── 自动邮箱.py # 邮件工具(待重命名)
│ ├── cloud_disk/ # 云盘文件存储
│ └── uploads/ # 上传文件存储
├── html/ # 前端HTML文件
│ ├── index.html # 主页面
│ ├── admin.html # 管理页面
│ ├── language_learning.html # 语言学习页面
│ ├── cloud_disk.html # 云盘页面
│ ├── chat_management.html # 聊天管理页面
│ └── css/ # CSS样式文件(待提取)
├── 数据库/ # 数据库相关文件
├── cloud_disk/ # 云盘存储目录
├── uploads/ # 文件上传目录
├── instance/ # SQLite数据库(备用)
├── fastapi_requirements.txt # Python依赖
├── README.md # 本文件
├── README_FASTAPI.md # FastAPI详细说明
├── api_documentation.md # API文档
├── api_documentation_language_learning.md # 语言学习API文档
├── file_processing_standards.md # 文件处理标准
└── PROJECT_ANALYSIS_AND_OPTIMIZATION.md # 项目分析与优化方案
- 用户注册 → 发送验证码 → 验证邮箱 → 创建账户
- 用户登录 → JWT Token生成 → Token存储 → 后续请求携带Token
- 密码找回 → 发送验证码 → 验证码验证 → 重置密码
- 用户提问 → 创建会话 → 调用AI API → 流式返回结果
- 保存消息 → 存储到数据库 → 更新会话信息
- 文件上传 → 验证类型/大小 → 生成唯一文件名 → 保存到云盘
- 视频文件 → 自动压缩为ZIP → 保存
- 文件下载 → 验证权限 → 返回文件流
- 使用Python 3.8+语法
- 遵循PEP 8编码规范
- 使用类型提示(Type Hints)
- 添加必要的注释和文档字符串
本项目正在进行系统化优化,详细计划请参考: 项目分析与优化方案
- 在
py/models/中定义数据库模型 - 在
py/schemas/中定义Pydantic模型 - 在
py/routers/中添加路由 - 在
py/services/中实现业务逻辑 - 更新API文档
-
环境变量
- 使用强JWT密钥
- 配置正确的数据库连接
- 设置AI API密钥
-
服务器配置
- 使用Nginx作为反向代理
- 配置HTTPS
- 设置文件上传大小限制
-
数据库优化
- 创建必要的索引
- 配置连接池
- 定期备份
-
文件存储
- 确保足够的存储空间
- 设置正确的文件权限
- 考虑使用对象存储服务
详细部署说明请参考 部署文档
A: 检查以下几点:
- 端口5000是否被占用
- 环境变量是否正确配置
- 数据库连接是否正常
- 依赖是否完整安装
A:
- 确保网络环境支持IPv6
- 检查防火墙配置
- 可以修改配置使用IPv4
A:
- 检查API密钥是否正确
- 确认网络连接正常
- 查看日志文件了解详细错误
A:
- 确保已安装
python-multipart - 检查文件大小是否超过限制(100MB)
- 确认文件类型在允许列表中
- 检查文件存储目录权限
A:
- 检查SMTP配置是否正确
- 确认QQ邮箱授权码有效
- 检查网络连接和防火墙设置
- ✨ 新增语言学习模块
- ✨ 优化AI问答体验
- ✨ 改进文件管理功能
- 🐛 修复多个已知问题
- 📚 完善API文档
- 🎉 从Flask迁移到FastAPI
- ✨ 新增云盘功能
- ✨ 改进用户认证系统
- 📚 新增API自动文档
欢迎贡献代码!请遵循以下步骤:
- Fork本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启Pull Request
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
如有问题或建议,请通过以下方式联系:
- 提交Issue: GitHub Issues
- 邮箱: your-email@example.com
Made with ❤️ by the Development Team