结合 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.csdn.net/XiugongHao/article/details/136355713 ,来生成对应的图片。然后我给ai提示词为:

根据下列内容,生成一个 draw.io 格式的 《节流防抖学习流程图》代码:

// 这里直接把原文的 md 格式文本粘贴上去。。。

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

<mxfile host="app.diagrams.net">
  <diagram name="节流防抖学习流程图" id="NQJhnU1h2lAv_GsA7Ybg">
    <mxGraphModel dx="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>
        <mxCell id="0"/>
        <mxCell id="1" parent="0"/>

        <!-- 开始 -->
        <mxCell id="start" value="节流防抖学习流程图" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=16;fontStyle=1;" vertex="1" parent="1">
          <mxGeometry x="300" y="20" width="300" height="50" as="geometry"/>
        </mxCell>

        <!-- 防抖 -->
        <mxCell id="debounce" value="防抖 debounce" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=14;" vertex="1" parent="1">
          <mxGeometry x="100" y="100" width="200" height="60" as="geometry"/>
        </mxCell>

        <!-- 防抖适用场景 -->
        <mxCell id="debounce_scenario" value="适用场景:\n- resize/input事件\n- 操作DOM/发请求\n- 最后一次触发才执行" style="shape=note;whiteSpace=wrap;html=1;" vertex="1" parent="1">
          <mxGeometry x="100" y="180" width="200" height="100" as="geometry"/>
        </mxCell>

        <!-- 防抖实现方式 -->
        <mxCell id="debounce_method" value="实现方式:\n1. 清除旧定时器\n2. 设置新定时器\n\n使用库: lodash.debounce(func, wait, options)" style="shape=note;whiteSpace=wrap;html=1;" vertex="1" parent="1">
          <mxGeometry x="100" y="300" width="200" height="120" as="geometry"/>
        </mxCell>

        <!-- 节流 -->
        <mxCell id="throttle" value="节流 throttle" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=14;" vertex="1" parent="1">
          <mxGeometry x="500" y="100" width="200" height="60" as="geometry"/>
        </mxCell>

        <!-- 节流适用场景 -->
        <mxCell id="throttle_scenario" value="适用场景:\n- scroll/timeupdate等高频事件\n- 每隔一段时间执行一次" style="shape=note;whiteSpace=wrap;html=1;" vertex="1" parent="1">
          <mxGeometry x="500" y="180" width="200" height="100" as="geometry"/>
        </mxCell>

        <!-- 节流实现方式 -->
        <mxCell id="throttle_method" value="实现方式:\n1. 是否存在定时器\n2. 无则设置定时器\n3. 执行后重置标记\n\n使用库: lodash.throttle(func, wait, options)" style="shape=note;whiteSpace=wrap;html=1;" vertex="1" parent="1">
          <mxGeometry x="500" y="300" width="200" height="120" as="geometry"/>
        </mxCell>

        <!-- 箭头连接 -->
        <mxCell id="edge1" style="endArrow=block;html=1;" edge="1" parent="1" source="start" target="debounce">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge2" style="endArrow=block;html=1;" edge="1" parent="1" source="start" target="throttle">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge3" style="endArrow=open;html=1;" edge="1" parent="1" source="debounce" target="debounce_scenario">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge4" style="endArrow=open;html=1;" edge="1" parent="1" source="debounce_scenario" target="debounce_method">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge5" style="endArrow=open;html=1;" edge="1" parent="1" source="throttle" target="throttle_scenario">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>
        <mxCell id="edge6" style="endArrow=open;html=1;" edge="1" parent="1" source="throttle_scenario" target="throttle_method">
          <mxGeometry relative="1" as="geometry"/>
        </mxCell>

      </root>
    </mxGraphModel>
  </diagram>
</mxfile>

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

image-20250603074416456

其他

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

