结合 AI 生成 mermaid、plantuml 等图表

结合 AI 生成 mermaid、plantuml 等图表

AI 画图

AI 画图并不是真的让 AI 画一个图片,而是让 AI 根据你的需求,生成对应的需求文本,再根据 “文本画图” 来生成图片。

Mermaid

mermaid 支持流程图、时序图、架构图等等多种图片绘制。当然最终生成的效果和样式会根据不同的“文本代码”渲染编辑器而不同。

流程图示例

举一个例子,先把如下需求告诉 AI (比如我这里使用 ChatGPT):

请用Mermaid语法帮我画一个用户登录流程图,包含以下步骤: 1.用户输入账号密码 2.前端校验格式 3.发送请求到后端 4.后端验证用户信息 5.如果验证成功,生成token返回 6.如果失败,返回错误信息 7.前端根据结果跳转页面或显示错误 

然后 AI 会生成代码(文本代码):

graph TD A[用户输入账号密码] --> B[前端校验格式] B -->|格式正确| C[发送请求到后端] B -->|格式错误| H[前端提示格式错误] C --> D[后端验证用户信息] D -->|验证成功| E[生成 Token 并返回] D -->|验证失败| F[返回错误信息] E --> G[前端跳转页面] F --> I[前端显示错误信息] 

然后把 mermaid 代码放到渲染工具中。

markdown 文本中使用:将 markdown 代码格式标注为 mermaid 语言,即可看到对应图片:

image-20250603065508488

飞书中 mermaid 使用步骤:先输入 / ,唤出快捷指令,然后输入搜索并选择文本绘图,将代码写到左侧,右侧即可生成所需图片,之后根据需要导出即可。

image-20250603070116949
image-20250603070209767

语雀中用法和飞书基本相同:

image-20250603070620628

如果想要修改 AI 生成的图片,那么只需要对文本代码进行修改,图片也会跟着改变。

时序图示例

AI 提示词:

请用Mermaid画一个订单支付的时序图,展示用户、前端、后端、支付网关之间的交互。 

然后把生成的代码渲染一下,即可获得图片:

用户前端后端支付网关点击支付按钮请求创建支付订单创建支付请求(生成支付二维码/跳转链接等)返回支付链接/二维码等返回支付信息展示支付页面(二维码/跳转)扫码或完成支付操作通知支付结果(回调)确认接收主动通知支付结果(可选)页面轮询或等待通知查询支付状态返回支付状态显示支付成功或失败用户前端后端支付网关

PlantUML

PlantUML 最擅长绘制 uml 图,绘制的图片更加专业规范(当然不同的文本代码编辑器,生成效果也是不同的,可以从上网众多生成图片中找到自己满意的)。此外,时序图、结构图等等,plantuml 都是支持的。

依旧是举一个例子,ai 提示词如下:

请用PlantUML语法帮我画一个订单系统的类图,包含: -Order类:订单D、用户ID、总金额、状态、创建时间 -Orderltem类:商品ID、数量、单价 -User类:用户ID、用户名、邮箱 -Product类:商品ID、名称、价格、库存 展示它们之间的关联关系 

然后生成代码:

@startuml class Order { - orderId: String - userId: String - totalAmount: Float - status: String - createdAt: DateTime } class OrderItem { - productId: String - quantity: int - unitPrice: Float } class User { - userId: String - username: String - email: String } class Product { - productId: String - name: String - price: Float - stock: int } ' 关联关系 User "1" -- "0..*" Order : places Order "1" -- "1..*" OrderItem : contains OrderItem "*" -- "1" Product : refers to @enduml 
image-20250603072342236

draw.io

drawio 和之前的两种类似,都可以根据文本代码绘图,只是文本代码所需的格式不同而已。

这里我想要根据我之前写的文章 https://blog.ZEEKLOG.net/XiugongHao/article/details/136355713 ,来生成对应的图片。然后我给ai提示词为:

根据下列内容,生成一个 draw.io 格式的 《节流防抖学习流程图》代码: // 这里直接把原文的 md 格式文本粘贴上去。。。 

然后ai 给我生成了一个 xml 格式的代码:

