PDF智能出题

SKILL教育学习
教育学习 未标注权限 许可证不明确
安装这个技能

PDF → 结构化习题生成器。先引导用户选择题型/题量/倒计时,再提取文本并调用LLM生成单选/多选/判断/填空四种题型的标准化JSON题库,渲染为交互式HTML试卷。 数据层(JSON)与渲染层(HTML)完全解耦,JSON可复用存档。HTML支持考试模式(计时器)、题号导航网格、localStorage断点续答、错题筛选。 触发词:PDF出题、生成习题、做题库、刷题、pdf to quiz、试卷、考题生成。

一句话选型结论

按资料字段整理

PDF智能出题是教育学习类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类教育学习 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_fcb09005/pdf-to-quiz
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

教育学习
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_fcb09005仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791729055
正文体量6.7 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
讲解知识点

按水平把知识点讲清楚。

出练习题

按章节生成练习与答案。

制定学习计划

按目标和时间排学习节奏。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在教育学习场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
PDF智能出题当前 未标注权限 未标注 未标注 未标注 有
食谱创建课堂课程 未标注权限 GitHub 仓库 25.5 万 Codex、Claude、Cursor 有
语言学习 联网访问 ClawHub 市场 23.6 万 OpenClaw 有
learning 效率 只读 ClawHub 市场 19.2 万 OpenClaw 有
学习习惯 未标注权限 ClawHub 市场 10.2 万 OpenClaw 有
日语家教 只读 ClawHub 市场 8.2 万 OpenClaw 有

SKILL.md 全文

6.7 KB
模型实际读到的说明书原文,来自技能仓库

PDF to Quiz

核心价值:传 PDF → 出 JSON → 渲染 HTML,全自动,一键完成。

端到端使用流程

用户提供 PDF 路径后,必须先确认需求再开工,按以下顺序执行:

Phase 0: 确认需求(必须执行,不可跳过)

在提取 PDF 之前,用 AskUserQuestion 工具询问以下配置。

第一轮:题型 + 题量:

{
  "questions": [
    {
      "question": "需要哪些题型?",
      "header": "题型",
      "multiSelect": true,
      "options": [
        {"label": "单选题", "description": "4选1,考察知识记忆"},
        {"label": "多选题", "description": "多选,考察综合理解"},
        {"label": "判断题", "description": "正误判断,考察概念辨析"},
        {"label": "填空题", "description": "关键词填空,考察术语和定义"}
      ]
    },
    {
      "question": "生成多少道题?",
      "header": "题量",
      "options": [
        {"label": "20 道(快速测试)", "description": "适合快速摸底"},
        {"label": "50 道(标准练习)(Recommended)", "description": "覆盖核心知识点"},
        {"label": "100 道(完整题库)", "description": "全面覆盖,适合正式备考"}
      ]
    }
  ]
}

第二轮:考试倒计时(题型和题量确认后):

{
  "questions": [
    {
      "question": "是否需要考试倒计时?",
      "header": "计时",
      "options": [
        {"label": "不需要(练习模式)(Recommended)", "description": "无时间限制,适合学习"},
        {"label": "60 分钟", "description": "模拟正式考试节奏"},
        {"label": "120 分钟", "description": "长考模式,适合题量较大时"}
      ]
    }
  ]
}

根据用户选择构建 prompt 参数:
- 题型 → 动态生成 type_mix_instruction。全选时:"Mix question types: approximately 40% single_choice, 20% multi_choice, 20% true_false, 20% fill_blank";部分选择时:"Only generate these types: {selected_types}, approximately {ratios}"
- 题量 → 提取数字作为 {count},同时作为 meta.total_questions
- 倒计时 → 提取分钟数传给 render_quiz.py --exam N。选"不需要"则不传 --exam

确认后立即进入 Phase 1,不要再次确认。

Phase 1: 提取 PDF 文本

两套方案,按优先级:

优先:opendataloader-pdf(复杂 PDF,含表格/图表)
调用 Skill 工具加载 opendataloader-pdf,按它的指令提取 PDF 为 Markdown。保留表格结构和格式。

