AI学习搭子需求文档.md 11 KB

AI学习搭子需求文档

1. 项目概述

1.1 项目名称

AI学习搭子 - 智能学习伙伴应用

1.2 项目背景

本项目旨在开发一款基于AI技术的学习辅助应用,帮助用户制定学习目标、智能出题、记录学习进度,并提供AI交流功能,打造个性化的学习体验。

1.3 项目目标

  • 提供智能化的学习目标设定和管理
  • 基于AI技术的个性化出题系统
  • 详细的学习进度跟踪和数据分析
  • 智能AI助手提供学习指导和答疑
  • 丰富的学习报告和成就系统

2. 功能需求

2.1 用户管理模块

2.1.1 用户注册/登录

  • 支持用户名密码注册登录
  • 用户信息包含头像、用户名、年级等基本信息
  • 支持头像上传和更换

2.1.2 个人中心

  • 个人信息展示和编辑
  • 学习统计数据展示
  • 系统设置管理

2.2 学习目标管理模块

2.2.1 目标设定

  • 支持多种学科类型选择(数学、英语、物理、化学等)
  • 目标类型设定:学习时长、题目数量、单词量等
  • 难度级别选择:简单、中等、困难
  • 预计用时设定
  • 目标描述自定义

2.2.2 目标管理

  • 目标列表展示(未开始、进行中、已完成)
  • 目标进度实时更新
  • 目标编辑和删除
  • 目标完成状态跟踪

2.3 AI出题系统

2.3.1 智能出题

  • 根据学科、难度、知识点智能生成题目
  • 支持多种题型:选择题、填空题、单词练习
  • 题目内容包含题干、选项、答案、知识点
  • 难度自适应调整

2.3.2 答题功能

  • 在线答题界面
  • 答题计时功能
  • 实时答案校验
  • 答题记录保存

2.4 AI交流模块

2.4.1 智能对话

  • 支持文字对话交流
  • AI助手提供学习指导
  • 学习问题答疑解惑
  • 学习建议和鼓励

2.4.2 对话记录

  • 聊天记录保存
  • 历史对话查看
  • 对话内容搜索

2.5 学习报告模块

2.5.1 学习统计

  • 每日学习时长统计
  • 各科目学习时长占比
  • 学习目标完成情况
  • 连续学习天数记录

2.5.2 学习报告

  • 详细的学习报告生成
  • 正确率分析
  • 知识点掌握情况分析
  • 难度分析报告
  • 报告分享功能

2.6 成就系统

2.6.1 成就管理

  • 多种学习成就设定
  • 成就获得条件判断
  • 成就展示和分享
  • 成就激励机制

2.7 系统设置

2.7.1 个性化设置

  • 学习提醒开关
  • AI助手功能开关
  • 护眼模式设置
  • 其他个性化配置

3. 技术架构

3.1 系统架构

  • 前端:移动端应用(Android/iOS)
  • 后端:Spring Boot + MySQL
  • AI服务:集成第三方AI API或自建AI模型
  • 文件存储:云存储服务(头像、报告等)

3.2 技术栈

  • 后端框架:Spring Boot 2.x
  • 数据库:MySQL 8.0
  • 缓存:Redis
  • 消息队列:RabbitMQ(可选)
  • AI集成:OpenAI API 或其他AI服务

4. 数据库设计

4.1 用户信息表(user_info)

CREATE TABLE user_info (
    user_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID',
    avatar_url VARCHAR(255) COMMENT '头像存储路径',
    username VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名',
    password VARCHAR(255) NOT NULL COMMENT '密码',
    grade VARCHAR(20) COMMENT '年级信息',
    create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
);

4.2 目标表(goals)

CREATE TABLE goals (
    goal_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '目标ID',
    user_id BIGINT NOT NULL COMMENT '用户ID',
    subject VARCHAR(50) NOT NULL COMMENT '学科类型',
    goal_type VARCHAR(50) NOT NULL COMMENT '目标类型',
    goal_content TEXT COMMENT '目标描述',
    difficulty VARCHAR(20) COMMENT '难度',
    total_quantity INT DEFAULT 0 COMMENT '目标总量',
    completed_quantity INT DEFAULT 0 COMMENT '已完成量',
    estimated_time INT COMMENT '预计用时(分钟)',
    start_time TIMESTAMP COMMENT '开始时间',
    status TINYINT DEFAULT 0 COMMENT '状态(0-未开始,1-进行中,2-已完成)',
    create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    FOREIGN KEY (user_id) REFERENCES user_info(user_id)
);

