news 2026/9/13 7:31:01

NotebookLM-Py 架构图集:40 张可视化图纸从 JSON 源到 GitHub Pages 的完整工作流

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
NotebookLM-Py 架构图集:40 张可视化图纸从 JSON 源到 GitHub Pages 的完整工作流

NotebookLM-Py 架构图集:40 张可视化图纸从 JSON 源到 GitHub Pages 的完整工作流

【免费下载链接】notebooklm-pyUnofficial Python API and agentic skill for Google Gemini Notebook. Full programmatic access to NotebookLM's features—including capabilities the web UI doesn't expose—via Python, CLI, and AI agents like Claude Code, Codex, and OpenClaw.项目地址: https://gitcode.com/GitHub_Trending/no/notebooklm-py

本文围绕 notebooklm-py 仓库的docs/diagrams/目录展开,讲解这套由 40 张「JSON 源 + 自包含 HTML 查看器」组成的架构图集如何组织、如何按主题检索、如何通过 GitHub Pages 托管发布,以及如何用 Archify 工具链验证并更新一张图纸。读完之后,你将掌握该图集的分类体系、五种图纸类型的 JSON 结构约定、部署校验逻辑,以及一条可复制的「validate → deliver → visual-check」更新流程。

图集定位:架构文档的可视化配套

docs/diagrams/README.md开篇即说明:这些图是 docs/architecture.md 的可视化配套(visual companion)。首次成功部署到 GitHub Pages 之后,目录中的Explore链接会在托管查看器中打开对应图纸,查看器自带浅色/深色主题、引导式聚焦模式(guided focus modes)、搜索与导出能力;Pages 站点始终反映main分支最近一次成功部署,而旁边的Source链接则打开可编辑的 JSON 源文件。原文档还特别强调:不要手工编辑生成的 HTML

从目录实际内容看(共 80 个文件,28408 字节级大小分布均匀),图集遵循一个严格的文件配对约定:

  • 每张图有两份文件:NN-<名称>.<类型>.json(源)与NN-<名称>.<类型>.html(交付物),编号从 01 到 40;
  • HTML 查看器是自包含的(单个文件约 700 KB+),由 Archify 生成。从 01-system-overview.html 的头部元信息可见,生成器版本被标记为archify 2.16.0-dev.0,并且包含首屏防闪烁的主题解析脚本;
  • 仓库只提交 JSON 源与交付 HTML 两类文件,不提交中间产物。

五种图纸类型与 JSON 结构

JSON 源使用统一的 schema。以 19-client-resource-lifecycle.lifecycle.json 为例,其结构为:

  • schema_version: 固定为1
  • diagram_type: 图纸类型,共五种——architecture(架构)、workflow(工作流)、sequence(时序)、dataflow(数据流)、lifecycle(生命周期),文件名中的类型后缀即来源于此;
  • meta: 元信息,包含titlelocalequality_profile(该仓库统一为showcase)、viewBox(画布尺寸),以及views数组——每个 view 定义一个「引导式聚焦」:focus列出该视角高亮的节点 id,note说明该视角回答的问题;
  • 类型专属的主体元素:lifecycle 图有lanes(泳道)、states(状态,带type/sublabel/tag)、transitions(转移,带variant/route路由控制);workflow 图(如 20-retry-policy-workflow.workflow.json)有phasesmainPath;sequence 图(如 07-rpc-call-path.sequence.json)有participants

以 19 号图(根客户端资源生命周期)为例,其views定义了三个聚焦视角——「Generation rail」「Graceful shutdown」「Rollback and reopen」,分别高亮不同状态子集,这正是目录中 Explore 查看器「引导式聚焦模式」的数据来源。

目录总览:40 张图的主题分组

目录将 40 张图分为五个主题区块,每张图附「它回答什么问题」。以下完整继承目录的分类,并给出各图源文件在仓库中的路径。托管部署成功后,每张编号 HTML 都可通过项目 Pages 站点的 hosted viewer 打开;未部署或站点暂不可用时,直接打开本地 checkout 中已提交的 HTML 查看器即可。

