生成式AI赋能大学英语告诫语言能力培养平台-开发日志(Day 1)

项目背景

本项目是外文局研究课题"生成式AI赋能大学生英语高阶语言能力培养的教学模式构建与实践研究"的核心交付物。目标是构建一个双端教学平台,让教师能够设计AI辅助的课堂任务链,学生在手机端按步骤完成任务,AI在各个环节扮演不同角色,所有过程数据自动沉淀并支持导出用于教学研究。

平台围绕四种高阶能力设计:批判性思维、跨文化理解、论证表达、反思修订。

一.技术依赖

1.Python FastAPI:自动生成OpenAPI文档、原生async支持、AI接口集成最方便、课题组Python技能门槛低
2.SQLAlchemy 2.0 + Alembic:Python生态最成熟的ORM,DeclarativeBase声明式映射,Alembic支持自动生成迁移脚本
3.PyMySQL + MySQL 9.4:本地开发MySQL已运行,PyMySQL是纯Python驱动,无需编译C扩展
4.pydantic-settings:从.env文件读取配置,密码不硬编码在源代码中
5.python-jose + passlib:JWT令牌认证+bcrypt密码哈希Python FastAPI

二.数据库设计

统共22张表,这是Day 1的核心产出。整个平台的功能可以抽象为5个模块,每个模块对应若干张数据库表。

模块1:用户系统(1张表)

users表

class User(Base):
tablename = "users"
id # 主键,自增
username # 教师账号/学生学号,唯一索引
hashed_password # bcrypt哈希后的密码
name # 真实姓名
email # 邮箱(仅教师填写)
role # 枚举:teacher / student
is_active # 是否激活
created_at # 注册时间
设计要点:username设置了唯一索引,登录查询时会走索引;role用数据库原生ENUM类型保证数据完整性;密码字段存储的是bcrypt哈希值而非明文。

模块2:课程管理(3张表)

Course(课程表):名称、描述、核心问题、教师ID、状态、创建/更新时间。一对多关系关联选课、任务和小组。
Enrollment(选课表):学生ID、课程ID、小组ID。实现学生和课程的多对多关联。
Group(小组表):组名、课程ID。通过Enrollment的group_id外键实现"学生-选课-小组"的间接关联。

设计要点:cascade="all, delete-orphan"确保删除课程时自动清理关联数据。

模块3:任务系统(6张表)
这是整个平台最核心的部分。

TaskTemplate(任务模板):7种模板的预设(读写整合/文本精读/观点写作/跨文化比较/课堂辩论/AI伦理反思),含中英文名称、描述、默认9步任务链配置(JSON格式)。
Task(任务实例):关联课程和模板,含标题、状态、课堂代码(唯一)、二维码链接、开放/截止时间。
TaskStep(任务步骤):9步任务链中的单个步骤。step_type是枚举类型,9个值对应:情境导入->资料研读->观点生成->人机对话->同伴协商->语言输出->AI反馈->人工修订->反思评价。每个步骤可以单独启用/关闭。
AIRole(AI角色预设库):预设AI角色(预习助手、文本追问者、反方质询者、写作反馈助手、文化视角提醒者等),含名称、描述、默认提示语模板、默认回复规则。
TaskAIRule(任务AI规则配置):将AI角色绑定到任务的具体步骤上,允许自定义提示语和回复规则。
EvaluationScale(评价量表):6个标准评价维度(观点清晰度/文本证据/论证逻辑/反方意识/文化视角/语言准确性),每个维度有权重和满分值。

模块4:提交与反馈(7张表)

Submission(提交物):版本管理(初稿version=1、修改稿=2、终稿=3),支持文本内容和文件上传。
AISession和AIMessage(AI对话):一对多的对话关系。AISession记录一次对话的开始/结束时间,AIMessage记录单条消息(区分user/ai角色)。
FeedbackRecord(AI反馈记录):按维度存储AI评分和建议。关键设计是acceptance字段(采纳/部分采纳/不采纳),让学生逐条判断AI建议。
PeerReview(同伴互评):内容建议+语言建议。
TeacherFeedback(教师审核反馈):教师评语,is_audit字段区分是否为抽样审核。
StudentProgress(学生进度追踪):记录每个学生在每个任务的每个步骤的完成状态、时间、AI互动次数,是"过程监控"页面的数据基础。

模块5:伦理表单(5张表)

AICheckForm(AI输出核查表):AI生成了什么、哪些与教材一致、哪些不确定、需要修改什么、修正版。
CulturalPerspectiveForm(文化视角核查表):核心表达、单一理解、价值预设、补充视角、修正表达。
AIUsageRecord(AI使用记录):使用目的(JSON)、关键提示语、AI建议、采纳/拒绝了什么、自己修改了什么、是否使用完整句段。
AIDeclaration(学生AI使用声明):5项布尔确认(未直接提交AI文章、已核查信息、能说明使用情况、对最终作品负责、同意抽样审核)。
ReflectionLog(学习反思日志):学到了什么、困难、解决方法、AI反思。

三、配置文件架构

requirements.txt
列出14个依赖包,安装命令:pip install -r requirements.txt

env文件系统:
.env(已加入.gitignore)存储数据库密码和JWT密钥。
.env.example是提交到版本控制的模板。
config.py用pydantic-settings读取.env,提供全局Settings对象。

database.py
使用SQLAlchemy 2.0的DeclarativeBase,配置连接池(pool_size=10, max_overflow=20, pool_pre_ping=True),提供get_db()依赖注入函数。

main.py
FastAPI入口,配置CORS中间件,导入app.models使模型注册到Base.metadata,提供/api/health健康检查接口。

四、Alembic迁移

alembic/env.py动态从settings读取数据库URL,自动比对模型定义和数据库状态生成迁移脚本。

迁移流程:

  1. 修改模型定义
  2. alembic revision --autogenerate -m "描述"
  3. alembic upgrade head

首次迁移自动生成了22张表的完整DDL,包含主键、外键、索引、枚举类型,已在MySQL中成功建表。

五、下一步计划

Day 2:认证系统(JWT登录注册)+ 前端项目重构
Day 3-4:教师端API(课程管理、任务设计、AI配置)
Day 5-7:学生端API(9步任务链、AI对话、提交管理)
Day 8-9:数据导出、过程监控、集成测试

posted @ 2026-07-17 19:59  暗神酱  阅读(7)  评论(0)    收藏  举报