<mxfilehost="app.diagrams.net"><diagramname="节流防抖学习流程图"id="NQJhnU1h2lAv_GsA7Ybg"><mxGraphModeldx="1562"dy="752"grid="1"gridSize="10"guides="1"tooltips="1"connect="1"arrows="1"fold="1"page="1"pageScale="1"pageWidth="827"pageHeight="1169"math="0"shadow="0"><root><mxCellid="0"/><mxCellid="1"parent="0"/><!-- 开始 --><mxCellid="start"value="节流防抖学习流程图"style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=1;"vertex="1"parent="1"><mxGeometryx="300"y="20"width="300"height="50"as="geometry"/></mxCell><!-- 防抖 --><mxCellid="debounce"value="防抖 debounce"style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=14;"vertex="1"parent="1"><mxGeometryx="100"y="100"width="200"height="60"as="geometry"/></mxCell><!-- 防抖适用场景 --><mxCellid="debounce_scenario"value="适用场景:\n- resize/input事件\n- 操作DOM/发请求\n- 最后一次触发才执行"style="shape=note;whiteSpace=wrap;html=1;"vertex="1"parent="1"><mxGeometryx="100"y="180"width="200"height="100"as="geometry"/></mxCell><!-- 防抖实现方式 --><mxCellid="debounce_method"value="实现方式:\n1. 清除旧定时器\n2. 设置新定时器\n\n使用库: lodash.debounce(func, wait, options)"style="shape=note;whiteSpace=wrap;html=1;"vertex="1"parent="1"><mxGeometryx="100"y="300"width="200"height="120"as="geometry"/></mxCell><!-- 节流 --><mxCellid="throttle"value="节流 throttle"style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=14;"vertex="1"parent="1"><mxGeometryx="500"y="100"width="200"height="60"as="geometry"/></mxCell><!-- 节流适用场景 --><mxCellid="throttle_scenario"value="适用场景:\n- scroll/timeupdate等高频事件\n- 每隔一段时间执行一次"style="shape=note;whiteSpace=wrap;html=1;"vertex="1"parent="1"><mxGeometryx="500"y="180"width="200"height="100"as="geometry"/></mxCell><!-- 节流实现方式 --><mxCellid="throttle_method"value="实现方式:\n1. 是否存在定时器\n2. 无则设置定时器\n3. 执行后重置标记\n\n使用库: lodash.throttle(func, wait, options)"style="shape=note;whiteSpace=wrap;html=1;"vertex="1"parent="1"><mxGeometryx="500"y="300"width="200"height="120"as="geometry"/></mxCell><!-- 箭头连接 --><mxCellid="edge1"style="endArrow=block;html=1;"edge="1"parent="1"source="start"target="debounce"><mxGeometryrelative="1"as="geometry"/></mxCell><mxCellid="edge2"style="endArrow=block;html=1;"edge="1"parent="1"source="start"target="throttle"><mxGeometryrelative="1"as="geometry"/></mxCell><mxCellid="edge3"style="endArrow=open;html=1;"edge="1"parent="1"source="debounce"target="debounce_scenario"><mxGeometryrelative="1"as="geometry"/></mxCell><mxCellid="edge4"style="endArrow=open;html=1;"edge="1"parent="1"source="debounce_scenario"target="debounce_method"><mxGeometryrelative="1"as="geometry"/></mxCell><mxCellid="edge5"style="endArrow=open;html=1;"edge="1"parent="1"source="throttle"target="throttle_scenario"><mxGeometryrelative="1"as="geometry"/></mxCell><mxCellid="edge6"style="endArrow=open;html=1;"edge="1"parent="1"source="throttle_scenario"target="throttle_method"><mxGeometryrelative="1"as="geometry"/></mxCell></root></mxGraphModel></diagram></mxfile>

然后将代码直接粘贴到 drawio 中,没错,就是直接粘贴,然后他会自动生成所需的图:

image-20250603074416456

其他

当然,还有很多可以绘图的工具,比如 xmind 绘制思维导图 等等,还有 svg,canvas 等格式的图片也可以自由生成 logo、图片。

Read more

AnythingtoRealCharacters2511企业应用案例:ACG内容平台真人化素材自动化生产