备选:pdf_extract.py(简单文本型 PDF)

python scripts/pdf_extract.py <pdf_path> --output <output.txt>

纯 Python (pypdf),输出清洗后纯文本。脚本位于 skill 目录的 scripts/pdf_extract.py。

将提取结果保存为临时文件。

Phase 2: 生成习题 JSON

参考 references/prompt_guide.md 中的 prompt 模板和 JSON schema。

关键步骤:
1. 读取 prompt_guide.md 获取格式规范和 system prompt
2. 将 PDF 文本嵌入 prompt
3. 要求 LLM 只输出纯 JSON(无 markdown fence)
4. 保存至 <pdf名称>_quiz.json

JSON 题型(schema 详见 prompt_guide.md):

题型 type 值 answer 格式 options
单选题 单选 或 single_choice "B" 4 个选项
多选题 多选 或 multi_choice ["A","C"] 4+ 选项
判断题 判断 或 true_false true/false 无需 options
填空题 填空 或 fill_blank ["关键词"] 无需 options

质量要求(必须遵守):
- 干扰项必须合理,不能明显错误
- 解析必须引用原文内容
- 四种题型混合(约 40% 单选、20% 多选、20% 判断、20% 填空)
- 题目均匀覆盖全文档,不集中在开头
- 每道题都必须有 explanation 字段

验证:检查 JSON 是否包含 meta.title、meta.total_questions,以及每题 id/type/stem/answer/explanation 字段。

Phase 3: 渲染交互式 HTML

python scripts/render_quiz.py <quiz.json> --output <quiz.html> [--exam 120]

scripts/render_quiz.py 位于本 skill 目录下,运行时解析为 skill 安装路径。

参数说明:
- --exam N:启用考试模式,N 分钟倒计时
- --no-exam:强制练习模式(无计时器)
- 不带参数时默认练习模式

HTML 功能:
- 单题卡片视图,左右键切换
- 考试模式:倒计时器(最后 10 分钟警告,最后 5 分钟闪烁)
- 题号导航网格(展开/收起),已答/未答/对/错四色标记
- 题型标签页(全部/单选/多选/判断/填空)
- 筛选器(全部/未答/错题)
- localStorage 断点续答,刷新页面不丢进度
- 提交后显示分数面板 + 每题解析
- 重新作答按钮
- 移动端响应式

Phase 4: 交付

输出目录:当前工作目录下的 quiz_output/<日期>_<PDF名称>/

交付文件:
- *_quiz.json — 标准化题库,可复用、可存档
- *_quiz.html — 自包含交互试卷

用 preview_url 展示 HTML,用 deliver_attachments 交付两个文件。

依赖

依赖 类型 说明
pypdf Python 包 pdf_extract.py 的 PDF 解析库,运行 pip install pypdf
opendataloader-pdf 可选 Skill 复杂 PDF(含表格/图表)的增强提取。未安装时自动降级到 pdf_extract.py

无外部 API、无云服务依赖。

JSON 生命周期

同一份 JSON 可以:
- 用任意版本 quiz_template.html 重新渲染(换皮肤、加功能)
- 导出为 Anki apkg(未来扩展)
- 用其他工具渲染成 Markdown/PDF/Word 试卷
- 作为题库存档,换科目只需换 JSON

脚本

  • scripts/pdf_extract.py — PDF 纯文本提取(pypdf)
  • scripts/render_quiz.py — JSON → 交互式 HTML,支持 --exam 模式

资源

  • assets/quiz_template.html — 自包含 HTML 模板,支持考试模式 + 题号导航 + 断点续答 + 错题筛选
  • references/prompt_guide.md — LLM 出题 prompt 工程 + JSON schema 规范

常见问题

5 问
答案由本站依据条目字段整理
PDF智能出题怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_fcb09005/pdf-to-quiz。安装方式为未标注。装完刷新技能列表或重开客户端。

PDF智能出题支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

PDF智能出题权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

PDF智能出题收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

PDF智能出题用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。