Claude Code 100个真实案例 - 用AI生成UML类图和时序图(架构师的效率神器)
1. 架构师为什么需要从 Python 源码自动生成 UML 类图和时序图接手一个跑了三年的 Python 项目最头疼的不是改 bug而是没人说得清模块之间到底怎么调用。文档停留在两年前的 Confluence 页面代码里已经多了十几个 service 和一堆 dataclass。评审新模块时同事问「这个 OrderService 和 PaymentService 的依赖方向是什么」你只能现场翻代码翻完发现继承链有三层。UML 类图和时序图就是解决这类问题的通用语言。类图回答「系统里有哪些对象、它们怎么关联」时序图回答「一次请求从入口到落库中间经过了谁」。传统做法是打开 draw.io 或 PlantUML 手画一个中等规模的电商模块画完要小半天而且代码一改图就过期。Claude Code 在这里的价值不是「帮你画图」而是把「读代码 → 提取结构 → 生成 PlantUML 文本 → 渲染成图」这条链路自动化。你给它一个 Python 文件或一个目录它能用 AST 静态分析出类、属性、方法、继承和组合关系再按 PlantUML 语法输出.puml文件最后调用本地plantuml命令渲染成 PNG/SVG。整个过程可复制、可重跑代码变了重新执行一次就行。这篇面向两类场景一是逆向旧项目把没有文档的存量代码补出类图二是评审新模块在 PR 阶段就生成时序图让评审有图可看。下面会给出可直接复制的提示词模板、PlantUML 渲染配置、逐条验证动作以及如何把 Claude Code 的 endpoint 改到 TaoToken 统一调用避免每个项目单独配 key。适合谁写过 Python、知道ast模块大概能干什么、但不想手写解析器的后端架构师以及需要给团队输出设计文档、又不想维护 draw.io 源文件的技术负责人。如果你只是偶尔画一张图手写 PlantUML 更快但如果你要覆盖几十个模块、还要随代码更新自动化才划算。核心检索词先明确Claude Code 生成 UML 类图、Python 源码逆向时序图、PlantUML 自动渲染这三个是全文的主线。下面从环境准备开始一步步把链路跑通。2. TaoToken 前置准备把 Claude Code 的 endpoint 统一到一处Claude Code 默认走官方 endpoint但团队里多人多项目时每个项目单独配 key、单独管额度很麻烦。TaoToken 提供统一的 API 入口把 Claude Code 的请求指向https://taotoken.net/apikey 在控制台统一管理切换模型也不用改代码。先拿到 key。打开控制台页面登录后创建 API Key复制出来形如sk-xxxxxxxx。这个 key 后面要写进 Claude Code 的配置里。Claude Code 的配置方式取决于你用的是哪种接入形态。常见的有两种一种是直接改 Claude Code 的 settings 文件另一种是通过 CC Switch 这类多配置切换工具。这里给出 settings 的写法路径按你的系统来macOS 和 Linux 下通常是~/.claude/settings.jsonWindows 下是%USERPROFILE%\.claude\settings.json。文件内容如下{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的key, ANTHROPIC_MODEL: claude-sonnet-4-20250514 } }三个字段缺一不可Base URL 指向 TaoToken 的 API 地址Auth Token 填刚才复制的 keyModel ID 填你要用的模型标识。如果你用 CC Switch 管理多套配置就在它的配置界面里新建一个 profile把这三项填进去切换时选这个 profile 即可。如果你用的是 Codex 或 Cline 这类工具配置位置不同但三件套一样。Codex 的auth.json里写base_url、api_key、modelCline 的 MCP 配置里写baseUrl、apiKey、model。核心就是 Base URL Key Model ID任何工具都逃不出这三项。配好之后验证一下。在终端里执行claude --version能输出版本号说明 Claude Code 本身装好了。然后随便问一句让它读当前目录的文件比如claude 列出当前目录下所有 .py 文件如果返回了文件列表说明请求已经通过 TaoToken 走通了。如果报 401多半是 key 填错或没生效如果报连接失败检查 Base URL 有没有多写斜杠或漏了/api。这里提醒一句TaoToken 是统一调用入口不是让你绕过什么。它的作用是让团队在一个地方管 key、看用量、切模型省去每个项目单独配的重复劳动。接入文档里有各工具的详细配置示例遇到不确定的字段可以去对照。3. 可复制配置PlantUML 渲染环境与 Claude Code 提示词模板环境分两块一块是 PlantUML 渲染器本身一块是 Claude Code 的提示词。先把渲染器装好否则生成的.puml只是文本看不到图。PlantUML 依赖 Java 和 Graphviz。macOS 下用 Homebrew 一条命令brew install plantuml graphvizUbuntu/Debian 下sudo apt-get install -y plantuml graphviz default-jreWindows 下建议用 Scoop 或直接下载 plantuml.jar确保java -version能输出 11 以上。装完验证plantuml -version输出里会带版本号和 Graphviz 的路径。如果提示找不到 dot说明 Graphviz 没进 PATH重装或手动加环境变量。渲染命令的核心参数是输出格式和字符集。生成 PNGplantuml -tpng -charset UTF-8 diagram.puml生成 SVGplantuml -tsvg -charset UTF-8 diagram.puml生成 PDFplantuml -tpdf -charset UTF-8 diagram.puml-charset UTF-8必须加否则中文标题和注释会乱码。输出文件名默认和.puml同名只是扩展名不同。接下来是 Claude Code 的提示词模板。直接复制下面这段把{{目标路径}}换成你的 Python 文件或目录你是一个 Python 架构分析助手。请对 {{目标路径}} 做以下事情 1. 用 AST 静态分析提取所有类定义包括类名、父类、属性含类型注解、方法含参数和返回类型。 2. 识别类之间的关系继承inheritance、组合composition、聚合aggregation、依赖dependency。 3. 生成 PlantUML 类图代码要求 - 使用 startuml / enduml 包裹 - 抽象类标注 abstractdataclass 标注 dataclass - 可见性用 - # 表示 public/protected/private - 跳过 __str__、__repr__ 等魔术方法保留 __init__ - 中文注释保留 4. 把结果写入 class_diagram.puml然后执行 plantuml -tpng -charset UTF-8 class_diagram.puml 渲染。 5. 如果渲染失败输出 plantuml 的 stderr 内容不要静默跳过。时序图的提示词换一个角度重点是调用链请阅读 {{目标路径}} 中的入口函数如 Flask/FastAPI 路由或 main 函数 追踪一次完整请求的调用链生成 PlantUML 时序图 - participant 按调用顺序排列数据库用 database 关键字消息队列用 queue - 每个跨服务调用标注 HTTP 方法或消息类型 - 异常分支用 note over 标注 - 输出到 sequence_diagram.puml 并渲染为 PNG这两段提示词的关键在于「要求它输出可渲染的文件并执行渲染命令」而不是只把 PlantUML 文本贴在对话里。Claude Code 有文件写入和命令执行能力让它直接落盘再渲染你拿到的是图而不是一段需要手动复制的代码。如果你用 CC Switch 管理配置确保当前 profile 指向 TaoToken这样提示词里的模型调用走统一入口。Cline 的 MCP 配置同理Base URL 填https://taotoken.net/apiKey 填控制台生成的Model ID 按需选。4. 验证请求与成功结果从 Python 源码到类图、时序图配置就绪后拿一个真实的 Python 文件跑一遍。假设你有一个order_service.py里面定义了Order、OrderItem、Payment几个 dataclass 和一个OrderService类。在项目根目录启动 Claude Code把第 3 节的类图提示词贴进去目标路径填order_service.py。执行后你会看到它先输出分析过程然后写入class_diagram.puml最后调用 plantuml 渲染。打开生成的.puml文件内容大致是这样startuml skinparam backgroundColor #FEFEFE skinparam class { BackgroundColor #E3F2FD BorderColor #1565C0 FontName Microsoft YaHei } title 订单模块类图 class Order dataclass { id: int user_id: int total_amount: float status: OrderStatus -- create_from_cart(cart: ShoppingCart): bool cancel(): bool ship(tracking_no: str): bool } class OrderItem dataclass { product_id: int quantity: int price: float -- subtotal(): float } class Payment dataclass { order_id: int amount: float method: PaymentMethod -- pay(processor: PaymentProcessor): bool } Order 1 *-- 0..* OrderItem : contains Order 1 o-- 0..1 Payment : paid_by enduml渲染成功后同目录下会出现class_diagram.png。用图片查看器打开能看到类框、属性、方法和关系箭头。如果中文显示正常、继承箭头方向正确说明链路通了。时序图验证换一个入口。找一个 FastAPI 或 Flask 的路由函数比如app.post(/orders)把时序图提示词贴进去。生成的.puml里会有actor、participant、database这些元素箭头按调用顺序排列。渲染出的 PNG 能直观看到「前端 → 网关 → 订单服务 → 库存服务 → 数据库」的完整链路。验证成功的三个标志一是.puml文件里类名和实际代码一致没有凭空捏造的类二是关系箭头方向正确继承是--|组合是*--三是渲染出的图中文不乱码、布局不重叠。如果这三点都满足说明 Claude Code 的 AST 分析和 PlantUML 渲染都工作正常。实测下来一个 500 行左右的 Python 模块从贴提示词到拿到 PNG 大约 30 秒。比手画快得多而且改完代码重跑一次就同步了。5. 本篇常见错误排查401、local proxy failed、reading choices、OAuth接入和渲染过程中最容易踩的几类报错逐个对照。401 Unauthorized。这是 key 或 Base URL 的问题。先检查settings.json里的ANTHROPIC_AUTH_TOKEN是不是完整复制了有没有多余空格。再确认ANTHROPIC_BASE_URL是https://taotoken.net/api注意结尾没有斜杠路径里有/api。如果用的是 CC Switch检查当前激活的 profile 是不是你配的那个。401 基本就是这三处之一。local proxy failed。这个报错通常出现在 Claude Code 尝试连接 endpoint 时。先确认网络能访问taotoken.net用curl -I https://taotoken.net/api看返回码。如果返回 200 或 401 都说明网络通问题在配置如果超时检查本机网络设置。注意不要在任何配置里写代理地址TaoToken 是直连入口不需要额外代理层。reading choices 相关报错。这类错误一般出现在模型返回格式不符合预期时比如你用的 Model ID 写错了或者该模型不支持当前请求格式。检查ANTHROPIC_MODEL字段确认填的是 TaoToken 支持的模型标识。如果换了模型还是报错去接入文档里核对当前可用的 Model ID 列表。OAuth 相关报错。Claude Code 某些版本会尝试 OAuth 流程如果你用的是 API Key 模式需要在配置里明确走 token 认证。检查 settings 里有没有残留的 OAuth 配置项删掉它们只保留ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_MODEL三项。如果用的是 Codex 的auth.json确认字段名是api_key而不是oauth_token。PlantUML 渲染失败。如果 Claude Code 报告 plantuml 命令找不到说明 PATH 没配好。在终端里执行which plantuml确认路径然后把该路径加到系统 PATH。如果报 Graphviz 的 dot 找不到重装 graphviz 并确认dot -V能输出版本。中文乱码就加-charset UTF-8这个参数不能省。生成的图缺类或缺关系。这通常是 AST 分析的边界情况比如动态创建的类、__getattr__返回的属性、或者跨文件的继承。解决办法是在提示词里明确目标目录而不是单个文件让 Claude Code 扫描整个包。如果还缺手动在.puml里补几行PlantUML 文本本身就是可编辑的。排查顺序建议先确认 key 和 Base URL 正确再确认模型 ID 可用最后确认 plantuml 和 graphviz 装好。这三层都过了基本不会有大问题。6. 把 UML 生成接入日常流程从一次性脚本到持续同步跑通单次生成只是起点。真正省时间的是把它变成日常流程的一部分。第一种用法是 pre-commit 钩子。在.git/hooks/pre-commit里加一段每次提交前对改动的 Python 文件重新生成类图把.puml和.png一起提交。这样代码和文档永远同步评审时直接看图。第二种用法是 CI 流水线。在 GitHub Actions 或 GitLab CI 里加一个 job用 Claude Code 的 CLI 模式跑生成脚本把产出的图作为 artifact 上传。PR 里就能看到这次改动对架构的影响。第三种用法是评审辅助。新模块提 PR 时让作者附上时序图。评审人不用逐行读代码先看图确认调用链合理再针对具体实现提意见。这比纯代码评审效率高很多。如果你团队用 Coding Plan 做长期编码和 Agent 任务可以把 UML 生成作为一个固定 skill 挂进去每次涉及架构变更时自动触发。模型对话页面适合临时验证某个模块的结构接入文档里有各场景的配置说明。最后给一个实用技巧生成的.puml文件不要只留在本地提交到仓库的docs/uml/目录。PlantUML 是纯文本diff 友好改了什么关系一眼能看出来。配合 CI 自动渲染团队任何人 clone 下来都能看到最新的架构图。这套流程跑顺之后你会发现架构文档不再是负担而是代码的副产品。代码改完图自动更新评审有据可依新人上手也能先看图再读代码。