系统与边界(System and boundaries)

#回答的问题源文件
01System overview库调用以及 CLI、MCP、REST 适配器如何到达两个后端?docs/diagrams/01-system-overview.architecture.json
02Adapters and application layer哪些职责属于前端适配器、哪些属于_app/docs/diagrams/02-adapters-and-app-layer.architecture.json
03Client runtime and transportSharedRuntime 与所选后端包如何持有 dispatch、transport 与兼容逻辑?docs/diagrams/03-client-runtime-and-transport.architecture.json
05Feature servicessources、artifacts、chat 背后是哪些有状态服务?docs/diagrams/05-feature-services.architecture.json
06Web and Android backends哪些机制是中性的?WebRuntime 与 AndroidRuntime 在哪里分叉?docs/diagrams/06-backends-web-and-android.architecture.json
23Runtime class modelSharedRuntime、WebRuntime、AndroidRuntime 与懒加载 sidecar 如何关联?docs/diagrams/23-runtime-class-model.architecture.json
27Capability contracts哪些实现满足 RPC、loop 与单消费者契约?docs/diagrams/27-capability-contracts.architecture.json
28Profile, auth, and backend selection每个后端构造哪些 auth、runtime、raw 适配器与兼容资源?docs/diagrams/28-profile-auth-backend-selection.workflow.json
29Organization and sharing哪些 API 跨越 account 与 notebook 作用域?sharing 与 membership 在哪里?docs/diagrams/29-organization-and-sharing.architecture.json
30Transfer security boundariesWeb 与 Android 传输平面如何围栏 URL、凭据、清理与发布?docs/diagrams/30-transfer-security-boundaries.dataflow.json
34Client ownership boundaries哪些资源归配置、构造、单个 client 实例、单次操作所有?docs/diagrams/34-client-ownership-boundaries.architecture.json
35Client construction and lifecycle handoff直接构造与延迟构造如何收敛到同一个已安装的 CLOSED 图?docs/diagrams/35-client-construction-and-lifecycle.lifecycle.json

认证(Authentication)

#回答的问题源文件
04Authenticationrefresh 如何分派到 Web cookie 恢复或 Android bearer 重铸?docs/diagrams/04-authentication.architecture.json
10Login workflow交互式登录、浏览器 cookie 导入与 master-token 引导有何不同?docs/diagrams/10-login-workflow.workflow.json
24Authentication class model哪些类型化值、存储与协调器拥有凭据状态与恢复逻辑?docs/diagrams/24-auth-class-model.architecture.json
31Cold authentication recovery冷启动的 Web 档案如何经 refresh 命令、无头引导与路径序列化的 L4 重铸恢复?docs/diagrams/31-cold-auth-recovery.sequence.json

调用、数据流与生命周期(Calls, data flows, and lifecycles)