4.3 AI对话表(ai_chat)

CREATE TABLE ai_chat (
    chat_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '对话ID',
    user_id BIGINT NOT NULL COMMENT '用户ID',
    content TEXT NOT NULL COMMENT '消息内容',
    type TINYINT NOT NULL COMMENT '消息类型(0=用户,1=AI)',
    timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '消息时间戳',
    FOREIGN KEY (user_id) REFERENCES user_info(user_id)
);

4.4 目标详情表(goal_of_detail)

CREATE TABLE goal_of_detail (
    detail_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '详情ID',
    goal_id BIGINT NOT NULL COMMENT '目标ID',
    subject VARCHAR(50) COMMENT '学科',
    content_type TINYINT COMMENT '类型(1-选择题,2-填空题,3-单词)',
    content TEXT COMMENT '内容详情',
    options JSON COMMENT '选项',
    answer TEXT COMMENT '答案',
    difficulty VARCHAR(20) COMMENT '难度',
    knowledge_point VARCHAR(100) COMMENT '知识点',
    FOREIGN KEY (goal_id) REFERENCES goals(goal_id)
);

4.5 学习报告表(study_report)

CREATE TABLE study_report (
    report_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '报告ID',
    goal_id BIGINT NOT NULL COMMENT '目标ID',
    user_id BIGINT NOT NULL COMMENT '用户ID',
    generate_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '生成时间',
    accuracy DECIMAL(5,2) COMMENT '正确率',
    knowledge_analysis JSON COMMENT '知识点分析',
    difficulty_analysis JSON COMMENT '难度分析',
    share_url VARCHAR(255) COMMENT '分享链接',
    FOREIGN KEY (goal_id) REFERENCES goals(goal_id),
    FOREIGN KEY (user_id) REFERENCES user_info(user_id)
);

4.6 用户答题记录表(user_answer)

CREATE TABLE user_answer (
    answer_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '记录ID',
    user_id BIGINT NOT NULL COMMENT '用户ID',
    goal_id BIGINT NOT NULL COMMENT '目标ID',
    content_id BIGINT NOT NULL COMMENT '题目ID',
    user_answer TEXT COMMENT '用户答案',
    is_correct TINYINT COMMENT '是否正确',
    spend_time INT COMMENT '单题用时(秒)',
    answer_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '答题时间',
    FOREIGN KEY (user_id) REFERENCES user_info(user_id),
    FOREIGN KEY (goal_id) REFERENCES goals(goal_id),
    FOREIGN KEY (content_id) REFERENCES goal_of_detail(detail_id)
);

4.7 学习统计表(study_stats)

CREATE TABLE study_stats (
    stats_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '统计ID',
    user_id BIGINT NOT NULL COMMENT '用户ID',
    daily_study_hours JSON COMMENT '每日学习时长',
    subject_study_duration JSON COMMENT '各科目学习时长占比',
    completed_goals INT DEFAULT 0 COMMENT '已完成目标数量',
    streak_days INT DEFAULT 0 COMMENT '连续学习天数',
    week_start_date DATE COMMENT '统计周开始日期',
    FOREIGN KEY (user_id) REFERENCES user_info(user_id)
);

4.8 学习成就表(achievements)

CREATE TABLE achievements (
    achievement_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '成就ID',
    user_id BIGINT NOT NULL COMMENT '用户ID',
    achievement_name VARCHAR(100) NOT NULL COMMENT '成就名称',
    achievement_source VARCHAR(255) COMMENT '成就图片资源',
    description TEXT COMMENT '成就说明',
    is_achieved TINYINT DEFAULT 0 COMMENT '是否获得成就',
    achieve_date TIMESTAMP NULL COMMENT '获得成就日期',
    FOREIGN KEY (user_id) REFERENCES user_info(user_id)
);