相关新闻

大模型应用延迟排查:Token推理实例调优实战指南与TaoToken配置

大模型应用延迟排查:Token推理实例调优实战指南与TaoToken配置

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

2026/10/11 20:05:58 阅读更多 →
Claude Code 安装后 claude.exe 无法运行?用 TaoToken 排查 native binary not installed

Claude Code 安装后 claude.exe 无法运行?用 TaoToken 排查 native binary not installed

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

2026/10/11 13:46:53 阅读更多 →
用Claude Agent SDK构建CLI工具:把settings改到TaoToken

用Claude Agent SDK构建CLI工具:把settings改到TaoToken

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

2026/10/9 15:51:59 阅读更多 →

最新新闻

用代码对抗分心:ADHD开发者如何构建低认知负荷的效率工具链

用代码对抗分心:ADHD开发者如何构建低认知负荷的效率工具链

1. 一个看似玩笑的标题,背后藏着多少真实需求第一次看到“i-have-adhd”这个项目标题,我下意识以为是个段子。毕竟在技术社区里,用自嘲式命名来降低预期、拉近距离的做法太常见了。但点进去认真翻了一遍之后,我发现它其实是一个相…

2026/10/11 20:14:02 阅读更多 →
MySQL底层机制深度解析:索引设计、事务隔离与性能调优实战

