Skill_Seekers Jupyter 笔记本转 Skill:analysis.md 参考文件结构全解析
人工智能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点击查看免费下载Jupyter Notebook.ipynb是数据科学、机器学习与实验性分析中最常见的代码载体而 Skill_Seekers 的 Jupyter 抓取器Jupyter Notebook Scraper负责将其转换为结构化的 Claude AI Skill。tests/golden/phase2/jupyter/references/analysis.md正是该转换管线的黄金输出golden output参考文件它逐节呈现了一个分析笔记本analysis.ipynb被解析后的最终形态。本文以该文件为骨架结合仓库源码 jupyter_scraper.py、scraper_utils.py 与黄金测试 test_phase2_golden_jupyter.py完整讲解 notebook 到 Skill 的转换流程、参考文件的每一节如何生成、各类单元格cell如何被编码为 Markdown以及如何用一条命令复现同样的产物。从 .ipynb 到 Skill转换管线一览Skill_Seekers 的 Jupyter 支持由JupyterToSkillConverter类实现jupyter_scraper.py它继承自DocumentSkillBuilder复用其加载/构建编排、参考文件封装与文件名解析机制但针对 notebook 单元结构重写了内容分类、逐节参考体、index.md与SKILL.md的生成逻辑。一次典型的转换分为四个阶段提取Extractextract_notebook()使用nbformatv4读取一个或多个.ipynb文件逐 cell 解析为结构化的 section 字典并把中间结果落盘为{name}_extracted.jsonjupyter_scraper.py。分类Categorizecategorize_content()将全部 section 归入一个或多个分类category分类决定了参考文件的命名与数量jupyter_scraper.py。生成参考文件每个分类对应一个references/*.md其中analysis.md就是本文解析的对象jupyter_scraper.py。生成索引与 Skill 主文件references/index.md提供分类导航与统计SKILL.md汇总全部要点、依赖、代码示例与导航jupyter_scraper.py。analysis.md之所以被命名为analysis源于分类规则当notebook_path指向单个文件时分类名直接取笔记本文件名去掉.ipynb后缀的 stemcategorize_content中Path(self.notebook_path).stem因此analysis.ipynb生成references/analysis.md当输入是目录时则退回通用的section_*.md命名jupyter_scraper.py。参考文件的骨架Source 分节与单元格类型编码analysis.md的最外层结构是 5 个被---分隔的区块每节以** Source: Section N**开头。这与_write_reference_section()的实现一一对应每个 section 以---开始写入来源标注、标题层级、正文、代码样本、输出、错误、富输出、表格与标签最后再以---收尾jupyter_scraper.py。来源标注区分了三种 cell 类型分别对应解析阶段的三个分支_parse_single_notebook中的cell_type判断jupyter_scraper.py标注触发条件对应解析函数** Source: Section N**无后缀markdown 单元格可按标题拆分为多节_parse_markdown_cell** Source: Section N** (Code Cell [In 2])code 单元格带执行序号_parse_code_cell** Source: Section N** (Raw Cell)raw 单元格未渲染文本_parse_raw_cellSection 1Markdown 单元格与代码围栏样本analysis.md第一节由 markdown 单元格生成## Getting Started #### Verify Setup Welcome to the analysis notebook. Installation and setup steps. bash pip install pandasTags: intro, setup其生成过程_parse_markdown_cell[jupyter_scraper.py](https://link.gitcode.com/i/d765c0917207d4997c2370e032ccdc9b#L407-L449)值得注意 - 单元格源码按标题行^(#{1,6})\s(.)切分为多个 section## Getting Started 被提升为该节的标题#### Verify Setup 属于三级以上标题被单独收录进 headings 子标题列表。 - 单元格内嵌的 bash 代码围栏通过 (\w*)\n(.*?) 正则提取为 code_samples并调用 score_code_quality(code, notebook_modeTrue) 计算质量分本例为 5.0见黄金测试 [test_phase2_golden_jupyter.py](https://link.gitcode.com/i/c0d2b075a14c91556689aadbac1d2e01#L22-L37)。 - cell 级标签 tagsintro、setup被原样写入文件末尾的 *Tags: ...* 行。 Markdown 单元格的标题结构随后还会向上传递到 SKILL.md 的 Key Concepts 区一级标题成为 Major Topics二级标题成为 Subtopics[jupyter_scraper.py](https://link.gitcode.com/i/d765c0917207d4997c2370e032ccdc9b#L949-L970)。 ### Section 2代码单元格、执行序号与输出 markdown #### Assign: df col1 col2 0 1 3 **In [2]:** python import pandas as pd df pd.read_csv(data.csv) df.head()Output:col1 col2 0 1 3Rich output: text/html这是 code cell 的完整编码形态对应 _parse_code_cell[jupyter_scraper.py](https://link.gitcode.com/i/d765c0917207d4997c2370e032ccdc9b#L497-L562) - **标题推断**_infer_code_heading() 依据首行模式自动命名。df pd.read_csv(...) 命中赋值模式 ^(\w)\s*生成 Assign: df。其他规则还包括# 注释 直接作为标题、def/class 生成 Define: x、% 魔术命令生成 Magic: %timeit、! 开头生成 Shell: cmd[jupyter_scraper.py](https://link.gitcode.com/i/d765c0917207d4997c2370e032ccdc9b#L583-L605)。 - **执行序号**execution_count 2 被写入代码样本与 section 两级结构在参考文件中渲染为 **In [2]:** 标签。 - **输出分类**execute_result/display_data 的 text/plain 汇总为 output_text即 **Output:** 下的表格而 text/html、image/png、image/svgxml 等 MIME 被记录到 output_display渲染为 *Rich output: text/html* 行。stream 输出中 stderr 会归入错误列表stdout 归入正文输出。 - **语言检测**代码样本的语言来自内核元数据 kernelspec.language / language_info.name对于未标注语言的代码还会用 LanguageDetector最低置信度 0.15采纳阈值 0.3自动推断[jupyter_scraper.py](https://link.gitcode.com/i/d765c0917207d4997c2370e032ccdc9b#L319-L333)。 ### Section 3魔术命令、无执行序号与错误输出 markdown #### Magic: %timeit python %timeit broken()Errors:NameError: name broken is not defined Traceback line 1Tags: raises-exception该节由 code cell 生成但 execution_count 为 None单元格未执行或执行失败因此参考文件中不出现 In [...] 标签——_write_reference_section 中只有 if ec: 为真时才写入[jupyter_scraper.py](https://link.gitcode.com/i/d765c0917207d4997c2370e032ccdc9b#L777-L780)。 %timeit 触发 Magic: 标题规则。error 类型输出被解析为 ename: evalue 加清理后的 traceback移除 ANSI 转义序列 \x1b\[[0-9;]*m写入 output_errors 并渲染为 **Errors:** 代码块[jupyter_scraper.py](https://link.gitcode.com/i/d765c0917207d4997c2370e032ccdc9b#L536-L543)。cell 标签 raises-exception 同样被保留。这类带错误信息的代码单元在 Skill 中具有特殊价值它让 Agent 能直接看到哪些写法会抛什么异常可用于教学与避坑。 ### Section 4Raw 单元格 markdown raw front-matter contentRaw cell 是不参与渲染的原始文本常用于 front-matter、LaTeX 片段等解析最为简单_parse_raw_cell直接把source作为正文文本标题与代码样本为空jupyter_scraper.py。Section 5长代码截断、子标题与双形态表格### Modeling Results ##### Confusion Matrix Model evaluation summary with accuracy and recall metrics. python def long_example(): x0 0 ... x59 59MetricValueaccuracy0.95recall0.91| a | b | | c | d |该节覆盖了参考文件剩余的关键渲染路径 - **长代码保留与截断策略**long_example() 共 60 行、超过 500 字符测试中以 LONG_CODE 构造[test_phase2_golden_jupyter.py](https://link.gitcode.com/i/c0d2b075a14c91556689aadbac1d2e01#L18)。参考文件中**完整保留**全部代码_write_reference_section 不做截断但 SKILL.md 的 Code Examples 区每个样本只展示前 500 字符并追加 ...[jupyter_scraper.py](https://link.gitcode.com/i/d765c0917207d4997c2370e032ccdc9b#L913-L915)。该样本质量分 9.5/10在 SKILL.md 的代码排序中位居榜首。 - **表格渲染**_write_markdown_table 支持带表头与无表头两种形态。Metric/Value 表来自 tables 中的 {headers: [...], rows: [...]} 结构a/b/c/d 四格表则是无表头headers: []表格的渲染路径专门用于验证无表头分支[test_phase2_golden_jupyter.py](https://link.gitcode.com/i/c0d2b075a14c91556689aadbac1d2e01#L115-L119)。 - **质量评分的作用**score_code_quality(..., notebook_modeTrue) 按行数、定义、导入、缩进、运算符、docstring、魔术行等维度打分并对纯 %/! 单元扣分、对短片段30 字符惩罚[scraper_utils.py](https://link.gitcode.com/i/76b717b5e1db021bfa865c0a00f7559b#L70-L132)。分数进入 SKILL.md 的代码示例排序帮助 Agent 优先参考更像正经代码的单元。 ## 参考文件之外的完整 Skill 产物 analysis.md 不是孤立的文件它与 references/index.md 和 SKILL.md 组成完整产物三者可在 [tests/golden/phase2/jupyter](https://link.gitcode.com/i/723e8b971234f0dae21df2c1cb9402f9) 目录下对照查看 - **references/index.md**列出分类导航 [analysis](https://link.gitcode.com/i/c3d6ecebd904bd6852d5737e28d364ff) (5 sections, Sections 1-5)并输出统计总节数、code/markdown/raw 单元格数、notebook 数、内核 Python 3、语言版本 python 3.11.4、导入包 numpy/pandas/sklearn。索引中的链接通过共享的 _reference_filename 帮助函数生成与真实文件名永不漂移[jupyter_scraper.py](https://link.gitcode.com/i/d765c0917207d4997c2370e032ccdc9b#L796-L839)命名规则见 [scraper_utils.py](https://link.gitcode.com/i/76b717b5e1db021bfa865c0a00f7559b#L24-L52)。 - **SKILL.md**含 YAML front-mattername、description、Notebook 信息内核/语言、When to Use、Section Overview、Key Concepts、Dependencies导入包列表、Quick Reference、按质量分排序的 Code Examples、Notebook Statistics含语言分布与 Navigation 导航[jupyter_scraper.py](https://link.gitcode.com/i/d765c0917207d4997c2370e032ccdc9b#L841-L943)。 这套三文件结构让 Agent 可以先用 SKILL.md 快速判断是否该用此 Skill再经由索引或导航进入 analysis.md 这类逐节参考文件获取完整细节。 ## 输入分类单一笔记本、关键词分类与主题自动分桶 categorize_content() 依据输入形态决定分类方式[jupyter_scraper.py](https://link.gitcode.com/i/d765c0917207d4997c2370e032ccdc9b#L656-L731) 1. **单一文件分支**notebook_path 是文件时以文件 stem 为唯一分类名——analysis.md 即由此产生黄金测试 test_jupyter_single_notebook_matches_golden 验证了这一分支[test_phase2_golden_jupyter.py](https://link.gitcode.com/i/c0d2b075a14c91556689aadbac1d2e01#L162-L170)。 2. **关键词分类分支**配置了 categories 时按每个分类的关键词在 标题正文代码 拼接文本中的命中次数打分section 归属得分最高的分类无命中则落入 other空分类会生成 section_NN.md 占位N/A 范围。 3. **主题自动分桶**无路径无分类时使用内置 _TOPIC_KEYWORDSdata_loading、data_cleaning、visualization、modeling、evaluation、feature_engineering、setup、analysis 八个主题计分得分 ≥2 才入桶否则归入 other。测试 test_jupyter_topic_autocategorization_matches_golden 覆盖了该分支[test_phase2_golden_jupyter.py](https://link.gitcode.com/i/c0d2b075a14c91556689aadbac1d2e01#L189-L194)。 目录输入还会递归收集所有 .ipynb自动排除 .ipynb_checkpoints并把每个 notebook 的单元格合并编号同时记录每本 notebook 的贡献与各语言代码单元数[jupyter_scraper.py](https://link.gitcode.com/i/d765c0917207d4997c2370e032ccdc9b#L287-L314、L358-L367)。 ## 实战命令行一键复现 analysis.md 依据 [CLI_REFERENCE.md](https://link.gitcode.com/i/7c906becd75c1682d5cb879db2e2ebdc) 与仓库文档Jupyter 抓取能力需要额外依赖可通过 pip install skill-seekers[jupyter] 或 pip install nbformat 安装缺失时 _check_jupyter_deps 会抛出明确指引[jupyter_scraper.py](https://link.gitcode.com/i/d765c0917207d4997c2370e032ccdc9b#L164-L171)。 bash # 单个 notebook生成 references/analysis.md 同款产物 skill-seekers create analysis.ipynb --name>赞分享人工智能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 Jupyter 笔记本转换实战Golden_Jupyter_Topics 参考索引与 SKILL.md 结构解析Skill_Seekers Jupyter 笔记本转换实战Golden_Jupyter_Topics 参考索引与 SKILL.md 结构解析 本篇技术指南以人工智能AI 应用AI 技能RAGMCP 服务网页爬虫Skill_Seekers 的 Jupyter Notebook 转 Skill 参考索引references/index.md结构全解析Skill_Seekers 的 Jupyter Notebook 转 Skill 参考索引references/index.md结构全解析 Skill_Se人工智能AI 应用AI 技能RAGMCP 服务网页爬虫Skill_Seekers 的 Jupyter 笔记本“Other”分类参考文件解析从落选内容到完整 Skill 产物的构建原理Skill_Seekers 的 Jupyter 笔记本“Other”分类参考文件解析从落选内容到完整 Skill 产物的构建原理 在 Skill_Seeker人工智能AI 应用AI 技能RAGMCP 服务网页爬虫创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

工业老旧设备数据上云:Modbus转MQTT网关采集方案详解

工业老旧设备数据上云:Modbus转MQTT网关采集方案详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 9:27:58 阅读更多 →
Surface 上安装 Arch Linux 全攻略:触屏驱动与硬件适配实战

Surface 上安装 Arch Linux 全攻略:触屏驱动与硬件适配实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 9:26:14 阅读更多 →
汽车电子底层软件开发就业课:AUTOSAR CP、CAN总线与UDS诊断实战学习路径

汽车电子底层软件开发就业课:AUTOSAR CP、CAN总线与UDS诊断实战学习路径

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 9:56:00 阅读更多 →

最新新闻

CMU-15445 Bustub实战:手写数据库内核核心模块与并发控制

CMU-15445 Bustub实战:手写数据库内核核心模块与并发控制

简介:CMU-15445课程Bustub数据库实验的个人实现源码,面向正在学习数据库内核的学生,以及需要在简历中展示系统设计与C工程能力的开发者。项目覆盖存储管理、查询优化、事务处理等核心模块,将数据库理论落地为具体代码实践&#xf…

2026/9/25 10:54:34 阅读更多 →
SpringBoot+SSM共享厨房租赁系统:开发实战与答辩指南

SpringBoot+SSM共享厨房租赁系统:开发实战与答辩指南

共享厨房租赁这套题目,我在带毕设和接外包的时候见过太多次了。乍一看是个普通的CRUD项目,但实际上它横跨了多角色权限、资源预约、时段冲突校验、订单状态流转等一系列典型业务场景,做得好不好,完全取决于你怎么拆解需求、怎么设…

2026/9/25 10:54:34 阅读更多 →
太阳高度角、天顶角、太阳方位角:定义、公式与光伏建筑农业实战应用

太阳高度角、天顶角、太阳方位角:定义、公式与光伏建筑农业实战应用

最近在复核一个光伏项目的阴影分析报告,发现团队里几个同事对天顶角、太阳方位角、太阳高度角这三个词的理解不在一个频道上。有人把天顶角当成高度角填进了组件倾角计算,有人拿着合作方给的太阳方位角数据做阵列排布,结果东边和西边完全反了…

2026/9/25 10:54:34 阅读更多 →
Atlas 300V推理加速卡部署YOLO实战:从ONNX转换到性能调优

Atlas 300V推理加速卡部署YOLO实战:从ONNX转换到性能调优

后台三天两头有人来问:atlas部署yolo到底怎么搞?atlas 300v 24g是不是一块运算加速卡,买回来能不能直接跑模型?说实话,这两个问题背后其实是同一件事——昇腾生态里的Atlas系列板卡,在实际生产中到底怎么跟…

2026/9/25 10:54:34 阅读更多 →
Atlas 300V 24G推理加速卡部署YOLO全攻略:从模型转换到性能调优

Atlas 300V 24G推理加速卡部署YOLO全攻略:从模型转换到性能调优

最近不少同行在私信里问我同一个问题:Atlas 300V 24G是不是运算加速卡,能不能跑YOLO。这个问题每次线下技术交流也会被翻出来,可见大家对这个卡确实感兴趣,但官方资料又写得不够接地气。我直接给结论:Atlas 300V 24G就…

2026/9/25 10:54:34 阅读更多 →
VsCode安装Copilot详细教程:用TaoToken统一Key接入AI补全的配置与验证

VsCode安装Copilot详细教程:用TaoToken统一Key接入AI补全的配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 10:53:34 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →