--- name: deep-review-batch-capture command: /batch-capture description: Use when 用户想批量录入多道错题、一次采集多道题目、批量拍照识别、连续录入错题 --- # 错题批量采集流程 ## Overview K12错题批量采集助手,在单次会话中连续采集多道错题。核心思路:共用学科信息 → 逐题采集循环 → 实时进度追踪 → 批量汇总确认。与单题采集的区别在于:提取公共信息避免重复询问、循环处理多题、最后统一汇总。图片解析由宿主LLM的多模态能力直接完成,不依赖任何外部识别服务。 ## When to Use - 用户说"批量录入"、"一次录入多道题"、"连续录入"、"批量采集" - 用户想一次性采集2道及以上错题 - 用户提供多张图片要求逐一识别 - 用户说"录入今天的作业错题"等包含多题的意图 ## Workflow ### 1. 确定采集规模 询问用户本次要采集几道错题,以及是否所有题目属于同一学科。 **如果同属一个学科**:先确定学科(语文/数学/英语/物理/化学/生物/政治/历史/地理),后续每题跳过学科确认。 **如果不同学科**:每题单独确认学科。 ### 2. 逐题采集循环 对每一道错题,按以下步骤处理。每完成一题,展示进度(如 `第2/5题 ✓`)后立即进入下一题,不打断流程。 #### 2a. 获取题目输入 询问用户:提供图片路径,还是直接输入题目文本? - **图片**:直接使用宿主LLM的多模态能力**读取图片**理解题目,图片仅存本地 `data/images/`,禁止外传;无法读取时降级为手动输入 - **文本**:直接接收用户输入的题目内容 #### 2b. AI结构化解析 基于多模态看图解析出的题目内容(或用户直接输入的文本),按以下JSON结构提取(同学科时跳过学科确认): - 学科(如已共用则跳过)、年级段 - 知识点标签 - 难度、题型 - 题目内容(`question_content`)、选项(`options`)、正确答案 输出JSON格式(不要输出其他内容): ``` { "subject": "学科(语文/数学/英语/物理/化学/生物/政治/历史/地理)", "grade_level": "年级段(小学/初一/初二/初三/高一/高二/高三)", "knowledge_points": ["知识点1", "知识点2"], "difficulty": "难度(基础/中等/困难)", "question_type": "题型(选择题/填空题/计算题/证明题/应用题/其他)", "question_content": "题目内容(修正模糊处后的完整题目)", "options": ["选项A", "选项B", "选项C", "选项D"], "correct_answer": "正确答案(如果能推断出)" } ``` 注意事项: 1. 修正图片中肉眼可见的模糊或错误处 2. 数学公式用LaTeX格式表示 3. structured/classification 为必填字段,不允许为 null 保存:AI 无法确定时用默认值——学科默认"数学"、难度默认"中等"、错误类型默认"知识漏洞"(均标注"待确认"),并在展示确认时提醒用户修改 4. knowledge_points必须从该学科的标准知识点中选择 #### 2c. 展示确认(简洁模式) 将解析结果以**紧凑格式**展示,请用户确认或修改。格式示例: ``` 📝 第2/5题 学科: 数学 | 难度: 中等 | 题型: 计算题 知识点: 基本不等式, 最值问题 题目: 已知a>0, b>0, a+b=1, 求1/a+4/b的最小值 ``` 用户只需回复"✓"确认,或指出需要修改的字段。 #### 2d. 智能分类 调用 `classify_question`,用 `classify_prompt` 调用AI分类,确定错误类型和细分类别。 #### 2e. 展示分类(简洁模式) ``` 🏷 分类: 方法错误 | 条件最值-方法选择不当 ``` 用户确认或修改。 #### 2f. 保存记录 调用 `save_wrong_question`,生成 question_id(格式:wq_YYYYMMDD_NNN)。 #### 2g. 进度追踪 保存成功后展示进度,**不等待用户额外指令**,直接询问下一题的输入方式: ``` ✅ 第2/5题已保存 (wq_20260718_003) 📸 第3/5题:请提供图片路径,或输入题目文本 ``` ### 3. 追加采集(可选) 在采集过程中,用户可以说"再加X道题"或"还有几道"。处理方式: - 更新总题数(如原计划5题,追加2题,变为7题) - 继续当前进度编号,不重新从1开始 - 如果原为同学科模式且追加题目同属该学科,保持模式不变;否则切换为混合学科模式 ### 4. 批量汇总 所有题目采集完成后,展示批量汇总表: | # | 题目ID | 学科 | 知识点 | 错误类型 | 状态 | |---|--------|------|--------|----------|------| | 1 | wq_20260718_001 | 数学 | 基本不等式 | 方法错误 | ✅ | | 2 | wq_20260718_002 | 数学 | 对数函数 | 知识漏洞 | ✅ | | 3 | wq_20260718_003 | 英语 | 定语从句 | 粗心失误 | ✅ | **总计**:成功 3/3 题 询问用户是否需要对某题进行深度分析(可调用 `wrong-question-analyze` skill)。 ### 5. 异常处理 - **单题图片无法解析**:提示手动输入或更换图片,不影响后续题目 - **单题解析异常**:标记为"待确认",继续下一题 - **用户中断**:询问是否保存已采集的题目,已保存的不回滚 - **分类争议**:以用户最终确认的分类为准 ## Quick Reference | 步骤 | Tool | 说明 | |------|------|------| | 多模态看图解析 | 宿主LLM直接读取图片 | 失败降级为手动输入 | | 结构化解析 | 宿主LLM按内联JSON结构提取 | 同学科时跳过学科确认 | | 智能分类 | `classify_question` | 展示简洁分类结果 | | 保存记录 | `save_wrong_question` | 逐题保存,即时反馈 | ## 采集模式对照 | 模式 | 适用场景 | 特点 | |------|----------|------| | 同学科批量 | 同一次作业/考试的多道错题 | 学科信息只确认一次 | | 混合学科批量 | 跨学科错题采集 | 每题确认学科 | | 追加采集 | 采集过程中想多加几题 | 允许动态增加数量 | ## Common Mistakes - **每题重复询问学科**:同学科批量时,学科信息应只确认一次 - **等用户指令才继续下一题**:保存后应主动推进到下一题,保持流程连贯 - **汇总过于冗长**:批量汇总应用表格,不要逐题展开完整内容 - **单题失败中断整个批次**:应标记失败题目,继续处理后续题目 - **将图片上传外部服务**:图片仅存本地 `data/images/`,禁止外传 - **跳过用户确认**:每题的解析和分类结果仍需用户确认后才能保存 - **question_id格式错误**:必须使用 wq_YYYYMMDD_NNN 格式,NNN按当日已有编号递增 ## 约束规则 - 学科必须从K12标准列表选择:语文/数学/英语/物理/化学/生物/政治/历史/地理 - 错误类型限定4类:知识漏洞/粗心失误/方法错误/审题失误 - 知识点标签必须来自学科知识图谱,不可自由生成 - 每题的分类和解析结果必须经用户确认后才保存 - 整个批量采集必须在单次query会话中完成,不得拆分 - 已保存的题目即时持久化,不受后续题目采集结果影响