MySQL底层机制深度解析:索引设计、事务隔离与性能调优实战

MySQL这个名字,一说出来大家都不陌生,做后端、搞数据、写业务的,基本每天都在跟它打交道。但说实话,我见过太多人CRUD写得很溜,一碰上慢查询、死锁、主从延迟就抓瞎。前段时间帮某团队排查一个线上问题,数据…

2026/10/11 20:14:02 阅读更多 →
LuatOS系统消息与消息队列机制:嵌入式Lua异步驱动核心解析

LuatOS系统消息与消息队列机制:嵌入式Lua异步驱动核心解析

搞嵌入式Lua开发,绕不开LuatOS这套东西。当初我第一次打开它的系统消息列表文档时,说实话是有点懵的:一大串消息名、回调、订阅关系,看起来像个迷宫。但等你真正弄懂了sys.subscribe、sys.publish、sys.timer和sys.loop这几根线之…

2026/10/11 20:14:02 阅读更多 →
毕设级双任务系统:协同过滤+票房预测的特征对齐实践

毕设级双任务系统:协同过滤+票房预测的特征对齐实践

简介:这是一份面向计算机专业本科生的高分毕业设计实战资源,聚焦机器学习在影视领域的双任务应用:个性化电影推荐与票房预测。资源适用于毕业设计、课程设计及项目实训,帮助学习者掌握数据清洗、特征工程、协同过滤、内容推荐、集…

2026/10/11 20:14:02 阅读更多 →
时序相关性下的蒙特卡洛场景生成与削减:原理、实现与避坑

时序相关性下的蒙特卡洛场景生成与削减:原理、实现与避坑

1. 场景生成与削减到底在研究什么:先明确技术定位和业务价值前阵子有同行在群里聊到一个课题,名字叫“考虑时序相关性MC的场景生成与削减研究”。乍一看像纯粹的数学题,但做过电力系统、综合能源或者碳交易相关研究的人应该马上能反应过来&am…

2026/10/11 20:14:02 阅读更多 →
地下2米土壤墒情监测:管式监测仪如何改变灌溉决策

地下2米土壤墒情监测:管式监测仪如何改变灌溉决策

这大概是不少果园主、农场主都遇到过的怪事:叶片中午蔫下去,你赶紧浇水,浇了一小时,第二天反而更蔫。挖开土一看,表层10厘米明明是湿的,可往下翻到30厘米,手指甲都掐不进去的干土块,…

2026/10/11 20:13:02 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/11 14:36:54 阅读更多 →