[M-AI-06-03] 注册 ReviewCard Generation Child Job Definition 与 Snapshot #314
Closed
opened 2026-06-21 18:13:12 +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-06 Feynman ReviewCard 子 Job 与可靠生成
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: wangdl/api-server#314
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?
类型 / 标签
风险等级
P1 — Definition 错误会导致 Job 无法执行;Snapshot 泄露敏感信息为 P0
依赖
目标
注册 ReviewCard Generation Definition,并实现 Child Snapshot Builder。
Definition
建议值:jobType = review_card_generation、queueName = ai-background、triggerType = child_job、modelTier = cheap。最终以 01 契约为准。
至少冻结:priority、maxRetries、timeoutMs、inputSchemaVersion、outputSchemaVersion、promptKey、promptVersion、modelTier、inputSchema、outputSchema、executor、businessValidator、projector。
Snapshot Builder
新增 ReviewCardGenerationSnapshotBuilder。
输入来源应是已经验证并写入的 Feynman 输出,而不是再次读取未经验证的模型原始响应。
至少包含:userId、parentJobId、sourceResultId、knowledgeItemId、knowledgeBaseId、title、summary、strengths、weaknesses、cardCount、promptKey、promptVersion、modelTier、inputSchemaVersion、outputSchemaVersion。
稳定性
相同 Parent Job 必须生成相同:Snapshot 规范化内容、contentHash、cardCount、idempotencyKey。不得将随机值或当前毫秒时间加入 hash。
安全
禁止:Parent validatedOutput 全量无筛选复制、JWT、API Key、Provider Credential、内部错误、数据库连接信息、无关用户数据。
权限
Child Snapshot 必须继承并固定 userId、knowledgeItemId、knowledgeBaseId。不得在 Child Worker 中根据客户端输入重新决定所有权。
约束
验收标准
建议执行顺序
第 3 个执行(依赖 01 契约和 02 事务能力)
开发完成评论
完成内容
新增
review-card-generation-job-definition.ts:冻结 Child Job DefinitionjobType: 'review_card_generation'queueName: 'ai-background'(不阻塞用户请求)modelTier: 'cheap'(与旧 ReviewCardGenerationWorkflow 一致)promptKey: 'review-card-generation',promptVersion: '1.0.0'timeoutMs: 120_000,maxRetries: 3,cancellable: trueprojectorKey: 'review_card_generation_projector'新增
review-card-generation-snapshot-builder.ts:Child Snapshot BuilderMath.min(3, Math.max(1, weaknesses.length || 1))computeHash()使用稳定序列化(字段按字母序排序),SHA256 前 16 字符新增
review-card-generation-registration.service.ts:OnModuleInit 注册服务修改
ai-job.module.ts:注册 2 个新 Provider修改文件
src/modules/ai-job/review-card-generation-job-definition.ts— 新增(65 行)src/modules/ai-job/review-card-generation-snapshot-builder.ts— 新增(189 行)src/modules/ai-job/review-card-generation-registration.service.ts— 新增(42 行)src/modules/ai-job/review-card-generation-registration.service.spec.ts— 新增(261 行,32 个测试)src/modules/ai-job/ai-job.module.ts— 修改(+4 行:2 个 import + 2 个 provider)代码证据
review-card-generation-snapshot-builder.ts:116-117— cardCount 规则:Math.min(3, Math.max(1, count))(契约 §1.4)review-card-generation-snapshot-builder.ts:122-123— summary 拼接格式与 Legacyreview-card.subscriber.ts:36-37一致review-card-generation-snapshot-builder.ts:104-108— prompt/model 值全部来自this.registry.get('review_card_generation'),零硬编码review-card-generation-snapshot-builder.ts:138-142— computeHash 使用Object.keys().sort()稳定序列化review-card-generation-snapshot-builder.ts:133— createdAt 归一化到秒.replace(/\.\d{3}Z$/, 'Z'),保证稳定 hashreview-card-generation-job-definition.ts:48—queueName: 'ai-background'review-card-generation-job-definition.ts:65—modelTier: 'cheap'review-card-generation-job-definition.ts:66—modelName: 'deepseek-chat'(cheap tier 默认模型)测试情况
Snapshot Builder 测试覆盖
未完成 / 风险
是否建议进入 Review