Files
ai_english/README.md
2025-11-17 14:09:17 +08:00

800 lines
24 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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技术我们相信每个人都能够高效地掌握英语实现自己的学习目标。立即开始您的智能英语学习体验吧