feat: add ai recommendation exports

This commit is contained in:
Codex
2026-06-30 19:04:30 +08:00
parent ba737d41f5
commit 686b3609cf
13 changed files with 380 additions and 12 deletions

View File

@@ -3062,7 +3062,7 @@ GET /api/platform-admin/dunning-notification-events?invoiceId=<invoiceId>&limit=
## AI 择校推荐接入
AI 择校推荐是学生端 SVIP 功能,前端只调用 `apps/api`,不要在 H5/小程序内保存任何 AI provider key、prompt secret 或服务端模型配置。当前后端默认使用 deterministic `local_rules` provider基于学生目标地区和 `scoreline_records` 生成稳定 JSON 报告;后续真实 AI provider 仍保持同一接口和 JSON schema。
AI 择校推荐是学生端 SVIP 功能,前端只调用 `apps/api`,不要在 H5/小程序内保存任何 AI provider key、prompt secret 或服务端模型配置。当前后端默认使用 deterministic `local_rules` provider基于学生目标地区和 `scoreline_records` 生成稳定 JSON 报告;已提供 Markdown/HTML 报告导出第一版。后续真实 AI provider 仍保持同一接口和 JSON schema。
生成报告:
@@ -3131,6 +3131,8 @@ POST /api/ai/school-recommendations/generate
```http
GET /api/ai/school-recommendations?regionId=<regionId>&limit=20
GET /api/ai/school-recommendations/detail?reportId=<reportId>
GET /api/ai/school-recommendations/export?reportId=<reportId>&format=markdown
GET /api/ai/school-recommendations/export?reportId=<reportId>&format=html
```
前端渲染建议:
@@ -3139,7 +3141,9 @@ GET /api/ai/school-recommendations/detail?reportId=<reportId>
- `recommendedSchools` 是服务端已排序结果,前端不要重新按分数线做业务排序。
- `disclaimers` 必须展示在报告底部或导出 PDF 中。
- 报告详情只能展示当前登录学生自己的报告,遇到 `AI_REPORT_NOT_FOUND` 按“报告不存在或无权访问”处理。
- 当前 Taro 基础页在 `pages/student/ai-school/index`service 在 `src/services/ai.ts`
- 导出接口只允许本人已生成报告,返回 `fileName/mimeType/contentText/contentBase64/sha256/sizeBytes`H5 可用 `Blob` 下载,微信小程序可复制 `contentText` 或后续交给文件系统保存
- 当前 Taro 基础页在 `pages/student/ai-school/index`service 在 `src/services/ai.ts`,已接 Markdown/HTML 导出按钮。
- 当前导出是轻量报告交付,不是最终 PDFPDF 建议后续走 worker 渲染并发布到 `content_assets`,继续沿用本人报告权限和审计。
## 租户后台前端建议