前端
1、搭建起前端的Flutter/Dart环境
详见JJY的第二篇个人博客
2、因为这是第一次接触Flutter/Dart开发语言、框架,所以主要学习了《Flutter实战·第二版》这本书,尝试了使用各种组件完成一个页面,以下是部分截图:
以下为《Flutter实战·第二版》的电子版网址:
第二版序 | 《Flutter实战·第二版》 (flutterchina.club)
3、寻找可行AI的API接口,并确定其可行性
详见JJY的第一篇个人博客
最终确定了使用阿里云百炼的wanx2.1-t2i-turbo (文生图)和cosyvoice-v1 (文生音频)
4、在大致学习完前端后,完成了登录、注册、忘记密码、用户协议、隐私政策等页面的开发。
后端
搭建起后端微服务框架和功能,分为以下四大服务模块:
分别为AI、鉴权、题库和用户模块,以及网关服务和工具依赖模块。
主要核心服务: 题库数据表(question):
字段名 | 数据类型 | 说明 | 备注 |
---|---|---|---|
id | BIGINT | 主键 ID | 自增主键 |
subject_id | INTEGER | 学科 ID | 外键,关联 subject(id) 表 |
grade_id | INTEGER | 年级 ID | 外键,关联 grade(id) 表 |
type | VARCHAR(64) | 题目类型 | 如选择题、判断题、填空题、主观题 |
content | VARCHAR(2048) | 题目内容 | 题目的正文描述 |
selection | JSON | 选项内容 | 选择题的选项,JSON 格式,如{"A":"...", "B":"..."} |
answer | JSON | 正确答案 | JSON 格式,支持单选、多选、主观题 |
analysis | VARCHAR(1024) | 解析 | 对题目的解答说明 |
timestamp | TIMESTAMP | 创建时间 | 记录题目创建或更新时间 |
集成AI服务到系统, 包括:
-
Deepseek
-
wanx2.1-t2i-turbo (文生图)
-
cosyvoice-v1 (文生音频)
除deepseek外均通过文件系统存储建立题目和对应音频/图像的联系,并记录用户调用的日志。