#回答的问题源文件
07RPC call pathsWeb、Android 与被废弃的兼容调用如何到达所选 runtime?docs/diagrams/07-rpc-call-path.sequence.json
11Chat ask sequence锁、流式、会话恢复与结果组装分别归谁所有?docs/diagrams/11-chat-ask-sequence.sequence.json
12Source ingest文件字节与无字节输入如何成为就绪的 grounding 源?docs/diagrams/12-source-ingest-dataflow.dataflow.json
13Artifact lifecycle生成如何经过 pending、complete、failed 与 retry 状态?docs/diagrams/13-artifact-lifecycle.lifecycle.json
15Android call pathAndroid 命名空间调用到 protobuf 投影之间发生了什么?docs/diagrams/15-android-call-path.sequence.json
19Client resource lifecycle构造之后,open、bind、drain、close、rollback、reopen 如何影响受管资源?docs/diagrams/19-client-resource-lifecycle.lifecycle.json
20Retry policy两个后端如何保持重试对等,并诚实地暴露含糊的写入?docs/diagrams/20-retry-policy-workflow.workflow.json
21Deep research lifecycle研究任务如何经历轮询、完成、导入、失败或取消?docs/diagrams/21-deep-research-lifecycle.lifecycle.json
32MCP client providerMCP 适配器如何打开、复用、失效并恢复其共享 client?docs/diagrams/32-mcp-client-provider.sequence.json
33MCP detached chat task分离式 chat 任务如何从创建走到轮询、终态观察与 TTL 过期?docs/diagrams/33-mcp-detached-chat-task.lifecycle.json
36Operation deadline and cancellation一个操作预算如何跨越嵌套工作同时保留调用方取消?docs/diagrams/36-operation-deadline-and-cancellation.sequence.json
37Operation journal and recovery尝试证据如何成为提交确定性与安全的恢复动作?docs/diagrams/37-operation-journal-and-recovery.dataflow.json
38Adapter prepare, confirm, and execute规范资源 ID 或 notebook+sharing 操作数如何在跨越人为延迟后被确认执行?docs/diagrams/38-adapter-prepare-confirm-execute.workflow.json

领域模型与适配器(Domain models and adapters)

#回答的问题源文件
08Artifacts class modelartifact 契约、服务、轮询与公开结果类型如何关联?docs/diagrams/08-artifacts-class-model.architecture.json
09Exception hierarchy适配器可以分类哪些公开异常与下载 auth 元数据?docs/diagrams/09-exception-hierarchy.architecture.json
14Android subsystem凭据、session、transfers、phenotype、retry 与 epoch 机制如何组成 AndroidRuntime?docs/diagrams/14-android-backend.architecture.json
16CLI subsystemClick 命令、服务、_app/与渲染器如何分工?docs/diagrams/16-cli-subsystem.architecture.json
17MCP subsystemMCP 工具如何共享中性内核与变更确认策略?docs/diagrams/17-mcp-subsystem.architecture.json
18REST subsystem路由、认证、限额、pending 状态与 client 生命周期如何协同?docs/diagrams/18-rest-server-subsystem.architecture.json
25Sources class modelsource 契约、upload/add 服务与公开 source 值如何关联?docs/diagrams/25-sources-class-model.architecture.json
26Chat, notes, and mind maps对话与 note 支撑/交互式界面如何组合?docs/diagrams/26-chat-notes-class-model.architecture.json

测试与故障覆盖(Testing and fault coverage)

这一区块伴随 docs/fault-injection.md 使用。目录特别说明:其中的场景数量描述的是「声明的故障牌组」(declared fault deck),代表穷尽的失败空间或代码覆盖率。

#回答的问题源文件
22Test infrastructure单元测试、guardrails、回放、真实 loopback 故障与 live 测试如何嵌入 CI?docs/diagrams/22-testing-and-guardrails.architecture.json
39Fault coverage可移植与可选的 curl 牌组覆盖了哪些故障族与后端边界?docs/diagrams/39-fault-coverage.architecture.json
40Fault scenario lifecycle声明的故障、公开结果、独立证据与清理如何成为一份被校验的报告?docs/diagrams/40-fault-scenario-lifecycle.workflow.json

GitHub Pages 托管:pages.yml 部署管线

