人工智能AI 应用AI 技能RAGMCP 服务网页爬虫【免费下载链接】Skill_SeekersConvert documentation websites, GitHub repositories, and PDFs into Claude AI skills with automatic conflict detection项目地址https://gitcode.com/gh_mirrors/sk/Skill_Seekers点击查看免费下载本文以 Skill Seekers 仓库中一份真实的 golden 测试产物 ——tests/golden/phase2/epub_kw/references/section_s1-s1.md为切入点逐层拆解 EPUB 电子书转换为 Claude Skill 时生成的参考章节references到底长什么样、由哪条源码管线产出以及关键词分类、代码质量评分、表格渲染等机制如何起作用。读完本文你将掌握 Skill Seekers EPUB 抓取与文档技能构建管线的输出规范并能据此校验、复现和扩展自己的 EPUB 转技能流程。1. 先读一遍一份 reference 章节的完整结构被指定的关联文档位于 tests/golden/phase2/epub_kw/references/section_s1-s1.md全文如下golden 产物为便于讲解在此完整陈列# Setup --- ** Source: Section 1** ## Getting Started Guide ### Installation Steps #### Verify Setup Welcome to the project. This section explains setup. ### Code Examples python print(hello)pip install thingTablesOptionDefaultdebugfalseport8080Images它由六类固定组成部分构成这正是 Skill Seekers 文档型抓取器DocumentSkillBuilder 家族统一的参考章节输出格式 | 组成部分 | 说明 | | --- | --- | | # 标题 --- | 章节名此处为 Setup来自分类器给该节分配的分类名 | | ** Source: Section N** | 来源标注指明该章节在原文档中属于第 N 节EPUB 场景即 spine 阅读顺序中的第 N 个切片 | | ## / ### / #### 层级标题 | 保留原始文档的标题层级H1 切分为主章节H3/H4/H5/H6 作为章节内子标题sub-headings被单独记录 | | 正文段落 | 以纯文本形式输出多个段落用空行连接 | | python / bash 代码块 | 从 pre/code 元素抽取并保留语言标记 | | Markdown 表格 | 由 HTML table 结构转换而来 | | Image 0 | 图片占位引用指向输出目录下的 assets/ 文件夹 | 注意文件名 section_s1-s1.md 的语义s1-s1 表示该文件聚合了第 1 节到第 1 节的内容即单节文件多节内容被归类到同一分类时会生成 section_s{a}-s{b}.md 的区间命名。整个 golden 目录树epub_kw的布局可在 [tests/golden/phase2/epub_kw/references/index.md](https://link.gitcode.com/i/4536497c6f1381ea3086253940b623ba) 中看到Setup (1 sections, Sections 1-1) 正是这个命名规则的落地体现。 ## 2. 这份文件从哪来EPUB 抽取与章节切分管线 section_s1-s1.md 不是手写的而是由 [src/skill_seekers/cli/epub_scraper.py](https://link.gitcode.com/i/3a369b3b228b46d4c4afc03132b6df7f) 中的 EpubToSkillConverter继承自 DocumentSkillBuilder在构建阶段自动生成的。其 extract_epub() 的完整工作流源码第 115-234 行如下 1. **依赖检查**通过 _check_epub_deps() 确认已安装 ebooklib否则抛出 RuntimeError 并提示 pip install skill-seekers[epub]。 2. **输入校验**检查路径存在、是文件、且以 .epub 结尾源码第 142-149 行。 3. **读取与 DRM 检测**以 epub.read_epub(path, options{ignore_ncx: True}) 读取该选项用于规避 EPUB 3 TOC 的一个已知解析问题随后调用 _detect_drm() 快速失败 —— 该方法扫描 META-INF/encryption.xml将 Adobe ADEPThttp://ns.adobe.com/adept、Apple FairPlayhttp://itunes.apple.com/dataenc、Readium LCPhttp://readium.org/2014/01/lcp识别为 DRM而把 IDPF/Adobe 的字体内嵌混淆算法font obfuscation明确排除在 DRM 之外源码第 236-287 行。 4. **元数据抽取**_extract_metadata() 读取 Dublin Core 字段title、creator、language、publisher、date、description、subject、rights、identifier对应 SKILL_MD_METADATA_FIELDS 中 Title / Author / Language / Publisher / Date 的映射源码第 83-89、289-317 行。 5. **正文抽取与章节切分**_extract_spine_content() 按 EPUB spine阅读顺序遍历 ITEM_DOCUMENT用 BeautifulSoup 解析 XHTML先剥离 script、style 与注释再以 h1/h2 作为边界把正文切成多个 section —— 每遇到一个新 H1/H2 就冲刷上一节源码第 319-394 行。这就是 section_s1、section_s2、section_s3 三个参考文件产生的直接原因。 6. **语言检测与中间 JSON**对代码块做语言探测并统计最后将 pages / metadata / total_sections / total_code_blocks / total_images / languages_detected 写入 {name}_extracted.json作为构建 SKILL.md 的输入源码第 212-228 行。 测试端在 [tests/test_phase2_golden_epub_word.py](https://link.gitcode.com/i/b971166ab4cd3939ee6e9787d91cae28) 中用一个 SECTIONS 常量模拟了同样的抽取结果3 个章节分别对应 Getting Started Guide、API Usage、Troubleshooting其中第一节的 headings 列表里正是 Installation Stepsh2与 Verify Setuph3—— 与参考文件中 ### Installation Steps、#### Verify Setup 的层级一一对应该测试第 17-61 行。 ## 3. 关键词分类epub_kw 与 categories 配置 本 golden 目录名为 epub_kwkeyword 的缩写对应测试函数 test_epub_keyword_categorization_matches_golden测试第 98-114 行构造 EpubToSkillConverter 时**不提供 epub_path**而是提供 categories 配置 python converter EpubToSkillConverter( { name: golden_epub_kw, description: Use when testing keyword categorization, output_dir: str(tmp_path / skill), categories: { setup: [setup, installation], api: [endpoints], }, } )这段配置说明了分类规则当某个 section 的标题/正文命中关键词如setup、installation时该节被归入setup分类命中endpoints则归入api。EpubToSkillConverter.__init__中self.categories config.get(categories, {})源码第 106 行正是读取这个字段的地方。分类结果直接体现在三处产物上参考文件命名section_s1-s1.mdSetup、section_s2-s2.mdApi、section_s3-s3.mdOther。未被任何关键词命中的章节被归入兜底分类Other。index.md 的 Categories 列表tests/golden/phase2/epub_kw/references/index.md 按分类列出各参考文件及其节区间并汇总Total sections: 3、Code blocks: 3、Images: 1三类统计。SKILL.md 的 Section Overviewtests/golden/phase2/epub_kw/SKILL.md 中Total Sections: 3Content Breakdown显示Setup: 1 sections / Api: 1 sections / Other: 1 sections。这说明 keyword categorization 是 Skill Seekers 在多源/无文件输入场景下的标准路径没有 EPUB 文件可解析时抽取数据直接由外部提供测试里用converter.extracted_data _extracted_data({})注入构建端照常完成分类、参考文件与 SKILL.md 的生成。4. 代码示例抽取语言识别与质量评分参考文件里两个代码块print(hello)与pip install thing在 SKILL.md 的## Code Examples一节被聚合展示并附上了质量分数示例语言Qualitypip install thingbash6.0/10print(hello)python8.5/10def long_example(): ...60 行python9.5/10其抽取逻辑位于_build_section()源码第 433-492 行代码块识别命中pre或独立的code元素若pre内嵌套code则取内层文本。语言标记优先从元素的class属性读取language-{lang}、lang-{lang}或code-{lang}前缀无标记时留空后续交给LanguageDetector(min_confidence0.15)做代码内容探测置信度 ≥ 0.3 才采纳源码第 189-210 行。质量评分调用score_code_quality自 src/skill_seekers/cli/scraper_utils.py 导入计算quality_score用于 SKILL.md 中的质量排序与筛选。需要特别说明 golden 与实盘的差异epub_kw树是 golden 快照其分数由测试 fixture 直接写入见测试第 28-29、43 行用于锁定历史输出而真实运行时分数由score_code_quality动态计算。两者在构建端DocumentSkillBuilder走的是同一条渲染路径这正是该 golden 树存在的原因 —— 证明重构后的构建端输出与重构前逐字节一致。SKILL.md中示例按语言分组、组内按质量降序排列bash 组 1 例、python 组 2 例且 9.5 分在前对应测试模块 docstring 中 multi-language code samples (incl. 500 chars quality ordering) 的覆盖点 —— 测试里LONG_CODE用 60 行代码验证了超长代码样本的处理测试第 15 行。5. 表格与图片两种渲染路径表格_build_section()对table调用extract_table_from_html转为结构化数据源码第 494-499 行。golden 树覆盖了两种表格形态有表头表格第 1 节Option / Default两列即参考文件中的debugfalse、port8080配置表无表头表格第 2 节见 tests/golden/phase2/epub_kw/references/section_s2-s2.md 中的a b / c d两行两列 —— 测试注释明确说明 Table without headers exercises the headerless rendering path测试第 46 行。两者最终在 SKILL.md 的## Table Summary中被汇总2 table(s) found in document。图片_build_section()对img记录index / src / width / height源码第 501-513 行而_extract_images()按 EPUB manifest 统计ITEM_IMAGE及补充统计image/svgxml源码第 396-425 行最终反映为total_images统计与assets/目录输出。参考文件中的[](https://link.gitcode.com/i/516ed63613e4a6033582145223d73464)就是这种正文占位 assets 落盘协作的结果。注意 golden 树的图片为合成占位数据测试第 34 行b\x89PNG-fake-bytes仅用于验证管线完整性。6. SKILL.md聚合、统计与导航参考文件是单节视图而 tests/golden/phase2/epub_kw/SKILL.md 是整本文档的聚合视图两者由构建端联动生成。SKILL.md 包含的区块与对应数据源如下区块数据来源frontmattername/description配置与infer_description_from_epub()推导源码第 47-69 行## When to Use This Skill固定模板## Section Overview按分类统计的章节数来自 categories## Key Concepts从各节标题聚合的 Major Topics / Subtopics如Getting Started Guide、Installation Steps## ⚡ Quick Reference按 Getting Started / Troubleshooting / Usage 分组的节索引## Code Examples带质量分、按语言分组的代码示例## Table Summary全部表格汇总## Documentation Statistics节数、代码块数、图片数、语言分布python: 2, bash: 1## ️ Navigation各参考文件相对路径清单 references/index.md入口页脚Generated by Skill Seeker | EPUB Scraper其中Navigation一节给出的references/section_s1-s1.md - Setup等映射正是读者无论是人类还是 Agent在 Skill 中继续深入查阅原文的索引 —— 这也解释了为什么参考文件必须保持可独立阅读的完整格式。7. golden fixture 的验证价值逐字节回归epub_kw连同epub、word目录下的产物不是演示数据而是回归测试的基准golden。依据 tests/test_phase2_golden_epub_word.py 的模块 docstringThe golden trees under tests/golden/phase2/{epub,word}/ were captured from the PRE-DocumentSkillBuilder code; these tests prove the port is byte-identical.即这些树是从重构前的 DocumentSkillBuilder 代码捕获的快照用于证明重构后Phase 2 port输出逐字节一致。测试通过assert_matches_golden(build_snapshot(converter), epub_kw)将实时构建结果与tests/golden/phase2/epub_kw/下的文件对比覆盖了元数据、标题层级、多语言代码示例含超 500 字符样本与质量排序、有无表头表格、图片、关键词分类和语言统计等全部构建路径测试第 1-9 行。对二次开发者而言这套 fixture 是理解输出契约的活文档任何改动若导致格式偏移测试会立即暴露反之若你的场景需要新的输出元素例如新的元数据字段或统计维度同样可以在 golden 树中先定基准再实现。8. 实践如何复现这条管线要复现上述产物你需要一个无 DRM 的 EPUB 文件样例夹具可参考 tests/fixtures/synthetic/ 中的合成电子书并安装依赖pip install skill-seekers[epub] # 或 pip install ebooklib随后执行 CLI见 epub_scraper.py 顶部 docstring 的用法skill-seekers epub --epub book.epub --name myskill skill-seekers epub --from-json book_extracted.json第一条命令走完整抽取管线解析 EPUB → DRM 检测 → 元数据/正文/代码/图片抽取 → 生成SKILL.md、references/与assets/第二条命令支持从已抽取的中间 JSON{name}_extracted.json直接构建适合多源聚合与关键词分类场景 —— 与测试中无epub_path即走 keyword categorization 路径的机制一致。若需自定义分类在配置中传入categories映射如{setup: [setup, installation], api: [endpoints]}即可像 golden 树一样得到按主题归类的参考文件与 Section Overview。小结从section_s1-s1.md这一份 36 行的参考章节出发我们完整还原了 Skill Seekers 的 EPUB 转技能链路 —— 文件命名与分类规则、EpubToSkillConverter的抽取细节、代码质量评分与语言探测、双路径表格渲染、SKILL.md 聚合统计以及 golden 树的逐字节回归价值。这份文件既是管线输出的样例也是验证输出契约的基准值得作为理解 Skill Seekers 文档技能构建体系的第一个切入口。赞分享人工智能AI 应用AI 技能RAGMCP 服务网页爬虫【免费下载链接】Skill_SeekersConvert documentation websites, GitHub repositories, and PDFs into Claude AI skills with automatic conflict detection项目地址https://gitcode.com/gh_mirrors/sk/Skill_Seekers点击查看免费下载相关推荐Skill Seekers 关键字分类构建技能实战EPUB Scraper Golden 输出结构与 DocumentSkillBuilder 源码剖析Skill Seekers 关键字分类构建技能实战EPUB Scraper Golden 输出结构与 DocumentSkillBuilder 源码剖析 本文人工智能AI 应用AI 技能RAGMCP 服务网页爬虫Skill Seekers PDF 关键词分类解析 Golden 输出结构与源码级实现原理Skill Seekers PDF 关键词分类解析 Golden 输出结构与源码级实现原理 本篇技术指南以 Skill Seekers 仓库中 PDF 文档抓人工智能AI 应用AI 技能RAGMCP 服务网页爬虫Skill Seekers PPTX 技能生成实战从黄金输出剖析关键词分类的 SKILL.md 结构Skill Seekers PPTX 技能生成实战从黄金输出剖析关键词分类的 SKILL.md 结构 本文以 Skill Seekers 仓库中的黄金测试输出人工智能AI 应用AI 技能RAGMCP 服务网页爬虫创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考