尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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),仅供参考
RELATED

相关推荐

工业老旧设备数据上云: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/24 1:08:50
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/24 1:08:50
基于深度强化学习的MEC计算卸载毕设源码解析与实战

基于深度强化学习的MEC计算卸载毕设源码解析与实战

简介:这份资源面向人工智能、深度学习方向的学习者与研究人员,聚焦移动边缘计算(MEC)场景下的计算卸载与资源分配问题,通过深度强化学习(DRL)构建智能代理,动态决策任务本地执行或卸…

📅 2026/9/24 1:03:50
MORE NEWS

更多资讯

📰

XMOS XCORE多核实时处理架构:大规模麦克风阵列与三维声场记录实践

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

📰

电源芯片系统化替代方法论:从Pin兼容到全维度验证

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

📰

Qt 6.8 LTS与Qt for MCUs 2.9深度解析:嵌入式GUI选型与迁移实战

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

📰

Java动态表头Excel导出:告别硬编码,灵活应对需求变更

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

📰

Kornia LAF 补丁提取的 CPU 半精度采样修复:float32 回退与批处理 grid_sample 优化解析

计算机视觉深度学习人工智能图像处理 【免费下载链接】kornia 🐍 空间人工智能的几何计算机视觉库 项目地址: https://gitcode.com/kornia/kornia 点击查看 免费下载 导读 本文围绕 changelog.d/migration-110.fixed.md 记录的一次关键修复展开&#x…

📰

从1.4万张老报纸里,抠出163亿个高质量文字token

2026年,波士顿公共图书馆的档案库里躺着一百多万张老报纸扫描件,最早的一张可以追溯到1795年。这些纸页记录了两百多年美国社会的日常,选举、船期、寻人启事、市场行情,还有大量密密麻麻的商业广告。问题是,这些内容基…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