[M-AI-07-01] 审计并冻结 Quiz 生成与题目产物迁移契约 #320
Closed
opened 2026-06-22 20:23:23 +08:00 by wangdl
·
1 comment
Labels
Clear labels
adr
Area: adr
architecture
Area: architecture
area:activity
活动/统计
area:admin
管理后台
area:admin-api
area:ai
AI/RAG
area:ai-runtime
AI Runtime / AI 分析体系相关
area:analytics
area:api
API 接口
area:auth
认证与授权
area:cos
对象存储
area:database
数据库/Migration
area:import
文件导入/解析
area:knowledge
知识库/知识点
area:learning-info
area:learning-session
area:quiz
测验/自测
area:reading-event
area:reading-progress
area:review
复习系统
area:security
安全相关
audit
Area: audit
audit:api-admin-info
audit:api-info
audit:planned
已完成宏观规划,尚未代码审查
audit:reviewed
backend
Area: backend
billing
Area: billing
blocked-by:api-info-aggregation
blocked-by:api-info-core
blocked-by:api-info-ops
blocked-by:api-info-schema
blocked-by:processor
blocked-by:schema
compatibility
Area: compatibility
gate
Area: gate
infrastructure
Area: infrastructure
priority:p0
最高优先级,阻塞发布
priority:p1
高优先级,里程碑必需
priority:p2
中优先级,后续版本
prisma
Area: prisma
release
Area: release
repo:api
API 仓库 Issue
status:blocked
被阻塞
status:done
已完成
status:partial
status:todo
type:aggregation
type:bug
缺陷修复
type:design
设计
type:docs
文档
type:feature
新功能
type:migration
type:refactor
重构
type:test
work:admin-api
work:aggregation
work:api
work:artifact
题目/卡片产物
work:audit
work:circuit-breaker
熔断
work:contract
work:design
架构/协议设计工作
work:docs
work:export
work:extend-existing
work:internal-api
Runtime 内部接口
work:job
Job 调度相关
work:new-module
work:new-table
work:ops
work:query
work:quota
额度/限流
work:schema
Prisma Schema 设计
work:security
work:service
Service 层实现
work:snapshot
Snapshot 构建
work:test
No Label
Milestone
No items
No Milestone
M-AI-07 Quiz 生成与题目产物统一引擎迁移
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: wangdl/api-server#320
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
类型 / 标签
风险等级
P0 — 契约错误将导致全量返工
依赖
目标
完整审计当前 Quiz 生成链路、数据模型、Prompt、题型和客户端消费方式,冻结后续迁移契约。
必须审计
公开入口
确认所有真实 Quiz 生成入口:HTTP 路径、Controller、请求/响应 DTO、认证和权限、客户端调用方、是否存在不同入口(知识库/知识点/资料)、是否存在 Admin 内部入口。
当前执行链路
追踪 Controller → Quiz Service → Job/Queue → Worker → Quiz Workflow → AiGateway/Provider → Quiz Repository → Question Repository。所有结论附文件路径、类名、方法名、行号。
数据模型
逐字段审计:Quiz、QuizQuestion、QuizOption、QuizAttempt、QuizAnswer 及其他相关实体。确认主键、用户关联、知识库/知识点关联、题型、正确答案保存方式、选项保存方式、解析、难度、排序、状态、删除策略、唯一约束、索引。
当前题型
确认系统实际支持哪些题型(如 single_choice / multiple_choice / true_false / short_answer),不得自行增加新题型。
输入/输出分类
列出当前模型调用使用的字段,分类为:进入 Snapshot / 执行时查询 / 禁止进入 Snapshot。冻结模型实际输出 Schema。
查询与答案泄漏
确认哪个接口返回 Quiz/Question、未作答前是否隐藏正确答案、提交后如何返回解析、Admin 是否能查看答案、客户端依赖哪些字段。
幂等与副作用
确认是否已有 generationRequestId / submissionId / sessionId / sourceId / idempotencyKey。确认生成 Quiz 是否还会消耗会员额度、写 UsageLog、写学习记录、创建通知、更新知识点状态等。
输出
新增
docs/architecture/m-ai-07-quiz-generation-migration-contract.md,包含:当前时序图、目标时序图、数据关系图、Snapshot Schema、Output Schema、题型规则、副作用矩阵、Artifact 矩阵、幂等契约、权限模型、答案隐藏契约、Feature Flag、回滚流程、不确定项。非目标
不修改代码 / 不修改 Prisma / 不创建 Migration / 不注册 Definition / 不切换流量
验收标准
建议执行顺序
第 1 个执行
开发完成评论
完成内容
POST /ai/jobs→UserAiService.createAnalysisJob()→aiRuntimeJob→ Runtime 轮询 →POST /internal/runtime/jobs/:id/result→convertQuizCandidates()→ Quiz + QuizQuestiondocs/architecture/m-ai-07-quiz-generation-migration-contract.md(585 行)修改文件
docs/architecture/m-ai-07-quiz-generation-migration-contract.md— 新增 (585 行)代码证据
user-ai.controller.ts:63—POST /ai/jobswithjobType: 'quiz_generation'user-ai.service.ts:199—createAnalysisJob()13 步骤runtime-internal.controller.ts:22—POST /internal/runtime/jobs/pollruntime-internal.service.ts:435—convertQuizCandidates()user-ai.service.ts:553—getQuizQuestions()包含answer+explanationquiz.service.ts:85—findOne()includequestions含answerprompt-template.service.ts— 注册表无 quiz promptuser-ai.service.ts:294—modelName: 'deepseek-chat'quiz.service.ts:38—['choice', 'fill', 'judge']schema.prisma:1833-1853schema.prisma:1855-1871架构异常清单
测试情况
是否建议进入 Review