AnythingtoRealCharacters2511企业应用案例:ACG内容平台真人化素材自动化生产 1. 引言:当动漫角色走进现实 想象一下,你是一家ACG(动画、漫画、游戏)内容平台的运营负责人。每天,你的团队需要为海量的动漫IP制作宣传海报、社交媒体配图、视频封面。传统的做法是找画师重新绘制真人风格的同人图,或者用真人模特进行拍摄,但前者风格不稳定,后者成本高昂且难以还原角色神韵。 现在,情况正在改变。基于Qwen-Image-Edit模型开发的AnythingtoRealCharacters2511镜像,正在为内容创作领域带来一场效率革命。这个工具的核心能力很简单,却极具颠覆性:将任何动漫、游戏角色图片,一键转化为高质量的真人风格图像。 对于内容平台而言,这意味着什么?意味着你可以将已有的动漫素材库,快速、批量地转化为符合真人审美、适合更广泛受众传播的视觉内容。无论是为《原神》的角色制作一组“如果他们在现实世界”的写真,还是将经典日漫人物转化为适合品牌联动的代言人形象,这个过程从过去需要数天甚至数周的创意与执行,缩短到了几分钟。 本文将深入探讨Anythingt

OpenCode 安装 oh-my-opencode 插件教程(AI 一键辅助安装版)

OpenCode 安装 oh-my-opencode 插件教程(AI 一键辅助安装版)

最近发现一个很有意思的 OpenCode 插件仓库:oh-my-opencode 项目地址:code-yeongyu/oh-my-opencode: The Best Agent Harness. Meet Sisyphus: The Batteries-Included Agent that codes like you. 它的目标是让 OpenCode 具备更“开箱即用”的体验:通过安装插件增强能力,比如更顺手的指令、工作流、提示词封装等。 这篇文章会用仓库作者推荐的方式来安装:把提示词交给 AI,让 AI 自动完成安装。同时我也会补充关键步骤,避免“只会复制粘贴但不知道发生了什么”。 1. 前置条件 开始前确认你已经具备: * 已安装 OpenCode(没有安装的可参考我的另一篇【ClaudeCode平替(免费)】OpenCode 完整安装与 VSCode 使用指南_

一文读懂OpenRouter:全球AI模型的“超级接口”,很多免费模型

一文读懂OpenRouter:全球AI模型的“超级接口”,很多免费模型

在人工智能技术百花齐放的今天,开发者面临着一个“幸福的烦恼”:市面上有GPT-4、Claude、Gemini、Kimi、GLM等众多顶尖大模型,但每个平台都需要单独注册、管理API密钥、对接不同接口文档,极大地增加了开发成本与技术门槛。 OpenRouter的出现,正是为了解决这一痛点。它不仅是一个AI模型聚合平台,更被业界视为全球AI模型竞争的“风向标”。 1. 什么是OpenRouter? OpenRouter是一个开源的AI模型聚合平台,它像一个“超级接口”或“路由器”,将全球超过300个主流AI模型(来自400多个提供商)整合在一起,为开发者提供统一的API接口。 其核心价值在于: * 统一API接口:开发者只需使用一套API密钥,即可调用包括OpenAI、Anthropic、Google、以及中国头部厂商(如MiniMax、月之暗面、智谱AI)在内的所有模型,无需为每个模型单独适配接口。 * 智能路由与成本优化:平台支持智能路由,可自动匹配性价比最高的模型,或根据开发者需求手动切换。其采用纯按量付费模式,无月费或最低消费,价格通常与官方持平甚至更低。 * 零

用约束驱动AI写好代码:OpenSpec 完全使用指南

OpenSpec 完全使用指南 用规格驱动 AI 编码 —— 让 AI 真正理解你要什么 如果你正在用 AI 写代码,却总觉得"沟通成本"比"写代码"还高——OpenSpec 可能是你一直缺的那块拼图。 目录 1. [为什么需要 OpenSpec](#一为什么需要 openspec) 2. 安装与初始化 3. 核心理念 4. 命令详解 5. 实战场景 * 场景一:需求清晰,直接开干 * 场景二:需求模糊,需要边探索边明确 * 场景三:并行开发多个功能 * [场景四:已完成未归档的 change 发现 Bug](#场景四已标记完成但未归档的