Flowchart2Mermaid 把 Mermaid 源码作为流程图的统一表示,同时提供内联文本编辑、拖放图形元素和自然语言命令三种修改方式。最稳妥的工作流是先保存一份可渲染基线:错字和短标签用内联编辑,新增节点与连接用拖放,涉及流程语义的局部变化用自然语言命令,复杂或异常结果再回到 Mermaid 源码修正。每次只做一个可验证变更,并检查代码与图形是否同步。
论文还允许直接编辑 Mermaid 代码。源码不是第四个可有可无的入口,而是三种操作共同同步的事实表示,也是故障恢复和版本控制的基础。
图片转换得到第一版 Mermaid 后,应先确认它能渲染,再保存 .mmd 文件。此时不要求完全正确,但至少要做到节点和主要路径可见。
基线有三个作用:
建议按阶段保存,例如 flow-v1-import.mmd、flow-v2-structure.mmd 和 flow-v3-reviewed.mmd,最终再整理为正式文件。
用户可以点击渲染图中的节点标签直接修改,变化会同步到 Mermaid。适合:
不要用内联编辑改变结构含义。例如把“审核订单”改为“退款完成”虽然语法不变,却会让原连接失去业务意义。此类修改要同时检查上下游边。
唯一且简短的名称也能降低自然语言命令引用节点时的歧义。
前端提供常见流程图原语,可以拖入画布,再连接到已有节点。新增一个判断节点时,不能只完成拖放,还要补齐进入边、所有出口和出口标签。
视觉位置不是流程顺序的可靠依据,箭头才是。拖到两个节点之间不代表系统一定自动重接原边。
假设原流程是:
flowchart TD
A[接收订单] --> B[创建支付单]
B --> C[等待付款]
需要加入库存判断,结构应变成:
flowchart TD
A[接收订单] --> D{库存充足}
D -- 否 --> E[通知缺货]
D -- 是 --> B[创建支付单]
B --> C[等待付款]
关键不是多了一个菱形,而是原来的 A --> B 应被替换,且“否”分支有明确终点。
内置助手使用当前 Mermaid 代码和用户指令生成更新。有效命令应包含动作、目标节点、位置、连接和限制:
在“创建支付单”之前增加判断节点“库存充足?”。
“是”连接到“创建支付单”,“否”连接到新节点“通知缺货”。
不要修改其他节点和连接。
论文示例还包括“在流程 C 前增加判断节点”和“把开始连接到审核”。这些命令都具有明确作用范围。
优化这个流程。
让它更专业、更完整。
这类指令没有验收标准,模型可能重写节点、关系和样式。
浏览器把当前 Mermaid 代码和指令发送给后端,后端组合受控提示,并由集成 AI 助手生成新的代码。论文实现中的助手使用 GPT-4.1。返回结果经过验证后重新渲染。
因此自然语言修改不是离线字符串替换,会涉及网络和模型推理。当前代码和指令都应视为会离开浏览器,敏感流程需先脱敏。
先看代码差异,再看渲染图。图形可能因自动布局整体移动,但真正需要关注的是节点和关系变化。
推荐按以下顺序:
顺序不是硬性规定,但先稳定名称后再让 AI 引用节点,通常更少歧义。
一个可维护流程图的源码应简洁、标识稳定、边标签明确:
flowchart LR
start[提交申请] --> check{材料完整}
check -- 否 --> revise[退回补充]
revise --> start
check -- 是 --> review[人工审核]
review --> done[完成]
论文称图形与文本保持双向同步。实际使用时可做简单验证:
如果两个视图不一致,应停止后续编辑,保存源码和截图,刷新或回退到最近稳定版本。
Mermaid 主要描述拓扑结构并自动布局。拖动节点可以改善交互和表达,但并非所有像素位置都能永久编码进 Mermaid。重新渲染、切换方向或在其他版本打开时,位置可能变化。
把节点与边的语义作为事实来源,不要依靠“左边就是先执行”表达业务顺序。
不要同时在多个标签页修改同一份图,也不要在 AI 请求尚未完成时继续拖放。可以采用以下节奏:
团队协作时为每次修改指定一名操作者,其他人通过评论提出建议,减少覆盖。
.mmd。AI 输出可渲染不等于结构正确。论文评测也显示语法有效性可能接近满分,而关系恢复仍明显更差。
边是流程图转换和修改中最容易出错的部分。逐个判断节点建立检查表:
不要只比较节点文字,因为完整节点列表仍可能组成错误流程。
系统支持导出 .mmd 和 SVG,也能打开 Mermaid Live Editor。推荐交付:
.mmd:长期维护和版本控制。打开外部编辑器后,应确认 Mermaid 版本和图表语法兼容。
把 Mermaid 源码放在固定目录,并按修改目的提交:
docs/diagrams/checkout-flow.mmd
docs/images/checkout-flow.svg
提交说明可以写“补充库存失败分支”,而不是笼统写“更新流程图”。代码审查应关注节点和边的变化。
图片转换会把图像发送到 Node.js 后端和外部视觉语言模型;自然语言编辑会发送当前代码与指令。内联和拖放虽然发生在浏览器交互层,也可能与服务器状态同步。
Flowchart2Mermaid 来自 2025 年 12 月的 arXiv 预印本,并提交至 EACL 2026 Demo Track。论文把智能补全、协作编辑和跨图一致性列为未来方向,因此不应假设这些能力已经完整实现。
作者也承认视觉语言模型可能幻觉、误读元素或无法完全匹配原图布局与语义。系统定位是辅助工具,需要用户审查。
确认当前处于编辑状态而不是只读预览,并选择实际文本区域。必要时直接在 Mermaid 源码中修改。
拖放可能只新增节点。手工建立进入边和出口,并检查源码中是否生成对应关系。
先统一节点名,再使用唯一名称。必要时直接引用 Mermaid 节点标识。
Mermaid 会根据结构重新自动布局。检查关系是否正确,不要把位置变化直接判断为语义变化。
停止编辑,保存当前代码和截图,刷新后从最近稳定版本恢复。不要继续叠加 AI 修改。
回退版本,把命令缩小到一个节点或一条边,并明确不得改变其他分支。
检查目标平台的 Mermaid 版本和支持类型。简化不兼容语法,或使用 SVG 作为展示。
.mmd 和 SVG 已导出。Flowchart2Mermaid 的三种编辑方式应按问题类型分工:内联编辑修文字,拖放修改结构,自然语言命令完成范围明确的语义变化,Mermaid 源码负责精确控制和恢复。双向同步让这些操作共享同一表示,但自动布局、AI 误改和并发操作仍可能造成偏差。保存基线、一次只改一项、逐边验收并导出 .mmd,才能把混合编辑真正变成可维护流程。
ubuntu无法正常关机卡住了怎么办? ubuntu16.04无法关机的解决办法
Ubuntu优麒麟20.10终极预告曝光 本周四发布正式版本
Mermaid Chart 的 VS Code 扩展如何通过 AI Chat Participant 生成图表?
ubuntu自动挂起是什么意思? ubuntu v20设置自动挂起系统的技巧
ProcessOn 如何通过图片生成 Mermaid 图形并进行图形化编辑?
MermaidSeqBench 如何评估大语言模型生成 Mermaid 时序图的能力?