4.9 系统设置表(system_settings)

CREATE TABLE system_settings (
    setting_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '设置ID',
    user_id BIGINT NOT NULL COMMENT '用户ID',
    study_reminder_enabled TINYINT DEFAULT 1 COMMENT '学习提醒开关',
    ai_assistant_enabled TINYINT DEFAULT 1 COMMENT 'AI助手开关',
    eye_protection_enabled TINYINT DEFAULT 0 COMMENT '护眼模式开关',
    FOREIGN KEY (user_id) REFERENCES user_info(user_id)
);

5. 接口设计

5.1 用户管理接口

  • POST /api/users/register - 用户注册
  • POST /api/users/login - 用户登录
  • GET /api/users/{id} - 获取用户信息
  • PUT /api/users/{id} - 更新用户信息
  • POST /api/users/{id}/avatar - 上传头像

5.2 目标管理接口

  • POST /api/goals - 创建学习目标
  • GET /api/goals/user/{userId} - 获取用户目标列表
  • PUT /api/goals/{id} - 更新目标
  • DELETE /api/goals/{id} - 删除目标
  • POST /api/goals/{id}/start - 开始目标
  • POST /api/goals/{id}/complete - 完成目标

5.3 AI出题接口

  • POST /api/ai/generate-questions - AI生成题目
  • GET /api/questions/goal/{goalId} - 获取目标题目
  • POST /api/questions/{id}/answer - 提交答案

5.4 AI对话接口

  • POST /api/ai/chat - 发送消息
  • GET /api/ai/chat/history/{userId} - 获取聊天记录

5.5 学习报告接口

  • GET /api/reports/user/{userId} - 获取用户报告
  • POST /api/reports/generate - 生成学习报告
  • GET /api/reports/{id}/share - 分享报告

5.6 统计数据接口

  • GET /api/stats/user/{userId} - 获取用户统计
  • GET /api/stats/weekly/{userId} - 获取周统计

5.7 成就系统接口

  • GET /api/achievements/user/{userId} - 获取用户成就
  • POST /api/achievements/check - 检查成就获得

5.8 系统设置接口

  • GET /api/settings/user/{userId} - 获取用户设置
  • PUT /api/settings/user/{userId} - 更新用户设置

6. 非功能性需求

6.1 性能要求

  • 系统响应时间不超过2秒
  • 支持并发用户数1000+
  • 数据库查询优化,复杂查询时间不超过1秒

6.2 安全要求

  • 用户密码加密存储
  • API接口权限验证
  • 数据传输HTTPS加密
  • 防止SQL注入和XSS攻击

6.3 可用性要求

  • 系统可用性99.5%以上
  • 支持数据备份和恢复
  • 异常情况下的优雅降级

6.4 扩展性要求

  • 支持水平扩展
  • 模块化设计,便于功能扩展
  • 支持多种AI模型接入

7. 开发计划

7.1 第一阶段(4周)

  • 基础架构搭建
  • 用户管理模块开发
  • 数据库设计和实现

7.2 第二阶段(6周)

  • 目标管理模块开发
  • AI出题系统集成
  • 答题功能实现

7.3 第三阶段(4周)

  • AI对话模块开发
  • 学习报告系统实现
  • 统计数据功能

7.4 第四阶段(3周)

  • 成就系统开发
  • 系统设置功能
  • 整体测试和优化

7.5 第五阶段(2周)

  • 性能优化
  • 安全加固
  • 部署上线

8. 风险评估

8.1 技术风险

  • AI接口稳定性和响应速度
  • 大量用户并发访问性能问题
  • 数据安全和隐私保护

8.2 业务风险

  • 用户接受度和使用习惯
  • 竞品分析和市场定位
  • 内容质量和准确性

8.3 风险应对

  • 多AI服务商备选方案
  • 性能测试和优化
  • 用户反馈收集和快速迭代

9. 总结

本需求文档详细描述了AI学习搭子应用的功能需求、技术架构、数据库设计等关键内容。项目将采用现代化的技术栈,提供智能化的学习体验,帮助用户提高学习效率和学习兴趣。通过分阶段的开发计划,确保项目按时高质量交付。