Files
ai_english/README.md

800 lines
24 KiB
Markdown
Raw Permalink Normal View History

2025-11-17 14:09:17 +08:00
# AI英语学习平台
一个基于AI技术的智能英语学习平台提供个性化的英语学习体验包括词汇学习、听力训练、阅读理解、写作练习和口语练习等功能。
## 🌟 特性
- **智能词汇学习**:基于艾宾浩斯遗忘曲线的智能复习系统
- **听力训练**:多样化的听力材料和智能评估
- **阅读理解**:分级阅读材料和理解测试
- **写作练习**AI智能批改和写作建议
- **口语练习**AI对话伙伴和发音评估
- **学习统计**:详细的学习进度和成绩分析
- **个性化推荐**:基于学习数据的智能内容推荐
## 🏗️ 技术架构
### 后端技术栈
- **语言**Go 1.19+
- **框架**Gin Web Framework
- **数据库**MySQL 8.0+
- **缓存**Redis 7.0+
- **认证**JWT Token
- **日志**Logrus
- **配置**Viper
- **容器化**Docker & Docker Compose
### 前端技术栈
- **框架**Flutter
- **状态管理**Provider/Riverpod
- **网络请求**Dio
- **本地存储**SharedPreferences/Hive
## 📁 项目结构
```
ai_english_learning/
├── client/ # Flutter前端应用
│ ├── lib/
│ │ ├── models/ # 数据模型
│ │ ├── services/ # 业务服务
│ │ ├── screens/ # 页面组件
│ │ ├── widgets/ # 通用组件
│ │ └── utils/ # 工具类
│ └── pubspec.yaml
├── serve/ # Go后端服务
│ ├── api/ # API处理器
│ ├── internal/ # 内部模块
│ │ ├── config/ # 配置管理
│ │ ├── database/ # 数据库操作
│ │ ├── logger/ # 日志系统
│ │ ├── middleware/ # 中间件
│ │ ├── models/ # 数据模型
│ │ └── services/ # 业务服务
│ ├── config/ # 配置文件
│ ├── logs/ # 日志文件
│ ├── main.go # 应用入口
│ ├── router.go # 路由配置
│ ├── Dockerfile # Docker配置
│ ├── Makefile # 构建脚本
│ └── start.sh # 启动脚本
├── docs/ # 项目文档
│ ├── API接口文档.md
│ ├── 需求文档.md
│ ├── 技术架构文档.md
│ └── database_schema.sql
├── docker-compose.yml # Docker Compose配置
├── DEPLOYMENT.md # 部署指南
└── README.md # 项目说明
```
## 🚀 快速开始
### 环境要求
- Go 1.19+
- MySQL 8.0+
- Redis 7.0+
- Docker & Docker Compose (可选)
- Flutter 3.0+ (前端开发)
### 使用Docker Compose推荐
1. **克隆项目**
```bash
git clone <repository-url>
cd ai_english_learning
```
2. **启动所有服务**
```bash
docker-compose up -d
```
3. **查看服务状态**
```bash
docker-compose ps
```
4. **访问应用**
- 后端APIhttp://localhost:8080
- 健康检查http://localhost:8080/health
- API文档查看 `docs/API接口文档.md`
### 本地开发
#### 后端开发
1. **进入后端目录**
```bash
cd serve
```
2. **安装依赖**
```bash
go mod tidy
```
3. **配置数据库**
```bash
# 创建数据库
mysql -u root -p -e "CREATE DATABASE ai_english_learning CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
# 导入数据库结构
mysql -u root -p ai_english_learning < ../docs/database_schema.sql
```
4. **配置应用**
```bash
# 复制配置文件
cp config/config.yaml config/config.local.yaml
# 编辑配置文件,修改数据库连接等信息
vim config/config.local.yaml
```
5. **启动应用**
```bash
# 使用启动脚本(推荐)
./start.sh -d
# 或者直接运行
go run .
# 或者使用Makefile
make dev
```
#### 前端开发
1. **进入前端目录**
```bash
cd client
```
2. **安装依赖**
```bash
flutter pub get
```
3. **运行应用**
```bash
flutter run
```
4. **使用安卓模拟器启动预览**
```
检查设备
$ flutter devices
软件加速模式启动模拟器
$ emulator -avd flutter_emulator -no-accel
使用完整路径来启动模拟器
$ ANDROID_HOME/emulator/emulator -avd flutter_emulator -no-accel
等待模拟器启动后,启动服务
$ flutter run -d emulator-5554
flutter run -d chrome --web-port=3003
```
# 进入前端目录
cd /home/nanqipro01/gitlocal/YunQue-Tech-Projects/ai_english_learning/client
# 在模拟器上运行应用
flutter run -d emulator-5554
# 或者让Flutter自动选择设备
flutter run
## 📖 API文档
详细的API文档请查看[API接口文档.md](docs/API接口文档.md)
### 主要API端点
- **认证相关**
- `POST /api/auth/register` - 用户注册
- `POST /api/auth/login` - 用户登录
- `POST /api/auth/refresh` - 刷新Token
- **用户管理**
- `GET /api/users/profile` - 获取用户信息
- `PUT /api/users/profile` - 更新用户信息
- `GET /api/users/stats` - 获取学习统计
- **词汇学习**
- `GET /api/vocabulary/words` - 获取单词列表
- `POST /api/vocabulary/learn` - 学习单词
- `GET /api/vocabulary/review` - 获取复习单词
- **健康检查**
- `GET /health` - 综合健康检查
- `GET /health/liveness` - 存活检查
- `GET /health/readiness` - 就绪检查
- `GET /version` - 版本信息
## 🔧 配置说明
### 环境变量
```bash
# 服务器配置
SERVER_PORT=8080
SERVER_MODE=release
# 数据库配置
DATABASE_HOST=localhost
DATABASE_PORT=3306
DATABASE_USER=ai_english
DATABASE_PASSWORD=your_password
DATABASE_NAME=ai_english_learning
# Redis配置
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
# JWT配置
JWT_SECRET=your-super-secret-jwt-key
JWT_ACCESS_TOKEN_TTL=3600
JWT_REFRESH_TOKEN_TTL=604800
# 应用配置
APP_ENVIRONMENT=production
LOG_LEVEL=info
```
### 配置文件
配置文件位于 `serve/config/config.yaml`,支持多环境配置。
## 🧪 测试
### 运行测试
```bash
# 后端测试
cd serve
make test
# 前端测试
cd client
flutter test
```
### 性能测试
```bash
cd serve
make bench
```
## 📦 部署
详细的部署指南请查看:[DEPLOYMENT.md](DEPLOYMENT.md)
### 生产环境部署
1. **构建Docker镜像**
```bash
make docker-build
```
2. **部署到生产环境**
```bash
docker-compose -f docker-compose.prod.yml up -d
```
3. **配置反向代理**
```nginx
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
## 🔍 监控和维护
### 日志查看
```bash
# 查看应用日志
tail -f serve/logs/app.log
# Docker环境日志
docker-compose logs -f ai-english-backend
```
### 健康检查
```bash
# 检查服务状态
curl http://localhost:8080/health
# 检查版本信息
curl http://localhost:8080/version
```
### 数据库备份
```bash
# 备份数据库
mysqldump -u root -p ai_english_learning > backup_$(date +%Y%m%d_%H%M%S).sql
# 使用Makefile
make backup
```
## 🤝 贡献指南
1. Fork 项目
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 打开 Pull Request
### 代码规范
- **Go代码**:遵循 `gofmt``golint` 规范
- **Flutter代码**:遵循 Dart 官方代码规范
- **提交信息**:使用语义化提交信息
## 📄 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
## 📞 联系我们
- **项目维护者**[Your Name]
- **邮箱**[your.email@example.com]
- **问题反馈**[GitHub Issues](https://github.com/your-username/ai-english-learning/issues)
## 🙏 致谢
感谢所有为这个项目做出贡献的开发者和用户。
---
**注意**:这是一个学习项目,仅供教育和研究目的使用。
## 核心特色
### 🤖 AI驱动的个性化学习
- 基于用户学习数据的智能推荐系统
- 自适应学习路径规划
- 个性化学习内容匹配
- 智能学习进度调整
### 📚 全技能覆盖
- **词汇学习**:科学记忆算法,多维度词汇训练
- **听力训练**:分级听力材料,智能语音识别
- **阅读理解**:多样化文章,智能阅读辅助
- **写作练习**AI智能批改实时反馈改进
- **口语练习**AI对话伙伴发音智能评估
### 🎯 考试导向支持
- 四六级英语考试专项训练
- 托福、雅思考试备考模块
- 考研英语专业辅导
- 商务英语实用技能
### 📊 数据驱动的学习分析
- 详细的学习数据统计
- 多维度能力分析报告
- 学习进度可视化展示
- 个性化改进建议
## 主要功能模块
### 1. 个人主页
- 学习数据概览(已学单词数、连续打卡天数、平均得分)
- 学习进度可视化(词库进度、技能雷达图)
- 今日学习推荐
- 个人信息管理
### 2. 单词学习模块
- **分级词库**:从小学到专业级别的完整词汇体系
- **智能记忆**:基于艾宾浩斯记忆曲线的复习算法
- **多模式学习**:卡片背诵、测试练习、语境学习
- **AI助手**:智能例句生成、词汇关联、记忆技巧
### 3. 听力训练模块
- **分级内容**:从日常对话到学术讲座的全覆盖
- **智能播放**:语速调节、重复播放、字幕控制
- **多样练习**:理解练习、听写练习、跟读练习
- **能力分析**:语音识别、语义理解、语速适应能力评估
### 4. 阅读理解模块
- **双模式阅读**:休闲阅读和练习阅读
- **智能辅助**:即点即译、段落摘要、结构分析
- **多样题型**:主旨大意、细节理解、推理判断
- **技能训练**:快速阅读、精读、扫读、略读
### 5. 写作练习模块
- **多种模式**:中译英练习、话题写作
- **考试专项**:四六级、考研、托福、雅思写作
- **AI智能批改**:语法检查、词汇评估、表达流畅度分析
- **写作辅助**:模板库、素材库、例句参考
### 6. 口语练习模块
- **AI对话伙伴**:商务、日常、旅行、学术等专业导师
- **场景训练**:生活、职场、学术等真实场景对话
- **智能评估**:发音准确度、流利度、语法正确性
- **个性化训练**:能力诊断、适应性训练
### 7. AI智能助手
- **个性化推荐**:学习内容和路径智能推荐
- **智能答疑**:语言问题解答、学习方法指导
- **学习分析**:行为分析、能力诊断
- **多模态交互**:文本、语音、视觉交互支持
## 技术架构
### 前端技术
- **Flutter**:跨平台移动应用开发
- 支持iOS、Android、Web、桌面多平台
- 响应式设计,优秀的用户体验
### 后端技术
- **Go Gin**高性能API服务
- **微服务架构**:模块化、可扩展的系统设计
- **MySQL 8.0**:可靠的关系型数据库
### AI技术栈
- **Hugging Face Transformers**:自然语言处理
- **PyTorch**:深度学习框架
- **spaCy**:高级自然语言处理
- **语音识别与合成**:智能语音处理
### 部署与运维
- **Docker + Docker Compose**:容器化部署
- **GitHub Actions/Codemagic**CI/CD自动化
- **Celery + RabbitMQ/Redis**:异步任务处理
## 项目结构
### 整体项目结构
```
ai_english_learning/
├── docs/ # 项目文档
│ ├── UI界面设计/ # UI设计文件
│ ├── 详细需求文档.md # 功能需求文档
│ └── 技术选型.md # 技术架构文档
├── client/ # 前端代码Flutter
├── serve/ # 后端代码Go
├── deployment/ # 部署配置
├── tests/ # 测试代码
├── docker-compose.yml # Docker编排文件
└── README.md # 项目说明文档
```
### 前端项目结构Flutter
```
client/
├── android/ # Android平台配置
├── ios/ # iOS平台配置
├── lib/ # 主要源代码目录
│ ├── main.dart # 应用入口文件
│ ├── core/ # 核心功能模块
│ │ ├── constants/ # 常量定义
│ │ │ ├── app_constants.dart
│ │ │ ├── api_constants.dart
│ │ │ └── color_constants.dart
│ │ ├── services/ # 核心服务
│ │ │ ├── api_service.dart # API服务封装
│ │ │ ├── auth_service.dart # 认证服务
│ │ │ ├── storage_service.dart # 本地存储
│ │ │ └── notification_service.dart # 通知服务
│ │ ├── utils/ # 工具类
│ │ │ ├── validators.dart # 表单验证
│ │ │ ├── formatters.dart # 数据格式化
│ │ │ └── helpers.dart # 辅助函数
│ │ └── widgets/ # 通用组件
│ │ ├── custom_button.dart
│ │ ├── custom_text_field.dart
│ │ ├── loading_widget.dart
│ │ └── error_widget.dart
│ ├── features/ # 功能模块
│ │ ├── auth/ # 认证模块
│ │ │ ├── models/ # 数据模型
│ │ │ ├── providers/ # 状态管理
│ │ │ ├── screens/ # 页面组件
│ │ │ └── widgets/ # 功能组件
│ │ ├── home/ # 主页模块
│ │ ├── vocabulary/ # 词汇学习模块
│ │ ├── listening/ # 听力训练模块
│ │ ├── reading/ # 阅读理解模块
│ │ ├── writing/ # 写作练习模块
│ │ ├── speaking/ # 口语练习模块
│ │ ├── profile/ # 个人中心模块
│ │ └── settings/ # 设置模块
│ ├── models/ # 全局数据模型
│ │ ├── user_model.dart
│ │ ├── vocabulary_model.dart
│ │ ├── learning_model.dart
│ │ └── response_model.dart
│ ├── providers/ # 全局状态管理
│ │ ├── auth_provider.dart
│ │ ├── user_provider.dart
│ │ ├── theme_provider.dart
│ │ └── language_provider.dart
│ ├── routes/ # 路由配置
│ │ ├── app_routes.dart
│ │ └── route_generator.dart
│ └── themes/ # 主题配置
│ ├── app_theme.dart
│ ├── light_theme.dart
│ └── dark_theme.dart
├── assets/ # 静态资源
│ ├── images/ # 图片资源
│ ├── icons/ # 图标资源
│ ├── fonts/ # 字体文件
│ └── audio/ # 音频文件
├── test/ # 测试文件
├── pubspec.yaml # 依赖配置文件
└── analysis_options.yaml # 代码分析配置
```
### 后端项目结构Go
```
serve/
├── main.go # 应用入口文件
├── start.sh # 启动脚本
├── go.mod # Go模块依赖
├── go.sum # 依赖校验文件
├── Dockerfile # Docker构建文件
├── .dockerignore # Docker忽略文件
├── config/ # 配置管理
│ ├── config.go # 配置结构定义
│ └── config.yaml # 配置文件
├── api/ # API层
│ ├── router.go # 路由配置
│ ├── middleware.go # 中间件配置
│ └── handlers/ # 请求处理器
│ ├── auth_handler.go # 认证处理
│ ├── user_handler.go # 用户管理
│ ├── vocabulary_handler.go # 词汇功能
│ ├── listening_handler.go # 听力功能
│ ├── reading_handler.go # 阅读功能
│ ├── writing_handler.go # 写作功能
│ ├── speaking_handler.go # 口语功能
│ └── health_handler.go # 健康检查
├── internal/ # 内部模块
│ ├── common/ # 通用组件
│ │ ├── errors.go # 错误定义
│ │ └── response.go # 响应格式
│ ├── database/ # 数据库层
│ │ ├── database.go # 数据库连接
│ │ ├── migrate.go # 数据库迁移
│ │ └── seed.go # 数据初始化
│ ├── handler/ # 业务处理器
│ │ ├── ai_handler.go # AI服务处理
│ │ └── upload_handler.go # 文件上传处理
│ ├── logger/ # 日志系统
│ │ └── logger.go # 日志配置
│ ├── middleware/ # 中间件
│ │ ├── auth.go # 认证中间件
│ │ ├── cors.go # 跨域中间件
│ │ ├── error_handler.go # 错误处理中间件
│ │ └── logger.go # 日志中间件
│ ├── models/ # 数据模型
│ │ ├── user.go # 用户模型
│ │ ├── vocabulary.go # 词汇模型
│ │ ├── learning.go # 学习记录模型
│ │ └── ai_models.go # AI相关模型
│ ├── services/ # 业务服务层
│ │ ├── user_service.go # 用户服务
│ │ ├── vocabulary_service.go # 词汇服务
│ │ ├── listening_service.go # 听力服务
│ │ ├── reading_service.go # 阅读服务
│ │ ├── writing_service.go # 写作服务
│ │ ├── speaking_service.go # 口语服务
│ │ ├── ai_service.go # AI服务
│ │ └── upload_service.go # 文件上传服务
│ └── utils/ # 工具函数
│ └── utils.go # 通用工具
└── uploads/ # 文件上传目录
├── audio/ # 音频文件
└── images/ # 图片文件
```
### 核心技术架构
#### 前端架构特点
- **模块化设计**:按功能模块组织代码,便于维护和扩展
- **状态管理**使用Provider进行全局状态管理
- **组件复用**:通用组件和功能组件分离,提高代码复用性
- **主题系统**:支持明暗主题切换,提供良好的用户体验
- **路由管理**:统一的路由配置和导航管理
- **响应式设计**:适配不同屏幕尺寸的设备
#### 后端架构特点
- **分层架构**Handler -> Service -> Model 的清晰分层
- **中间件系统**:认证、日志、错误处理等中间件
- **配置管理**:统一的配置文件和环境变量管理
- **数据库设计**GORM ORM框架支持自动迁移和数据初始化
- **API设计**RESTful API设计统一的响应格式
- **日志系统**:结构化日志,支持不同级别和输出方式
- **文件管理**:支持音频、图片等多媒体文件上传和管理
#### 数据库设计
- **用户系统**:用户信息、偏好设置、社交链接
- **词汇系统**:词汇分类、词汇定义、例句、图片
- **学习记录**:听力、阅读、写作、口语的学习记录和进度
- **AI服务**AI相关的配置和使用记录
- **关系设计**:合理的外键关系和索引优化
#### 安全特性
- **JWT认证**基于Token的无状态认证
- **密码加密**bcrypt加密存储用户密码
- **CORS配置**:跨域请求安全控制
- **输入验证**:前后端双重数据验证
- **错误处理**:统一的错误处理和日志记录
## 快速开始
### 环境要求
- Flutter SDK 3.0+
- Go 1.19+
- MySQL 8.0+
- Docker & Docker Compose
- Node.js 16+ (用于部分工具)
### 安装步骤
1. **克隆项目**
```bash
git clone https://github.com/your-org/ai_english_learning.git
cd ai_english_learning
```
2. **后端环境设置**
```bash
cd backend
# 初始化Go模块
go mod init ai_english_learning
go mod tidy
```
3. **数据库设置**
```bash
# 启动MySQL数据库
docker-compose up -d mysql
# 运行数据库迁移
go run cmd/migrate/main.go
```
4. **前端环境设置**
```bash
cd frontend
flutter pub get
flutter run
```
5. **启动开发服务器**
```bash
# 后端API服务
cd backend
go run main.go
# AI服务
celery -A ai_services worker --loglevel=info
```
## 开发指南
### 代码规范
- 遵循Go官方代码规范gofmt, golint
- 使用Flutter官方代码规范
- 提交前运行代码格式化和静态检查
### 测试
```bash
# 后端测试
go test ./...
# 前端测试
flutter test
```
### 部署
```bash
# 使用Docker Compose部署
docker-compose up -d
# 生产环境部署
docker-compose -f docker-compose.prod.yml up -d
```
## 学习目标用户
### 学生群体
- **小学生**:基础词汇学习,简单对话练习
- **中学生**:考试备考,技能全面提升
- **大学生**:四六级备考,学术英语提升
- **研究生**:考研英语,学术写作训练
### 成人学习者
- **职场人士**:商务英语,职业发展需求
- **出国留学**:托福雅思备考,留学准备
- **兴趣学习**:日常英语,文化交流
- **专业提升**:行业英语,专业技能
## 学习效果
### 短期效果1-3个月
- 词汇量显著增加500-1500词
- 听力理解能力明显提升
- 基础语法掌握更加牢固
- 口语表达更加自信
### 中期效果3-6个月
- 阅读速度和理解能力大幅提升
- 写作表达更加地道和流畅
- 口语交流基本无障碍
- 考试成绩显著提高
### 长期效果6个月以上
- 英语思维逐步建立
- 能够进行复杂的英语交流
- 具备独立的英语学习能力
- 达到目标英语水平
## 贡献指南
我们欢迎社区贡献!请遵循以下步骤:
1. Fork 项目仓库
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建 Pull Request
### 贡献类型
- 🐛 Bug修复
- ✨ 新功能开发
- 📚 文档改进
- 🎨 UI/UX优化
- ⚡ 性能优化
- 🧪 测试覆盖
## 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
## 联系我们
- **项目主页**https://github.com/your-org/ai_english_learning
- **问题反馈**https://github.com/your-org/ai_english_learning/issues
- **邮箱联系**contact@ai-english-learning.com
- **官方网站**https://www.ai-english-learning.com
## 更新日志
### v1.0.0 (2024-01-01)
- 🎉 项目初始版本发布
- ✨ 完整的词汇学习模块
- ✨ 基础的听说读写功能
- ✨ AI智能助手集成
- ✨ 用户数据统计分析
### 即将发布
- 🔄 更多AI功能集成
- 📱 移动端应用优化
- 🌐 多语言界面支持
- 🎮 游戏化学习元素
- 👥 社交学习功能
---
**让AI助力您的英语学习之旅** 🚀
通过科学的学习方法和先进的AI技术我们相信每个人都能够高效地掌握英语实现自己的学习目标。立即开始您的智能英语学习体验吧