feat(volunteer): 新增志愿服务证明材料识别及年度证明功能
- 新增志愿证明材料识别功能,支持自动识别材料并回填关键信息 - 在志愿时长编辑页面添加材料识别按钮及识别结果展示 - 新增志愿服务证明模块,支持查询、生成及下载年度志愿服务证明PDF - 志愿时长列表及审核详情中新增“服务地点”字段显示 - 志愿时长导入功能支持“服务地点”字段,完善导入表头与数据映射 - 志愿时长详情、审核流程等界面优化,增加识别材料公章状态及流程节点提示 - 志愿时长待审核项支持用户撤回操作,撤回后记录被删除需重新录入 - 社团年度报告相关接口新增,实现社团年度报告生成及分页查询 - 调整相关样式与界面布局,提升用户体验与信息展示完整性
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
# AI 学情分析接口契约(前端已接入,后端待实现)
|
||||
|
||||
青马学员档案里的「AI 学情分析」入口复用现有 AI 流式链路(`utils/ai-stream.ts`),
|
||||
后端需要新增一个与 `activityOutlineGen` / `manuscriptGen` 同构的端点。
|
||||
|
||||
## 1. 端点
|
||||
|
||||
| 用途 | 方法 | 路径 |
|
||||
| --- | --- | --- |
|
||||
| 流式分析(页面实际调用) | POST | `/api/ai/qmgcStudentAnalysis/stream` |
|
||||
| 一次性返回(调试/他端) | POST | `/api/ai/qmgcStudentAnalysis` |
|
||||
|
||||
响应格式与现有 AI 链路一致:
|
||||
|
||||
- `/stream` 返回 `text/event-stream`,每帧一个 `data:` 行,帧内容为 JSON;
|
||||
- 正文帧:`{ "answer": "<markdown 片段>" }`,也兼容 `{ "notice": "<片段>" }`;
|
||||
- 心跳/占位帧:`{ "loading": "true" }`,前端忽略;
|
||||
- 结束帧:`{ "answer": "__END__" }`;
|
||||
- 失败时可用 `{ "answer": "<片段>", "reset": "true" }` 覆盖已推内容,
|
||||
末帧 `status: "failed"`,前端会显示统一失败文案。
|
||||
|
||||
## 2. 入参
|
||||
|
||||
```json
|
||||
{
|
||||
"studentId": 123,
|
||||
"focus": "thought | difficulty | advice | undefined",
|
||||
"context": {
|
||||
"studentName": "张三",
|
||||
"studentNo": "20230001",
|
||||
"collegeName": "第一临床医学院",
|
||||
"className": "临床医学 2023 级 1 班",
|
||||
"batch": "2026 年第 1 期",
|
||||
"stage": "study",
|
||||
"totalScore": 86,
|
||||
"materialCount": 5,
|
||||
"scoredMaterialCount": 4,
|
||||
"taskDoneCount": 6,
|
||||
"taskTotal": 8,
|
||||
"materialTexts": ["【学习心得】……"],
|
||||
"taskTexts": ["完成线上团课(已完成)"],
|
||||
"scoreTexts": ["理论/课堂表现:90 分"]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
`context` 是前端已加载数据的摘要,后端实现了按 `studentId` 自行取数后可以忽略它;
|
||||
保留它是为了后端聚合尚未覆盖某类数据时,AI 仍能拿到培养材料正文。
|
||||
|
||||
`focus` 为空表示综合维度;调度到 Dify 时可映射成不同的提示词变量。
|
||||
|
||||
## 3. 数据口径
|
||||
|
||||
第一期可用的输入只有青马域已有数据:
|
||||
|
||||
- `gxmu_qmgc_material`:培养材料标题与正文、评分与评语;
|
||||
- 学员任务分配记录:任务标题、完成状态;
|
||||
- `gxmu_qmgc_score`:考核维度、评分项、得分与评语。
|
||||
|
||||
**系统目前没有考勤、签到、课堂互动类数据。** 需求原文提到的「课堂互动数据」
|
||||
在采集入口落地前不参与分析,前端弹窗里已明确向教师提示这一点。后续若新增采集,
|
||||
在 `context` 中补充对应摘要字段即可,无需改动流式协议。
|
||||
|
||||
## 4. 历史记录
|
||||
|
||||
如果要把分析结果写入 `ai_chat_list`,`chat_type` 需要新增一个取值
|
||||
(如 `student_analysis`),并同步前端 `utils/ai-chat-type.ts` 的类型与中文名;
|
||||
本次前端改动未接入历史记录,属于可选增强。
|
||||
Reference in New Issue
Block a user