山东大学项目实训——基于DeepSeek的智能写作与训练平台(九)
经过上述修复和完善,支撑学生端以下功能需求的后端接口已经。学生端个人画像以及学习跟踪与针对性建议的补充与完善。功能在系统中扮演着至关重要的。
·
学生端个人画像以及学习跟踪与针对性建议的补充与完善
一、 新增及升级功能:
在原有六维评分评价的基础上,将系统功能进行了全方位的细化和升级,主要体现在以下几个方面:
- 多维度作文分析升级:
- 将原有的六维评分(语法、立意、结构、修辞、情感、创新)扩展为更全面的分析体系。
- 通过设计多级分析提示词,实现了从DeepSeek API获取更深层次的评估结果。
def get_comprehensive_prompt(essay_text, include_history=False, student_history=None):
"""获取全面分析的提示词模板"""
base_prompt = """
请对以下作文进行全面分析,返回详细的JSON格式结果,包含以下几个部分:
1. 基础评分(scores):
- grammar: 语法准确性评分(0-100)
- idea: 立意深度评分(0-100)
# ... (其他评分维度)
2. 基础建议(suggestions):
- grammar: 语法方面的具体建议
# ... (其他建议维度)
3. 写作风格特征(style_features):
# ... (风格特征维度)
4. 错误模式识别(error_patterns):
# ... (错误模式维度)
"""
if include_history and student_history:
history_prompt = """
5. 连续学习分析(continuous_analysis):
- progress_areas: 相比历史作文有进步的方面
...
"""
base_prompt += history_prompt
return base_prompt
- 写作风格特征分析:
- 新增了对学生独特写作风格特征的识别功能,包括词汇多样性、句式复杂度、段落连贯性等。
- 为此,我扩展了数据库设计,增加了
writing_style_features表,并增强了API提示词以引导AI分析风格特点。
def save_writing_style_features(self, student_id: int, essay_id: int, style_data: Dict):
"""保存作文风格特征分析结果"""
cursor = self.db.connection.cursor()
cursor.execute('''
INSERT INTO writing_style_features
(essay_id, student_id, vocabulary_diversity, sentence_complexity,
paragraph_coherence, argument_patterns, word_choice_features, style_keywords)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
''', (
essay_id,
student_id,
style_data.get('vocabulary_diversity'),
style_data.get('sentence_complexity'),
# ... (其他风格数据)
))
self.db.connection.commit()
cursor.close()
- 错误模式识别:
- 实现了自动识别学生写作中常见错误模式和弱点的功能,并能进行问题分类统计。
- 数据库中新增了
writing_error_patterns表,使用JSON字段存储复杂的错误统计数据,并通过DeepSeek API实现错误模式的识别。
def save_error_patterns(self, student_id: int, essay_id: int, error_data: Dict):
"""保存写作错误模式分析结果"""
cursor = self.db.connection.cursor()
cursor.execute('''
INSERT INTO writing_error_patterns
(student_id, essay_id, grammar_errors, structure_weaknesses,
expression_issues, recurring_problems)
VALUES (%s, %s, %s, %s, %s, %s)
''', (
student_id,
essay_id,
json.dumps(error_data.get('grammar_errors', {})),
json.dumps(error_data.get('structure_weaknesses', {})),
# ... (其他错误数据)
))
self.db.connection.commit()
cursor.close()
- 学习路径规划:
- 系统现在可以根据学生的写作特点和弱点,生成个性化的学习路径和优先级建议。
- 通过分析评分结果自动确定优先级,并将建议存入学习路径表,提供可操作的改进步骤。
# 更新学习路径建议
for dimension, suggestion in analysis_result.get('suggestions', {}).items():
score = analysis_result['scores'].get(dimension, 0)
priority = 3 # 默认中等优先级
if score < 70:
priority = 1 # 高优先级
elif score < 85:
priority = 2 # 中高优先级
user_model.create_learning_path(student_id, dimension, suggestion, priority)
- 连续学习分析:
- 新增了通过分析学生历史写作数据,识别长期学习趋势和模式的功能,从而提供个性化的长期学习建议。
- 设计了
continuous_learning_analysis表用于存储分析结果,并通过DeepSeek API分析长期趋势,识别持续性问题和明显进步。
def analyze_continuous_learning(student_id):
"""进行连续学习分析"""
# ... (获取学生数据)
# 构建提示词
prompt = """
请对以下学生的写作历史数据进行全面的连续学习分析,返回JSON格式:
1. 长期趋势分析(trend_analysis):分析学生各维度评分的长期变化趋势
2. 学习模式识别(learning_patterns):识别学生的学习模式和特点
# ... (其他分析维度)
"""
# ... (API调用和结果处理)
return analysis_result
- API接口设计完善:
- 设计并实现了较完整的API接口,支持作文提交、画像获取、连续学习分析、综合画像查询等核心功能。主要接口包括:
/api/update-profile:用于作文分析与画像更新。
@profile_bp.route('/api/update-profile', methods=['POST']) def update_profile(): # 1. 创建作文记录 # 2. 分析作文 (使用增强版分析) # 3. 更新学生画像 (基础得分) # ... (其他步骤)/api/get-profile/<student_id>:用于获取个人画像。/api/continuous-learning/<student_id>:用于连续学习分析。/api/comprehensive-profile/<student_id>:用于获取综合个人画像。
- 设计并实现了较完整的API接口,支持作文提交、画像获取、连续学习分析、综合画像查询等核心功能。主要接口包括:
二、 问题修复与功能完善:
在上一阶段的基础上,重点解决了测试中发现的问题,并进一步完善了学生端功能,确保后端接口能够为前端提供所需的数据支持:
-
写作进步追踪优化(模拟数据):
- 问题:修复了因模拟评分数据相同导致进步变化值恒为0的问题。
- 解决:修改了
profile_routes.py中模拟数据生成逻辑,引入变化机制,使模拟分数、风格特征评分、错误计数等有轻微差异,更真实地模拟学生写作能力的波动。 - 效果:
writing_progress表中记录的变化字段能显示非零值。
-
学生进步报告API修复与完善 (
/api/student/progress-report/):- 问题:解决了该接口返回404错误的问题,并调整了其逻辑。
- 解决:
- 在
profile_routes.py中正确实现了get_student_progress_report函数。 - 明确了接口职责为整合学生历史评分、进步记录及最新的长期连续学习分析结果。
- 在
models.py中添加了get_writing_progress_history方法,用于从writing_progress表获取格式化的进步记录。
- 在
- 效果:接口能返回200状态码,并获取包含历史评分、进步记录和连续学习分析的完整数据。
-
综合个人画像API验证 (
/api/comprehensive-profile/):- 问题:完善了对该接口返回内容完整性的验证。
- 解决:增强了
test_profile.py中的测试逻辑,增加了对返回JSON结构和关键字段类型的验证。 - 效果:确认接口能成功返回包含所有预期部分(如
writing_profile,writing_history,continuous_analysis等)的数据。
-
连续学习分析数据保存优化:
- 问题:解决了连续学习分析结果未插入
continuous_learning_analysis表以及可能重复插入的问题。 - 解决:
- 调整代码结构,将保存分析结果的操作移至API路由函数中。
- 确保无论是首次生成还是强制刷新,分析结果都会在生成后被尝试保存一次。
- 效果:成功保存连续学习分析的日志,
/api/comprehensive-profile/能正确包含continuous_analysis部分,数据库不再出现重复记录。
- 问题:解决了连续学习分析结果未插入
三、 学生端核心功能实现确认:
经过上述修复和完善,支撑学生端以下功能需求的后端接口已经完整实现并通过测试(基于模拟数据):
- 个人画像绘制:通过
/api/get-profile/和/api/comprehensive-profile/提供不同详略程度的画像。 - 写作成长记录生成与追踪:提交作文后,系统自动记录各项分析数据,并计算对比进步。
- 写作进步跟踪:
writing_progress表详细记录了每次提交相比上一次的各维度具体变化。 - 成长报告提供:
/api/student/progress-report/提供生成结构化成长报告所需的后端数据。
四、 continuous_analysis 的关键作用:
continuous_analysis 功能在系统中扮演着至关重要的战略性评估角色。它不同于基于相邻两篇作文的战术性进步反馈,其核心价值在于:
- 识别长期趋势:分析学生在较长时间内的整体发展轨迹。
- 发现深层模式:识别反复出现的问题、固有学习习惯及写作风格演变。
- 提供战略性建议:给出更宏观、更具前瞻性的学习规划。
- 实现真正个性化:基于对学生长期发展模式的理解,提供真正符合其特点的指导。
更多推荐



所有评论(0)