部署由 pages.yml 工作流(名为 “Deploy architecture diagrams”)完成。从该工作流源码可以确认以下事实:

  1. 触发条件:仅在pushmain且改动落在.github/workflows/pages.ymldocs/diagrams/*.html路径时触发,另支持workflow_dispatch手动触发。这意味着拉取请求永远不会部署到公开站点,且只有图纸 HTML 变更才会触发发布。
  2. 构建步骤(build job)
    • checkout 时关闭凭据持久化(persist-credentials: false),权限仅contents: read+pages: read
    • 核心校验(pages.yml):统计docs/diagrams下形如[0-9][0-9]-*.html的查看器数量与[0-9][0-9]-*.json的源文件数量,要求两者都大于 0 且严格相等——这就是「JSON 源与 HTML 查看器必须成对」约定在 CI 中的强制点;
    • 只把编号 HTML 复制到_site/diagrams/,并把01-system-overview.html额外复制为站点根路径的index.html,使系统总览图位于 Pages 站点根部;
    • 通过actions/upload-pages-artifact@v5上传_site产物。
  3. 部署步骤(deploy job)needs: build,使用actions/deploy-pages@v5,依赖pages: writeid-token: write权限,并绑定github-pages部署环境。
  4. 一次性前置配置:仓库管理员必须在首次部署前,在 Settings → Pages → Build and deployment 中把 Source 选为GitHub Actions,否则首次部署不会成功。
  5. 并发策略concurrency.group: pagescancel-in-progress: false,即新部署排队等待而非取消在途部署,避免半途中断站点。

覆盖策略:哪些图被生成、哪些刻意不生成

目录中的 Coverage policy 一节解释了图集的边界与演进:

  • 已覆盖:运行时各层、两个后端图、全部十一个公开命名空间、三个前端适配器、认证、主要字节传输边界,以及「顺序或状态难以仅凭文字理解」的工作流;
  • 2026 年 9 月审计:新增图 28–30,因为后端/档案优先级、五个 organization 命名空间与逐跳传输安全是原图集的实质性缺口;分支本地的汇编器、根兼容 sidecar、共享源工作流与受保护传输重构只刷新受影响图纸,不引入外部系统、RPC id 或 wire 形状;
  • 图 31–33:补齐此前缺失的冷认证恢复时序(并发与清理顺序敏感)、MCP provider 打开/恢复时序与分离任务生命周期;
  • 图 34–38:记录客户端所有权模型、构造到生命周期交接、整操作 deadline 与取消契约、变更日志与恢复证据、以及 2026 年 9 月所有权重构引入的 adapter prepare/confirm/execute 边界;图 19 则专门覆盖 runtime 的 open、drain、close、rollback、reopen 迁移,与 34/35 分工明确。
  • 刻意不生成的视图(原文档列了三项,均给出替代去处):
    1. 精确的仓库树图——留在 docs/architecture.md 的 File map 章节,且由 scripts/check_claude_md_freshness.py 对src/notebooklm/做新鲜度门禁;
    2. 逐条 RPC 载荷与每个生成的 protobuf 类型——变化快于教学价值,改用 docs/rpc-reference.md、docs/rpc-development.md 与 docs/android/README.md(Android 证据索引);
    3. 逐命令/逐方法清单——保留在 docs/cli-reference.md 与 docs/python-api.md;图纸解释所有权与流程,不复制参考文档。

更新一张图纸:Archify 命令流程

仓库提交 Archify JSON 源与自包含 HTML 查看器,但不内嵌、不锁定生成器。目录给出的更新流程是:把环境变量ARCHIFY_ROOT指向已安装的 Archify skill/包,在 PR 中记录其版本,并审查生成 diff。按图纸类型(architectureworkflowsequencedataflowlifecycle)执行:

ARCHIFY_ROOT=/path/to/archify node "$ARCHIFY_ROOT/bin/archify.mjs" doctor --json node "$ARCHIFY_ROOT/bin/archify.mjs" validate <type> <diagram.json> \ --quality showcase --json node "$ARCHIFY_ROOT/bin/archify.mjs" deliver <type> <diagram.json> <diagram.html> \ --quality showcase --json node "$ARCHIFY_ROOT/bin/archify.mjs" visual-check <diagram.html> --json

关键约束与收尾步骤:

  • --repo-root "$PWD"参数仅可用于architecture类型且有仓库证据的候选(追加到validatedeliver);workflow、sequence、dataflow、lifecycle 候选必须省略该标志;
  • visual-check会产出浅色与深色截图,应人工检查后删除所有生成的*.visual-check.*文件——它们是评审证据,不是仓库产物;
  • 最终只提交两样东西:JSON 源与交付的 HTML。这与 pages.yml 的「源/查看器数量相等」校验以及部署路径过滤(只发布docs/diagrams/*.html)互相呼应。

图集与文档体系的咬合方式

从 docs/architecture.md 的交叉引用可以看出图集在整个文档体系中的位置:架构正文在描述六层所有权模型、_app/中性应用层、Android 后端拆分、chat/notes 组合、源摄入与传输安全、资源生命周期与重试策略、deadline/取消与日志恢复时,分别以 Explore 链接指向图 01/02/06、09、03/23/27、14/15、11/26、12/13/30、19/20、36/37/34/35 等对应图纸。也就是说,文字文档承担「规范叙述 + 行内锚点」,图集承担「可交互的结构/时序/状态视图」,参考类清单(CLI、Python API、RPC)则刻意留在纯 Markdown 中——三者边界清晰,互为入口。对于想深入某一主题的读者,最短路径是:先查本目录找到对应编号的图,打开 HTML 查看器用 focus 模式与搜索定位结构,再回到 docs/architecture.md 或对应 ADR(如 docs/adr/0038-local-fault-injection-harness.md)阅读文字证据。

【免费下载链接】notebooklm-pyUnofficial Python API and agentic skill for Google Gemini Notebook. Full programmatic access to NotebookLM's features—including capabilities the web UI doesn't expose—via Python, CLI, and AI agents like Claude Code, Codex, and OpenClaw.项目地址: https://gitcode.com/GitHub_Trending/no/notebooklm-py

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 7:29:17

AI驱动的人机交互革命:从编程到自然语言操作

1. 从"会编程"到"会操作"&#xff1a;AI能力边界的重大迁移三年前&#xff0c;当我在科技公司第一次接触AI编程助手时&#xff0c;团队里最兴奋的是那些能熟练编写Python的工程师。他们用几行代码就能调用GPT-3的API&#xff0c;把自然语言转换成可执行的S…

作者头像 李华
网站建设 2026/9/13 7:24:15

点堆中子动力学方程的吉尔法求解:MATLAB刚性ODE实战

简介&#xff1a;基于MATLAB的吉尔法求解点堆中子动力学方程程序&#xff0c;面向核工程、反应堆物理方向的学生与研究人员&#xff0c;解决点堆模型中子通量密度随时间变化的数值求解问题。吉尔法作为隐式数值积分方法&#xff0c;能有效处理中子动力学方程中的刚性特征&#…

作者头像 李华
网站建设 2026/9/13 7:22:51

AI工程落地四大卡点:Docker、Claude Code、Agent与审核链路实战指南

1. 这不是日志文件名&#xff0c;而是一份AI工程实践的现场切片“ai-daily-2026-09-07”——乍看像某次自动化脚本生成的日期戳&#xff0c;或是CI/CD流水线里被随手打上的Git commit message。但如果你最近两周刷过技术社区、翻过Docker Hub镜像更新记录、调试过Claude Code在…

作者头像 李华
网站建设 2026/9/13 7:20:44

Spring Boot高校创新创业项目管理系统:从状态机到权限设计全解析

简介&#xff1a;面向高校创新创业项目管理场景&#xff0c;提供一套前后端分离的项目管理系统源码及配套视频录制与截图。系统基于Spring Boot MyBatis-Plus MySQL构建后端&#xff0c;前端采用Vue ElementUI&#xff0c;覆盖学生、教师、管理员三类角色&#xff1a;学生可…

作者头像 李华
网站建设 2026/9/13 7:20:32

Vue 3 API 选型指南:Options 与 Composition 对比、迁移实践与避坑

Vue 3 发布到现在&#xff0c;Options API和Composition API的争论就没停过。你在技术群里问一句"新项目应该用哪个"&#xff0c;下面一定分成两派吵半天&#xff1a;老手会说 Composition API 才是 Vue 3 的灵魂&#xff0c;新手翻着文档一脸懵——我明明用 Options…

作者头像 李华