AI自动生成类库节点与流程图:从Mermaid到ComfyUI的落地实践 这次我们聊一个能显著减少重复劳动的落地方向用 AI 自动生成类库节点、流程图把“手写类库结构文档”和“手动画图”这两件事交给模型去做。很多开发者在维护代码类库时最烦的不是写代码而是画类图、画依赖关系、给低代码平台维护节点配置。AI 的价值不是替你想业务逻辑而是把已经确定的信息源码结构、流程描述、接口关系快速转换成规范的可视化表达。本文会围绕三条路线展开第一直接用大模型生成 Mermaid / PlantUML 文本并渲染成图第二从源码目录自动提取类库结构让模型生成类图与依赖图第三把节点配置自动生成成 JSON 后导入 ComfyUI、Coze 或自研流程图设计器。后面还会给出环境准备、接口批量调用、常见问题排查和最佳实践尽量做到看完就能动手。如果你目前的工作涉及架构文档维护、代码评审材料整理、低代码平台节点搭建或者经常被“补一张流程图”的需求打断这篇文章可以直接收藏。1. 核心能力速览在展开操作之前先看这个方向的核心能力。因为当前并没有绑定某一个具体的开源仓库下面这张表描述的是“AI 自动生成类库节点、流程图”这一类实现方案的通用能力矩阵具体工具选择会影响部分参数。能力项说明自动化对象代码类库的包/类/方法节点关系、业务流程图、工作流节点配置AI 介入方式大模型生成 Mermaid / PlantUML / JSON / YAML 结构化文本输出形态SVG / PNG 图片、Markdown 内嵌图、类图、流程图、节点配置文件主要工具LLM API、mermaid-cli、PlantUML、Graphviz、ComfyUI、Coze、自研流程图设计器自动化程度单张生成、源码批量生成、接口服务化调用起步成本需要一个模型 API Key或者本地部署大模型需要基础 Python / Node 环境适合场景架构文档、类库维护、技术方案评审、低代码平台节点搭建、ComfyUI 工作流整理主要限制模型输出需要语法校验和人工复核复杂图容易结构错误从材料看这个方向的想象力并不局限于某一款工具。它的核心思路是一致的把你脑子里的流程描述或源码里的类关系先结构化成文本再由渲染器或平台解析成图。2. 适用场景与使用边界先回答一个问题AI 生成流程图和类库节点到底适合谁第一类是后端开发者。当你维护一个业务系统类与类之间的继承关系、模块之间的依赖关系经常变化手绘类图很难同步。用源码解析加 AI 生成每次发版前重新生成一张依赖图能快速发现不合理的循环依赖。第二类是前端或全栈开发者。在做技术方案设计时需要画业务流程图、状态图、时序图。与其打开绘图软件拖拽半小时不如用一段话描述流程让模型直接输出 flowchart 代码或 PlantUML 代码。第三类是低代码平台和 AI 工作流维护者。比如 ComfyUI 用户经常遇到工作流里缺节点、连错线的问题Coze 里搭 Bot 时也要手动画流程。AI 可以根据功能描述生成节点连接配置再导入平台。第四类是技术文档工程师。他们需要把 PRD、接口文档、系统设计转成可视化材料AI 批量生成 人工校正可以大大加快文档产出速度。使用边界必须说明AI 生成的结果本质是“草稿”不是终稿。涉及重大业务决策、系统审计、合规审批的流程图必须有人工评审。代码类库如果涉及公司核心源码不要随意上传到没有数据安全保障的外部 API优先选择私有化部署模型或经过授权的企业接口。另外不建议为了追求“无限制”或“无审核”效果使用来源不明的绕过限制工具这既不符合安全合规要求也可能引入恶意代码。生成人脸、声音、品牌素材和受版权保护的资料时必须确认已获得合法授权。3. 三条主流实现路线这里把“AI 自动生成类库节点、流程图”拆成三条可执行的路线你可以根据自己的场景选。3.1 路线一AI 直出 Mermaid / PlantUML 文本这是最轻量的一条路线。你只需要准备一个支持文本生成的大模型 API比如通义千问、DeepSeek、Kimi、智谱等或者本地部署 Qwen、ChatGLM 系列模型然后把流程描述发给模型要求它输出纯 Mermaid 或 PlantUML 代码。优点是门槛低、上手快输出的是纯文本可以纳入 Git 版本管理方便 review。缺点是模型生成的代码不一定一次通过语法校验尤其是复杂分支和子图嵌套时需要二次修正。适合场景包括快速画业务流程图、审批流程图、运维故障处理流程。给已有代码生成类图。把会议纪要转成状态图或时序图。3.2 路线二源码解析 AI 增强生成类库节点这条路线更适合“类库节点”这个关键词。它不只是让 AI 凭空生成而是先用脚本解析源码目录拿到真实的包名、类名、方法名、依赖关系再把这些结构化信息交给模型让模型生成类图或依赖图。这样做的好处是结果更接近实际代码不会出现类名虚构、方法名对不上的问题。AI 负责把结构信息组织成规范的图表文本你的脚本负责保证信息真实性。适合场景包括维护大型类库时自动刷新类关系图。代码评审前生成模块依赖图。新同学入职时快速生成项目结构地图。3.3 路线三节点配置自动生成并导入可视化平台在 ComfyUI、Coze、钉钉流程图设计器这类“节点化”平台里一个节点就是一个处理单元一条连线就是数据流或执行顺序。手动画节点容易漏连、连错参数也容易填错。AI 可以帮你生成节点连接关系、参数建议和配置文件。ComfyUI 的工作流本质是 JSON graph里面包含 nodes、links 和每个节点的参数。Coze 这类平台也有自己的编排方式。AI 可以根据功能描述生成配置片段你再导入平台检查。这条路线的难点在于不同平台的 schema 不一样AI 不可能完全理解每个自定义节点的输入输出格式。所以更稳的做法是让 AI 生成“节点关系描述 JSON”再用你的转换脚本把它翻译成平台可识别的配置而不是直接让 AI 输出平台原生工作流。4. 环境准备与前置条件根据你选择的具体路线准备对应的环境。下面是通用清单。4.1 在线大模型 API 方式如果你使用在线的模型 API环境准备最简单Python 3.10 及以上版本。Node.js 18 及以上版本用于运行 mermaid-cli。一个模型 API Key接口地址以你选择的服务商为准。可选安装 Graphviz用于 PlantUML 渲染。示例依赖安装命令pip install requests npm install -g mermaid-js/mermaid-cliGraphviz 按操作系统安装Ubuntu 可以使用sudo apt-get install graphvizmacOS 可以使用brew install graphviz4.2 本地部署模型方式如果源码敏感需要本地部署模型。你可以使用 Ollama 等工具加载开源模型。显存要求取决于模型参数量和量化等级不同模型差异很大建议以模型发布页的说明为准不要盲目套用某个固定显存数字。一个相对稳妥的判断是本地部署方式适合对数据隐私要求高、且有 GPU 资源的团队。如果只是个人学习优先使用在线 API成本和门槛更低。启动本地模型的通用示例ollama run qwen2.5:7b不同模型的上下文长度和输出格式稳定性不同生成 Mermaid 时建议选择指令跟随能力更强的模型。5. 实操AI 生成 Mermaid 流程图并渲染成图片下面给出一个可以照做的通用链路接口地址和模型名以你实际使用的服务商为准。5.1 定义提示词模板提示词很关键。直接说“帮我画个流程图”效果不会太好更好的做法是限定输出格式、节点命名规范和分支表达。这里给出一份可参考的模板你是一名资深系统分析师。请根据下面的业务流程描述生成纯 Mermaid flowchart 代码。 要求 1. 只输出 Mermaid 代码不要解释。 2. 使用 flowchart TB 方向。 3. 开始节点命名为开始结束节点命名为结束。 4. 判断节点使用菱形文字以是否开头。 5. 如果一个环节有多个分支子流程请拆分成独立子图并使用 subgraph 表达。 6. 节点文字保持简洁控制在 10 个字以内。 业务流程描述 {用户在这里粘贴流程描述}这个模板的好处是显式约束了 AI 的行为减少“解释一大堆却不给代码”的情况。你可以在自己的项目里沉淀一套类似的模板库。5.2 调用大模型 API下面是一个 Python 调用示例使用 OpenAI 兼容接口格式。不同服务商可能有些差异请以实际接口文档为准。import os import requests API_URL https://your-llm-endpoint/v1/chat/completions API_KEY os.environ.get(LLM_API_KEY) prompt 你是一名资深系统分析师。请根据下面的业务流程描述生成纯 Mermaid flowchart 代码。 要求 1. 只输出 Mermaid 代码不要解释。 2. 使用 flowchart TB 方向。 3. 开始节点命名为开始结束节点命名为结束。 4. 判断节点使用菱形文字以是否开头。 5. 如果一个环节有多个分支子流程请拆分成独立子图并使用 subgraph 表达。 6. 节点文字保持简洁控制在 10 个字以内。 业务流程描述 用户提交工单系统校验参数参数有效则进入审批环节审批通过后执行任务并通知结果审批不通过直接退回。 payload { model: your-model-name, messages: [ { role: user, content: prompt, } ], temperature: 0.2, } headers { Authorization: fBearer {API_KEY}, Content-Type: application/json, } response requests.post(API_URL, jsonpayload, headersheaders, timeout120) data response.json() mermaid_code data[choices][0][message][content] print(mermaid_code)注意your-llm-endpoint、your-model-name都要替换成真实服务商地址和模型名LLM_API_KEY建议通过环境变量传入不要写死在代码里。5.3 渲染图片将模型输出的内容保存成文件然后使用 mermaid-cli 渲染。cat flow.mmd EOF flowchart TB A[开始] -- B[用户提交工单] B -- C{参数是否有效} C --|否| D[退回用户] C --|是| E[进入审批环节] E -- F{审批是否通过} F --|否| D F --|是| G[执行任务并通知结果] D -- H[结束] G -- H[结束] EOF上面这一段是手动放置的示例供对比实际使用时直接把模型输出写到文件里即可。然后用 mermaid-cli 渲染npx mermaid-js/mermaid-cli -i flow.mmd -o flow.svg要输出 PNG可以加-e pngnpx mermaid-js/mermaid-cli -i flow.mmd -o flow.png -e png5.4 判断成功标准渲染成功的标志是生成了对应的 SVG 或 PNG 文件。渲渲染之前建议先检查 Mermaid 语法常见错误包括节点 ID 重复。引号不配对。中文节点文字触发了编码问题。分支标签缺少|...|结构。如果语法错误频繁出现可以在提示词中增加一句“生成的 Mermaid 代码必须能被 mermaid-cli 直接解析”。也可以先让模型输出 JSON 结构再自己拼装 Mermaid这样稳定性更高。6. 实操从源码自动生成类库节点图这一节面向“类库”本身核心思路是先用脚本抓取源码结构然后让 AI 生成类图。6.1 收集源码结构用 Python 写一个简单的目录遍历脚本把 Python 项目的模块名收集成 JSON。这里不引入额外依赖用标准库就可以。import os import json PROJECT_ROOT ./my_project modules [] for root, dirs, files in os.walk(PROJECT_ROOT): for file in files: if file.endswith(.py) and not file.startswith(__): full_path os.path.join(root, file) module_name os.path.relpath(full_path, PROJECT_ROOT) modules.append(module_name) structure {project: PROJECT_ROOT, modules: modules} with open(structure.json, w, encodingutf-8) as f: json.dump(structure, f, ensure_asciiFalse, indent2)如果你需要更细粒度的类和方法信息可以使用语言级别的解析工具。比如 Python 项目可以使用 pydeps 或 parsoJava 项目可以使用 javaparser。但要注意不同语言的解析方式差异很大这里不绑定具体方案。6.2 生成类图 / 依赖图拿到structure.json后把内容作为上下文发送给大模型让它生成 Mermaid classDiagram 或 PlantUML 类图。下面是使用 Python 调用模型生成类图的示例import requests import json with open(structure.json, r, encodingutf-8) as f: structure json.load(f) prompt f 根据下面的源码结构信息生成一个 Mermaid classDiagram 代码。 只输出代码不要解释。 类名使用模块的文件名转换而来包名使用父目录名。 如果没有明确的类继承关系不要虚构只展示模块之间的包含关系。 源码结构 {json.dumps(structure, ensure_asciiFalse, indent2)} # 调用 API 的代码与 5.2 节类似这里省略重复部分如果使用 PlantUML也可以让模型输出startuml class UserService { createUser() deleteUser() } class UserRepository { findById() } UserService -- UserRepository enduml注意PlantUML 渲染需要 Graphviz。6.3 常见失败原因源码生成类图最容易出现的问题是“AI 虚构类名”。比如模型发现你没有提供某个类却根据经验补了一个不存在的类。解决方法是明确告诉它只允许使用输入结构中的模块名和类名不得新增任何未出现过的名字。另一个问题是包结构太深生成的子图嵌套混乱。建议先控制模块数量只对核心模块生成图不要一次性把整个仓库塞给模型。如果项目很大先按模块拆分再合并展示。7. 实操把 AI 生成的节点配置导入 ComfyUI / 自研平台如果你不是做代码类库而是维护 ComfyUI 工作流或低代码平台的流程配置这一节更贴近你的场景。7.1 ComfyUI 工作流节点生成ComfyUI 工作流本质是一个 JSON graph其中包含节点、连线、参数和位置信息。AI 可以根据功能描述生成一个“节点关系描述 JSON”例如{ nodes: [ { id: 1, type: LoadImage, title: 加载原图 }, { id: 2, type: VAEEncode, title: 图像编码 }, { id: 3, type: KSampler, title: 采样 } ], links: [ {from: 1, to: 2, from_slot: IMAGE, to_slot: pixels}, {from: 2, to: 3, from_slot: LATENT, to_slot: latent_image} ] }这一步不需要依赖某个平台的具体格式先用通用 JSON 表达节点和连线关系人工确认后再转换为目标平台的原生格式。7.2 缺失节点处理在 ComfyUI 里加载 AI 生成的或者别人分享的工作流时经常会遇到“缺失节点”的提示比如“请安装缺失的包以使用此工作流。要安装缺失的节点请先在你的 python 环境中运行 pip install ...”。处理思路是先看工作流导入页面提示的是哪些自定义节点缺失。如果安装了 ComfyUI Manager可以直接点击“Install Missing Custom Nodes”批量补装。如果提示需要在 python 环境中安装依赖则根据提示执行安装命令。通用安装命令模板cd ComfyUI /path/to/python -m pip install -r requirements.txt或者依据提示安装具体依赖/path/to/python -m pip install some-missing-package这里必须强调安全边界不要盲目安装来源不明的自定义节点更不要看到“缺失”就直接执行不明脚本。先检查节点仓库的代码、作者和 stars再决定是否安装。最好在隔离的虚拟环境中测试。7.3 自研流程图设计器如果你是自研流程图设计器比如 Vue 或 React 技术栈也可以把 AI 生成的 JSON 和设计器的 DSL 做一层适配。很多流程图设计器的核心数据结构也是“节点数组 边数组”你可以先让模型输出通用 JSON再在前端中映射为拖拽组件。这样即使设计器版本升级AI 生成逻辑也不需要大幅调整。8. 接口 API 与批量自动化如果只是偶尔画一张图手动跑脚本就够了。但如果你要维护整个类库或一批业务文档的流程图就需要接口化和批量自动化。8.1 批量生成多张流程图假设你有一个任务清单每个任务包含一条流程描述文本希望批量生成对应的 Mermaid 文件。可以这样写import os import time import requests tasks [ { name: user_login, description: 用户输入账号密码系统校验验证码通过后登录成功否则提示错误, }, { name: order_refund, description: 用户提交退款申请商家审核平台复核通过后原路退回, }, ] output_dir generated os.makedirs(output_dir, exist_okTrue) for task in tasks: prompt f根据以下流程描述生成 Mermaid flowchart 代码{task[description]} # 请求模型 # 保存输出到 {output_dir}/{task[name]}.mmd time.sleep(1) # 简单限速避免触发接口限流批量渲染 Mermaid 文件for f in generated/*.mmd; do npx mermaid-js/mermaid-cli -i $f -o ${f%.mmd}.svg done8.2 失败重试与并发控制大模型 API 调用经常遇到限流、超时、网络波动。批量任务必须加入重试机制。def call_model_with_retry(prompt, max_retries3): for attempt in range(max_retries): try: response requests.post(API_URL, jsonpayload, headersheaders, timeout120) if response.status_code 200: return response.json() except requests.exceptions.Timeout: pass except requests.exceptions.ConnectionError: pass time.sleep(2 * (attempt 1)) raise RuntimeError(模型调用失败已重试 3 次)如果任务规模很大建议用队列保存任务状态比如 SQLite 或 Redis标记每个任务的成功/失败/重试状态。先小批量测试确认稳定后再全量跑。8.3 封装成本地服务如果你想把这套能力开放给团队使用可以用 FastAPI 封装一个简单接口接收流程描述返回 Mermaid 代码或图片地址。from fastapi import FastAPI from pydantic import BaseModel app FastAPI() class FlowRequest(BaseModel): description: str direction: str TB app.post(/generate-flow) def generate_flow(request: FlowRequest): # 调用模型生成 Mermaid 代码 mermaid_code ... # 实际代码 return {mermaid: mermaid_code} # 使用 uvicorn main:app --host 0.0.0.0 --port 8000 启动封装成服务后团队内部成员可以统一调用避免每个人各自配 API Key。9. 资源占用与性能观察资源占用取决于你选择在线 API 还是本地部署模型这里分别说明。如果使用在线 API本地资源占用很低主要关注的是 API 请求耗时和 token 消耗。一次简单的 Mermaid 生成大概消耗的 token 取决于模型输入输出长度描述越长、图中节点越多消耗越大。批量生成时还要注意接口并发限制建议控制请求频率。如果使用本地部署大模型显存占用和模型参数量、量化等级强相关。你可以在生成任务运行期间使用nvidia-smi观察显存占用或者使用ollama ps查看当前已加载模型的内存状态。更稳妥的做法是先跑一个最小测试确认显存够用后再跑批量任务。渲染环节也会消耗资源。mermaid-cli 依赖 Chromium 做无头渲染批量渲染时如果一次性开很多进程内存可能飙升。建议串行渲染或者控制并发数。Graphviz 渲染 PlantUML 时则比较轻量但在非常大的图上也会变慢。另外生成超长流程图时模型输出的 token 限制可能导致结构被截断。建议把大流程拆分成多个子图分别生成后合并而不是让模型一次输出几百个节点。10. 常见问题与排查方法下面整理了一张排查表覆盖大多数常见的“AI 生成节点和流程图”问题。问题现象可能原因排查方式解决方案模型输出了解释文字而不是 Mermaid 代码提示词约束不够检查模型完整输出在提示词中要求“只输出代码不要解释”必要时用 JSON 格式约束输出Mermaid 渲染报语法错误节点 ID 重复或引号不匹配查看 mermaid-cli 报错信息用支持语法提示的编辑器检查或让模型输出 JSON 再自行拼装生成的图中中文显示乱码渲染环境缺中文字体检查 SVG 字体渲染日志安装中文字体或改用英文节点名PlantUML 渲染失败没有安装 Graphviz运行 plantuml 时观察错误安装 Graphviz 后重试源码生成的类图出现不存在的类模型自行脑补对比输入结构信息和输出类名提示词中明确“只允许使用输入信息中的类名”ComfyUI 导入工作流提示缺失节点自定义节点未安装检查缺失节点名称使用 ComfyUI Manager 补装或按提示在 python 环境中安装依赖本地部署模型生成速度慢或爆显存模型参数规模超过硬件能力使用 nvidia-smi 观察显存占用换更小的模型或更高量化等级降低并发任务数API 调用返回 429 或超时超过接口限流阈值查看响应头和日志增加重试机制降低请求频率必要时升级接口配额批量任务中途卡住某个请求超时未处理查看任务日志加入超时参数和失败重试机制任务状态入队管理AI 生成的流程分支逻辑不对描述文本有歧义或模型理解偏差对照业务描述逐节点检查细化描述文本把分支条件写清楚人工复核后再使用在实际使用中最容易踩的坑其实是“不校验直接使用”。AI 生成流程图的效率提升很明显但生成结果一定要经过语法校验和业务逻辑复核尤其是判断节点和分支子流程的部分。11. 最佳实践与使用建议把这些实践沉淀到日常工作流里会比自己折腾脚本稳定得多。第一建立提示词模板库。不要每次重新写提示词把常见的场景拆成模板比如“业务流程图模板”“类图模板”“时序图模板”“ComfyUI 节点关系模板”。模板固定后模型输出的格式会更稳定。第二输入信息要真实、有限。你给模型的信息越接近最终结构输出就越靠谱。源码生成类图时先把模块结构抽取成有限 JSON不要直接把整个仓库的代码塞进上下文。这不仅省 token也能避免模型被无关代码干扰。第三输出一律走版本管理。Mermaid、PlantUML、节点 JSON 都是文本放到 Git 仓库里改动可以 diff评审可以评论。不要只保存渲染出来的 PNG因为图片无法有效比较变更。第四批量任务要设计状态记录。任务成功、失败、重试中这些状态写进数据库或日志文件。出现问题能从断点重跑而不是全部推倒重来。第五接口服务要限制访问范围。如果你把生成服务开放给团队使用不要直接暴露在公网建议只绑定内网地址或者增加认证信息。否则任何人都能调用你的模型接口消耗你的配额。第六数据隐私与版权必须重视。公司源码、用户数据、非公开接口文档属于敏感资产上传第三方模型前要确认合规要求。生成内容如果涉及具体人物肖像、声音、品牌素材必须确认合法授权。不要使用来源不明的“无限制”工具也不要绕过平台的正常审核机制。重要文档发布前安排人工复核避免 AI 幻觉造成业务事故。12. 总结与下一步这个方向最值得尝试的价值是把“写代码类库文档”和“画图”这两件彼此割裂的事统一成一条文本链路源码或流程描述 → AI 生成结构化文本 → 渲染成图。它不要求你的显卡有多强也不要求你掌握复杂的绘图技巧关键是能不能把提示词写好、把校验流程跑通。我建议你先从最轻量的路线开始用在线大模型 API 生成一张 Mermaid 流程图装上 mermaid-cli 渲染成图片跑通之后再决定要不要上源码解析、批量任务和接口服务化。最容易踩的坑是 Mermaid 语法错误和 ComfyUI 缺失节点遇到也不用慌按本文的排查表处理即可。后续可以继续扩展的方向包括把自动生成流程接入 CI/CD每次提交代码自动刷新模块依赖图把生成的节点 JSON 适配到更多低代码平台把提示词模板沉淀成团队内部文档让非开发成员也能自助生成业务流程图。建议先收藏备用动手跑通一条链路再逐步完善其他环节。