<think>好的,我需要帮用户找到可以免费在线生成ER图的AI工具或网站。首先,我得回想一下常用的ER图工具,然后看看哪些有AI功能或者是否免费。记得用户提到要AI生成的,可能需要工具能根据输入自动生成ER图,而不仅仅是手动绘制。 首先,我之前知道的ER图工具有Draw.io、Lucidchart、dbdiagram.io这些。Draw.io是完全免费的,但不确定有没有AI功能。Lucidchart有免费版,但高级功能需要付费,可能AI部分属于付费内容。dbdiagram.io是专门做数据库ER图的,可能支持通过DSL生成,但AI方面可能没有。可能需要看看有没有整合AI的工具。 然后,用户需要的是AI在线工具,所以可能需要一些新兴的AI工具。比如ChatGPT现在可以生成图表代码,比如MermaidPlantUML,用户可以将生成的代码粘贴到支持这些语法的工具中渲染成图。但严格来说,这需要用户自己转换,不过可能属于AI辅助生成。 另外,可能有些工具如ErdPlus,或者AI工具如Aryson ER Diagram Generator,不过不确定是否免费。需要检查这些工具的可用性。另外,可能有一些开源项目或者在线平台提供基于AI的ER图生成,比如通过自然语言描述生成ER图的结构。 还要注意引用用户提供的参考内容中的信息。例如引用[1]提到收集开源免费资源,可能需要推荐符合这个条件的工具。引用[2]中的代码生成工具,虽然主要是CSLA生成器,但可能相关工具也有类似功能。引用[3]是关于网络抓包和云原生技术,可能关联不大。 可能需要推荐以下工具: 1. Draw.io(现名diagrams.net):免费,支持在线和离线使用,虽然没有内置AI,但可以结合其他AI工具生成代码后导入。 2. dbdiagram.io:使用简单的DSL语言生成ER图,用户可以用AI生成DSL代码,再在此工具中渲染。 3. ChatGPT:用户可以用自然语言描述需求,让ChatGPT生成Mermaid代码,再在支持Mermaid的平台如GitLab、Markdown中显示。 4. PlantUML:同样需要代码生成,可能结合AI生成代码。 此外,可能需要查看是否有新的AI工具出现,比如Excalidraw的AI功能,或者类似工具。比如tldraw的AI功能,但可能不专门用于ER图。 总结可能的推荐:推荐使用dbdiagram.io或Draw.io结合AI生成的DSL或代码,或者利用ChatGPT生成代码后导入这些工具。同时,可以提到一些AI辅助工具如Aryson,但需确认是否免费。此外,可能需要提醒用户,目前完全基于AI自动生成ER图的免费工具可能有限,但可以通过间接方法实现。</think>### 免费生成ER图的AI在线工具及方法 以下是可免费生成ER图的AI辅助工具和解决方案,结合开源工具和自然语言处理技术实现: #### 1. **使用ChatGPT生成ER图代码** - **步骤**: 1. 向ChatGPT描述数据库结构(例如:“生成一个学生选课系统的ER图Mermaid代码”)。 2. ChatGPT会生成类似以下代码: ```mermaid erDiagram STUDENT ||--o{ COURSE : selects STUDENT { string student_id PK string name } COURSE { string course_id PK string title } ``` 3. 将代码粘贴到支持Mermaid的编辑器(如[Markdown编辑器](https://mermaid-js.github.io/mermaid-live-editor/))中渲染成图[^1]。 #### 2. **dbdiagram.io(AI辅助设计)** - **功能**:通过DSL语言快速生成ER图,支持导出SQL代码。 - **AI结合**:可先用ChatGPT生成DSL代码,再在dbdiagram.io中渲染。 - **示例**: ```dbdiagram Table student { student_id VARCHAR [pk] name VARCHAR } Table course { course_id VARCHAR [pk] title VARCHAR } Ref: student.student_id < selects.course_id ``` - **链接**:[dbdiagram.io](https://dbdiagram.io) #### 3. **Draw.io(Diagrams.net)** - **功能**:完全免费的在线绘图工具,提供ER图模板。 - **AI扩展**:结合GitHub Copilot等工具生成结构描述,再手动绘制。 - **链接**:[draw.io](https://app.diagrams.net) #### 4. **PlantUML + AI生成** - **步骤**: 1. 用AI生成PlantUML代码。 2. 在[PlantUML在线服务器](https://plantuml.com/zh/)中渲染。 - **示例代码**: ```plantuml @startuml entity Student { * student_id -- name } entity Course { * course_id -- title } Student }o--o{ Course @enduml ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秀秀_heo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值