披萨学习法
Overview
披萨学习法将一个完整的学习内容按照用户指定的份数进行分割,从基础到复杂逐步递进,每份包含引言、正文、总结和思维导图。在发布内容前先确认用户的知识水平,据此调整讲解详略程度。用户逐份学习并提交笔记或提问,全部完成后自动生成客观题测验并批改复盘。支持多轮出题。
触发条件
以下情况触发此技能:
- 用户明确说"披萨学习法"、"用披萨学习法"
- 用户说"分块学习"、"Pizza Learning"
- 用户要求系统学习某个知识并希望分块消化
Phase 1: 内容导入
步骤
- 询问用户要学习什么内容。
- 引导用户发送内容,明确告知支持的格式:
- 纯文字(直接粘贴)
- 电子文档(PDF、Word、PPT 等)
- 网页链接
- ima 知识库中的资料 - 收到用户发送的内容后进行解析:
- 纯文字:直接读取
- 电子文档:使用对应工具提取文本
- 网页链接:抓取页面全文
- ima 知识库:加载 ima-skills skill 进行检索 - 内容解析完毕后,询问用户:"知识导入是否已完成?",等待用户确认。
注意事项
- 用户可能分多次发送内容,在未收到用户确认前,不要进入下一阶段。
- 如果内容来自多个来源,汇总后统一处理。
Phase 2: 分块规划
仅当用户确认导入完成后执行。
步骤
- 统计内容总字数:
- 纯文字按字符数计算
- 图、表中的文字纳入计算
- 如果图表为图片格式,使用 OCR 或图像识别提取其中文字后统计字数 - 按 每 2000~2500 字为一份 的标准,计算建议块数。
- 告知用户建议块数,并询问用户希望分为几块。
- 等待用户回复。用户可直接确认建议块数,也可指定其他块数。
建议块数计算示例
- 总字数 5000 → 建议 2~3 块
- 总字数 10000 → 建议 4~5 块
- 总字数 15000 → 建议 6~8 块
Phase 3: 确认受众类型
仅当用户确认块数后执行,且在发送第一份内容之前。
步骤
- 询问用户属于哪一类情形:
请选择你的学习基础:
1. 零基础小白
2. 有一定基础,想进一步提升
3. 专家来复习
- 根据用户选择,调整后续每份学习内容的详略程度:
| 类型 | 输出风格 |
|---|---|
| 零基础小白 | 内容详实,附带详细讲解,尽量解释基础概念和术语 |
| 有一定基础,想进一步提升 | 内容丰富程度与讲解详略适中,重点讲解进阶内容 |
| 专家来复习 | 仅输出重点与难点内容,附带简略讲解,不展开基础概念 |
- 在后续每份学习材料的输出中,始终遵循该类型对应的详略风格。
Phase 4: 内容分割
根据用户确定的块数对内容进行分割。
分割规则
- 从基础到复杂,从简单到困难:先讲基础概念、背景,再逐步深入到复杂知识和应用。
- 确保语义完整,不在句子或段落中间切断。
- 每块字数尽量均衡。
- 如果原始内容自带章节结构,尽量尊重原结构;如需跨章节合并,确保逻辑连贯。
每份的结构
每份学习材料必须包含以下六个部分:
1. 标题
为该份内容起一个独立的、概括性的标题。
2. 引言
- 第一份:引出本份要讲的内容,说明其在整体知识中的位置和作用。
- 第二份及以后:先简要回顾上一份的核心内容(2~3 句话),再引出本份内容。
3. 主要内容
该份学习材料的正文。
4. 总结
用要点形式总结该份内容的核心知识点(3~5 条)。
5. 重点与难点
每份内容中明确标注:
- 重点:该部分最核心、必须掌握的知识点(3~5 条),用「⭐」标记
- 难点:容易混淆、理解门槛较高或实践中容易出错的内容(1~3 条),用「⚠️」标记,并附简要辨析
6. 思维导图
用 SVG 图形方式生成该份内容的思维导图(可视化树状图),展示核心概念和它们之间的关系,而非纯文字列表。
生成方式:使用 show_widget 工具渲染内联 SVG(先调用 read_me 加载 diagram 模块)。SVG 采用从中心或顶部展开的树状结构,主节点对应主题,分支对应各知识模块,颜色与当前 IDE 主题匹配(浅色主题用浅色背景+深色文字,深色主题反之)。
输出格式
完成分割后,按以下格式组织每一份:
━━━━━━━━━━━━━━━━━━━━━
📖 第 X 份 / 共 N 份
标题:XXX
━━━━━━━━━━━━━━━━━━━━━
【引言】
...
【主要内容】
...
【总结】
- 要点 1
- 要点 2
- ...
【思维导图】
(用 show_widget 渲染的 SVG 树状图)
【重点与难点】
⭐ 重点:
- ...
⚠️ 难点:
- ...
---
## Phase 5: 渐进学习
### 步骤
1. 将分割完成的第一份内容发送给用户。
2. 发送后,用一句话引导用户:**"请把你的学习笔记或疑问发给我,学习完这份后告诉我,我再发下一份。"**
3. 等待用户回复:
- 如果用户发送笔记或提问 → 认真回复,解答疑问,然后再次提醒"学完这份后告诉我"
- 如果用户表示已完成 → 发送下一份
4. 重复以上流程,直到所有份数发送完毕。
5. 发送最后一份时提醒:**"这是最后一份。学完后告诉我,我为你生成测验题。"**
### 注意事项
- 不要主动跳过任何一份。
- 不要同时发送多份。
- 用户可能在中途表示想调整节奏,按用户要求调整。
---
## Phase 6: 生成测验
当用户完成全部内容学习后执行。
### 步骤
1. 对整个学习过程做简要总结(2~3 句话概括学了什么)。
2. 根据学习内容生成客观题,标准配置:
- **单选题**:14 道,每题 4 个选项(A/B/C/D),有且仅有一个正确答案
- **多选题**:6 道,每题 4 个选项(A/B/C/D),至少有两个正确答案
- 合计 20 道
3. 题目应覆盖全部学习内容,知识点分布均匀。
4. 题目表述清晰,选项之间不重复、不模糊。
5. **暂时不给出答案**。
6. **题号连续编号(强制)**:多选题的题号必须顺着单选题继续往下排,**严禁**重新从 1 开始编号。标准配置下单选为 1~14,多选为 15~20;批改时也使用完全相同的连续题号。多选题部分绝不出现"1. 2. 3."这种重新编号。
7. **避免 markdown 重新编号(强制)**:测验题和批改结果用 Markdown 输出时,`15.` `16.` 这类以"数字+点"开头的行会被渲染器识别为有序列表并从 1 重新编号。必须用**代码块(\`\`\`)包裹**整份题目/批改内容,保证 15~20 的编号原样显示;或用 HTML `<ol start="15">` 指定起始序号。不得直接以裸 `15. 16. 17.` 形式输出多选题。
### 输出格式
━━━━━━━━━━━━━━━━━━━━━
📝 学习测验
━━━━━━━━━━━━━━━━━━━━━
【学习总结】
(2~3 句话概括)
━━━━━━━━━━━━━━━━
一、单选题(每题只有一个正确答案)
━━━━━━━━━━━━━━━━
- 题目内容
A. 选项
B. 选项
C. 选项
D. 选项
(共 14 道)
━━━━━━━━━━━━━━━━
二、多选题(每题至少有两个正确答案)
━━━━━━━━━━━━━━━━
- 题目内容
A. 选项
B. 选项
C. 选项
D. 选项
(共 6 道,题号 15-20)
━━━━━━━━━━━━━━━━━━━━━
请完成所有题目后,将你的答案发给我(格式:1.A 2.B 3.C ...)。
━━━━━━━━━━━━━━━━━━━━━
---
## Phase 7: 批改与复盘
### 步骤
1. 收到用户答案后,检查是否完成所有题目。
- 如有遗漏,提示用户:**"你还有 X 道题未作答(第 X 题),请完成后重新发给我。"**
2. 所有题目都已作答后,进行批改:
- 公布每道题的正确答案
- 对错题进行分析:说明为什么选这个选项是错误的,正确答案是什么,知识点出处
3. 统计正确率:正确 X 道 / 共 20 道。
### 输出格式
━━━━━━━━━━━━━━━━━━━━━
📊 批改结果
━━━━━━━━━━━━━━━━━━━━━
正确:X / 20
一、单选题
- ✅ 你的答案:A(正确)
- ❌ 你的答案:B | 正确答案:C
解析:...
...
二、多选题
- ✅ 你的答案:ABD(正确)
- ❌ 你的答案:AC | 正确答案:ABD
解析:...
...
---
## Phase 8: 多轮出题
批改完成后,询问用户:**"是否需要再生成一套题目?"**
### 规则
1. 用户回答"是"或"需要":
- 默认按标准配置生成:14 单选 + 6 多选,共 20 道
- 题目内容尽量不与上一套重复
2. 用户指定具体数量(如"再来 10 道单选"):
- 按用户要求的数量和类型生成
- 同样避免重复
3. 如果内容已被题目覆盖完毕,告诉用户:**"学习内容中的知识点已基本被题目覆盖,不建议再出题。如果还想刷题,可以随时告诉我,只需给出题目数量即可。"**
4. 用户完成第二轮答题后要求再来一轮,以此类推,每轮都尽量出新题,直到知识点覆盖完毕。
5. 任何时候用户都可以提出刷题需求,按覆盖情况出题。
### 题目去重策略
- 记录已出过的题目涉及的知识点
- 新出题时优先选取尚未覆盖的知识点
- 如果同一知识点必须重复出题,变换出题角度(如从概念题改为应用题)
---
## 注意事项汇总
1. 每个 Phase 之间必须有明确的用户确认,不能自动跳转。
2. 所有提问和引导语句简洁,一句话说清楚。
3. 题目选项数量严格为 4 个(A/B/C/D),不增减。
4. 多选题至少 2 个正确答案,避免全选。
5. 题号连续编号(强制):多选题顺着单选题继续排,严禁重新从 1 开始(单选 1~14,多选 15~20),批改时同样用连续题号。
6. 发布内容前必须先确认受众类型(零基础/有基础/专家),并据此调整每份内容的详略程度。
7. 思维导图用 show_widget 渲染 SVG 图形输出,不用纯文字列表;颜色需匹配当前 IDE 主题。
8. 对于长内容,分割时优先保证语义完整而非字数精确。
9. 整个流程中保持耐心,等待用户每一步的反馈。