ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

用DeepSeek+Mermaid+HTML替代Visio:3秒生成SOP流程图

用DeepSeek+Mermaid+HTML替代Visio:3秒生成SOP流程图 1. 为什么我开始琢磨用 DeepSeek 替代 Visio 画 SOP画 SOP 流程图这件事我干了快八年。从最早用 Word 的 SmartArt 硬拼到后来咬牙上 Visio再到 draw.io、ProcessOn 一路换过来核心痛点从来没变过排版内耗。你脑子里明明已经把流程想清楚了可一旦落到 Visio 的画布上对齐、连线、箭头绕行、文本框自动缩放每一个环节都在消耗你的耐心。尤其是那种跨部门、带判断分支、还有异常回滚路径的 SOP画完一版改三遍改到最后自己都不想再看。Visio 的问题不是它不专业而是它太重了。装一个 Visio Professional 动辄几个 G启动慢、保存偶尔抽风搜“visio点击保存自动退出后文件怎么找回”的人应该不少团队协作还得靠发文件传来传去。更别说 Visio 的授权、激活、版本兼容这些破事光“visio professional 2013激活”“visio安装教程”这类搜索词的热度就能看出来大家在这上面踩的坑有多深。我真正开始转向 DeepSeek Mermaid HTML 这套组合是因为一个很具体的场景我要给团队写一份 AI 应用开发的 SOP 文档里面涉及数据预处理、模型调用、结果校验、异常重试四大块每块下面还有分支。用 Visio 画我预估至少两小时用 DeepSeek 生成 Mermaid 代码再渲染成网页级 HTML实测下来从描述需求到拿到可交付的流程图3 秒出代码30 秒出网页。这不是夸张是真实的工作流。这套方案的核心逻辑很简单让 AI 负责“把自然语言翻译成结构化图形描述”让 Mermaid 负责“用代码定义图形”让 HTML 负责“渲染和分发”。Visio 是“手工作坊”DeepSeek Mermaid HTML 是“自动化流水线”。你不需要学复杂的绘图工具只需要把流程说清楚剩下的交给代码。这篇文章适合谁看如果你是产品经理、项目经理、技术负责人、运维工程师或者任何需要频繁输出 SOP、流程图、架构图的人这套方法能帮你把画图时间压缩 80% 以上。如果你完全不懂代码也没关系DeepSeek 会帮你写你只需要会复制粘贴。下面我从整体设计思路开始拆把每一步的为什么和怎么做都讲透。2. 整体方案设计与选型逻辑拆解2.1 为什么是 DeepSeek Mermaid HTML 这个组合先拆解一下这个组合里每个角色的定位。DeepSeek 是“翻译官”它把中文的流程描述翻译成 Mermaid 代码。Mermaid 是“图形描述语言”它用类似 Markdown 的语法定义流程图、时序图、ER 图、思维导图等。HTML 是“渲染容器”它把 Mermaid 代码在浏览器里画出来并且可以打包、分享、嵌入。为什么不用 VisioVisio 是所见即所得的绘图工具它的优势在于精细控制但劣势也在这里每一个像素都要你手动调。Mermaid 的优势是“声明式”你只描述“A 到 B 到 C”它自动帮你排版。DeepSeek 的优势是“自然语言理解”你不需要学 Mermaid 语法直接用中文说“先判断用户是否登录如果登录了就走主流程没登录就跳转到注册页”它就能生成对应的代码。这个组合的另一个好处是版本可控。Visio 文件是二进制或复杂 XMLGit diff 基本看不了。Mermaid 代码是纯文本每次修改都能清晰看到差异团队协作时谁改了哪条线一目了然。HTML 文件也是纯文本可以直接扔进任何静态托管服务或者打包成离线文件发给别人。还有一个隐藏优势Mermaid 支持多种图类型。SOP 流程图用flowchart时序图用sequenceDiagramER 图用erDiagram思维导图用mindmap。这意味着你一套工具链可以覆盖几乎所有常见的图形需求不用在 Visio、draw.io、XMind 之间来回切换。2.2 网页级 SOP 流程图到底长什么样“网页级”这个词我特意强调一下。Visio 导出的图片是静态的放大就糊而且样式老旧。Mermaid 渲染出来的图是 SVG 或 Canvas矢量图形无限放大不模糊。更重要的是你可以用 CSS 控制它的样式比如把所有节点设成白底黑字、调整框的大小、改连线颜色。搜“mermaid编辑器中设置所有节点为白底黑字的语句”的人就是在找这个能力。网页级还意味着可交互。你可以在 HTML 里给节点加点击事件点一下跳转到对应的文档章节也可以加悬停提示鼠标放上去显示详细说明。Visio 要做到这些得写宏或者导出到其他平台门槛高得多。另外HTML 文件可以直接在浏览器打开不需要安装任何软件。你发给同事他双击就能看手机浏览器也能看。Visio 文件对方没装 Visio 就打不开还得截图发微信体验差一大截。2.3 方案选型背后的取舍与避坑这套方案不是没有缺点。Mermaid 的自动排版有时候会“抽风”比如节点太多时连线交叉严重或者中文文字换行不理想。这时候你需要手动调整代码里的方向参数TD从上到下、LR从左到右或者用子图subgraph分组。Visio 在这方面的精细控制确实更强但代价是时间。另一个坑是 Mermaid 的版本兼容性。不同版本的 Mermaid 语法略有差异比如mindmap在旧版本里不支持。如果你用在线编辑器如 Mermaid Live Editor一般是最新版如果本地部署要注意版本号。搜“mermaid离线编辑器”的人通常是因为内网环境不能访问在线服务这时候可以用 VS Code 装 Mermaid 插件或者用mermaid-cli本地渲染。DeepSeek 生成代码时也可能出错比如把flowchart写成graph旧语法或者节点 ID 用了中文导致渲染失败。我的经验是让 DeepSeek 生成后先扔到 Mermaid Live Editor 里预览报错就让它修。一般两三轮就能得到可用的代码。还有一个容易被忽略的点HTML 的字符编码。搜“!doctype html”的人大概率是在处理中文乱码问题。Mermaid 代码里如果有中文HTML 必须声明 UTF-8否则浏览器可能按 GBK 解析图形里的中文全变问号。这个坑我踩过排查了半小时才发现是编码问题。3. 核心细节解析与实操要点3.1 DeepSeek 提示词怎么写才能一次出对图很多人用 DeepSeek 生成 Mermaid 代码结果不满意核心原因是提示词太模糊。你说“帮我画一个用户登录的流程图”它可能给你一个非常简略的版本缺少异常分支、缺少判断条件、缺少回滚路径。SOP 流程图的价值恰恰在于完整性和可执行性所以提示词必须把边界条件说清楚。我的提示词模板是这样的请用 Mermaid flowchart 语法生成一个 SOP 流程图方向从上到下TD。 流程名称用户登录与权限校验 SOP 步骤 1. 用户访问登录页 2. 输入账号密码 3. 系统校验账号格式格式错误则提示重新输入 4. 格式正确则查询数据库 5. 数据库返回用户信息如果用户不存在则提示注册 6. 用户存在则校验密码密码错误则提示重试超过3次锁定账号 7. 密码正确则生成会话令牌 8. 根据用户角色加载权限菜单 9. 进入首页 异常处理数据库超时则重试2次仍失败则提示稍后再试 请给每个判断节点加上是/否标签给异常路径加上虚线样式。这个提示词的关键点明确图类型和方向、列出所有步骤、说明异常分支、指定样式要求。DeepSeek 拿到这样的输入生成的代码基本一次就能用。如果你只给一句话它只能猜猜出来的东西你肯定要改。还有一个技巧让 DeepSeek 输出完整的 HTML 文件而不仅仅是 Mermaid 代码。你可以说“请把上面的 Mermaid 代码嵌入一个完整的 HTML 文件使用 CDN 引入 Mermaid支持中文页面标题为‘用户登录 SOP’”。这样你拿到就是一个可以直接双击打开的网页省去自己拼 HTML 的步骤。3.2 Mermaid 流程图语法的关键参数与样式控制Mermaid 的flowchart语法看起来简单但有几个参数直接决定最终效果。第一个是方向TD从上到下、LR从左到右、BT从下到上、RL从右到左。SOP 流程图一般用TD因为人的阅读习惯是自上而下。但如果步骤特别多LR可以节省纵向空间。第二个是节点形状。Mermaid 支持多种节点形状语法形状适用场景A[文字]矩形普通步骤A(文字)圆角矩形开始/结束A{文字}菱形判断条件A((文字))圆形连接点A文字]旗帜形输入/输出A{{文字}}六边形准备步骤SOP 里最常用的是矩形步骤、菱形判断、圆角矩形开始/结束。判断节点的文字要简短比如“账号格式正确”而不是“系统校验账号格式是否满足要求”否则菱形会被撑得很大排版难看。第三个是连线样式。实线--表示正常流程虚线-.-表示异常或可选流程粗线表示重点流程。你还可以在连线上加文字A --|是| B和A --|否| C。这个在判断节点后必须加否则读者不知道哪条线对应哪个条件。第四个是样式控制。Mermaid 允许你用classDef定义样式类然后给节点加类名。比如搜“mermaid编辑器中设置所有节点为白底黑字的语句”的人要找的就是这个flowchart TD classDef default fill:#ffffff,stroke:#333333,color:#000000 A[开始] -- B[步骤一] B -- C{判断} C --|是| D[步骤二] C --|否| E[步骤三]classDef default会把所有节点的默认样式改成白底黑字。如果你想单独控制某个节点可以定义多个类classDef warning fill:#fff3cd,stroke:#ffc107然后给节点加:::warning。3.3 HTML 渲染与打包分发的实操细节拿到 Mermaid 代码后你需要一个 HTML 容器来渲染它。最简的 HTML 模板如下!DOCTYPE html html langzh-CN head meta charsetUTF-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 title用户登录 SOP 流程图/title script srchttps://cdn.jsdelivr.net/npm/mermaid10/dist/mermaid.min.js/script style body { font-family: Microsoft YaHei, sans-serif; margin: 40px; background: #f5f5f5; } .container { max-width: 1200px; margin: 0 auto; background: #fff; padding: 30px; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); } h1 { font-size: 24px; color: #333; border-bottom: 2px solid #007bff; padding-bottom: 10px; } .mermaid { text-align: center; } /style /head body div classcontainer h1用户登录与权限校验 SOP/h1 div classmermaid flowchart TD A([开始]) -- B[访问登录页] B -- C[输入账号密码] C -- D{账号格式正确?} D --|否| C D --|是| E[查询数据库] E -- F{用户存在?} F --|否| G[提示注册] F --|是| H{密码正确?} H --|否| I{重试次数3?} I --|是| C I --|否| J[锁定账号] H --|是| K[生成会话令牌] K -- L[加载权限菜单] L -- M([进入首页]) /div /div script mermaid.initialize({ startOnLoad: true, theme: default, flowchart: { useMaxWidth: true } }); /script /body /html这个模板有几个关键点。第一meta charsetUTF-8必须放在head最前面否则中文可能乱码。第二Mermaid 的 CDN 地址建议用jsdelivr国内访问相对稳定。第三mermaid.initialize里的useMaxWidth: true让图形自适应容器宽度手机上也能看。第四startOnLoad: true表示页面加载完自动渲染。如果你需要离线使用可以把mermaid.min.js下载到本地把src改成相对路径。搜“mermaid离线编辑器”的人通常就是内网环境需要这个。下载地址在 Mermaid 的 GitHub Release 页面选mermaid.min.js即可。打包多个 HTML 文件时建议每个 SOP 一个独立文件文件名用英文或拼音避免中文文件名在某些服务器上出问题。如果要把多个 SOP 整合成一个页面可以用iframe嵌入或者用标签页切换。搜“打包多个html”的人可能是在做文档站点这时候可以考虑用docsify或VuePress这类静态站点生成器把 Mermaid 作为插件集成。4. 完整实操流程与核心环节实现4.1 从零开始用 DeepSeek 生成第一版 SOP 流程图假设你现在要写一份“AI 应用开发 SOP”覆盖数据准备、模型调用、结果校验、异常处理四个阶段。你打开 DeepSeek 的对话界面输入以下提示词请用 Mermaid flowchart TD 语法生成一个 AI 应用开发 SOP 流程图。 阶段一数据准备 - 收集原始数据 - 数据清洗去重、去空、格式统一 - 数据标注如果是有监督任务 - 划分训练集/验证集/测试集 阶段二模型调用 - 选择基础模型 - 配置 API 参数温度、最大token数 - 发送请求 - 接收响应 阶段三结果校验 - 检查响应是否为空 - 检查响应格式是否符合预期 - 检查内容是否包含敏感词 - 校验通过则进入下一步不通过则重新调用 阶段四异常处理 - 网络超时重试2次 - API限流等待5秒后重试 - 模型返回错误记录日志并告警 - 重试仍失败降级到备用模型 请给判断节点加是/否标签异常路径用虚线开始和结束用圆角矩形。DeepSeek 会在几秒内返回一段 Mermaid 代码。你把它复制到 Mermaid Live Editormermaid.live里右侧立刻显示图形。如果发现某个连线不对或者节点位置不理想你可以直接改代码也可以让 DeepSeek 调整。比如你觉得“数据标注”这一步应该根据任务类型判断是否需要就可以追加一句“请在数据标注前加一个判断节点是否为有监督任务是则标注否则跳过”。这个迭代过程通常不超过 5 分钟。相比 Visio 里手动拖拽、对齐、连线效率提升是数量级的。而且你得到的代码是可复用的下次写类似的 SOP改几个节点就行。4.2 把 Mermaid 代码变成可分享的 HTML 网页拿到满意的 Mermaid 代码后下一步是把它嵌入 HTML。你可以手动拼也可以让 DeepSeek 帮你拼。我一般直接说“请把上面的 Mermaid 代码嵌入一个完整的 HTML 文件要求UTF-8 编码、中文标题、Mermaid 从 CDN 引入、页面居中、有基本样式。”DeepSeek 会输出一个完整的 HTML 文件你复制到文本编辑器里保存为.html文件双击就能在浏览器打开。如果你要批量处理比如有 10 个 SOP 要生成网页可以写一个简单的 Python 脚本用模板字符串批量替换 Mermaid 代码块。这样你只需要维护一个 HTML 模板每次改 SOP 只改 Mermaid 部分。template !DOCTYPE html html langzh-CN head meta charsetUTF-8 title{title}/title script srchttps://cdn.jsdelivr.net/npm/mermaid10/dist/mermaid.min.js/script /head body h1{title}/h1 div classmermaid {mermaid_code} /div scriptmermaid.initialize({{ startOnLoad: true }});/script /body /html def generate_html(title, mermaid_code, filename): html template.format(titletitle, mermaid_codemermaid_code) with open(filename, w, encodingutf-8) as f: f.write(html)这个脚本跑一次就能生成一个 HTML 文件。如果你有几十个 SOP几分钟就能全部生成。搜“html转为md”的人可能是反向需求想把 HTML 转成 Markdown这时候可以用turndown库但 Mermaid 图形本身是代码转 Markdown 后还是代码块不影响。4.3 样式微调让流程图符合团队视觉规范默认的 Mermaid 主题是浅紫色调有些团队有自己的视觉规范比如要求白底黑字、蓝色连线、圆角节点。这时候就需要用classDef和linkStyle来定制。flowchart TD classDef startEnd fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#0d47a1 classDef process fill:#ffffff,stroke:#333333,stroke-width:1px,color:#000000 classDef decision fill:#fff8e1,stroke:#ff8f00,stroke-width:1px,color:#000000 classDef error fill:#ffebee,stroke:#c62828,stroke-width:1px,color:#b71c1c A([开始]):::startEnd -- B[数据收集]:::process B -- C{数据是否完整?}:::decision C --|是| D[数据清洗]:::process C --|否| E[补充采集]:::error E -- B D -- F[模型调用]:::process F -- G{响应正常?}:::decision G --|是| H[结果校验]:::process G --|否| I[重试]:::error I -- F H -- J([结束]):::startEnd linkStyle 0,1,2,3,4,5,6,7 stroke:#333333,stroke-width:1px linkStyle 8,9 stroke:#c62828,stroke-width:1px,stroke-dasharray: 5 5这段代码里classDef定义了四种样式类开始/结束、普通步骤、判断、异常。节点后面用:::类名应用样式。linkStyle控制连线的样式stroke-dasharray让异常路径变成虚线。这样出来的图既专业又符合团队规范。如果你想让所有节点默认白底黑字直接在classDef default里设置即可不用每个节点单独加类。这个技巧在搜“mermaid编辑器中设置所有节点为白底黑字的语句”时经常被提到但很多人不知道default这个保留类名。4.4 版本管理与团队协作的落地方法Mermaid 代码是纯文本天然适合 Git 管理。我建议每个 SOP 一个.mmd文件里面只放 Mermaid 代码。HTML 文件作为渲染产物可以放在dist目录里不纳入版本控制或者用 CI 自动生成。团队协作时产品经理改流程只需要改.mmd文件里的几行代码提交 PR技术负责人 review 后合并。Git diff 会清晰显示哪条线改了、哪个节点加了。Visio 文件做不到这一点二进制文件的 diff 基本不可读。如果你用 VS Code装一个Markdown Preview Mermaid Support插件直接在 Markdown 文件里写 Mermaid 代码块预览窗口就能实时渲染。这样你写文档和画图在同一个界面完成不用来回切换工具。搜“markdown preview mermaid support”的人找的就是这个插件。对于需要频繁更新的 SOP可以设置一个简单的 CI 流程每次 push.mmd文件自动用mermaid-cli生成 SVG 和 HTML部署到内部文档站点。这样团队成员永远看到的是最新版不用手动发文件。5. 常见问题与排查技巧实录5.1 Mermaid 渲染失败的高频原因与修复Mermaid 渲染失败最常见的原因是语法错误。比如节点 ID 用了中文、箭头写成了-而不是--、判断节点的花括号没闭合。Mermaid Live Editor 会在右侧显示错误信息一般会指出行号按行排查即可。第二个高频原因是版本不兼容。比如mindmap语法在 Mermaid 9 以下不支持flowchart的某些新特性在旧版本里会报错。解决办法是统一用最新版或者在 HTML 里锁定版本号比如mermaid10。第三个原因是中文编码问题。如果 HTML 没有声明meta charsetUTF-8或者文件保存时用了 GBK 编码中文会显示为乱码。排查方法是看浏览器控制台有没有报错或者用file命令检查文件编码。第四个原因是CDN 加载失败。如果内网环境无法访问外网 CDNMermaid 脚本加载不了图形就不会渲染。解决办法是把mermaid.min.js下载到本地用相对路径引入。问题现象可能原因解决方法图形不显示控制台报错CDN 加载失败下载 mermaid.min.js 到本地中文显示为问号编码不是 UTF-8加meta charsetUTF-8文件保存为 UTF-8报语法错误箭头或括号写错对照 Mermaid 官方文档检查语法节点位置混乱方向或子图使用不当调整 TD/LR用 subgraph 分组连线交叉严重节点太多拆分成多个子图或用 LR 方向5.2 DeepSeek 生成代码的常见偏差与纠正DeepSeek 不是万能的它生成的 Mermaid 代码有时候会有偏差。最常见的偏差是遗漏异常分支。你提示词里写了“异常处理”但它可能只画了主流程。这时候你需要明确说“请把异常处理也画进去用虚线连接”。第二个偏差是判断节点缺少标签。它可能画了菱形但连线没有“是/否”标签。你需要在提示词里强调“每个判断节点的出口都要加是/否标签”。第三个偏差是节点文字太长。它可能把一整句话塞进一个节点导致图形比例失调。你可以在提示词里说“节点文字控制在 10 个字以内详细说明放在图下方的表格里”。第四个偏差是样式不符合要求。它可能用了默认主题但你需要白底黑字。这时候直接说“请用 classDef default 设置所有节点为白底黑字判断节点用浅黄色”。纠正这些偏差不需要重新生成整个代码你可以直接改也可以让 DeepSeek 改。我的经验是第一版用来定结构第二版用来调细节第三版用来调样式。三版之内基本能拿到可交付的图。5.3 从 Visio 迁移到 Mermaid 的实操建议如果你手头有大量 Visio 文件想迁移到 Mermaid不建议一次性全转。先挑一个最简单的 SOP手动用 DeepSeek 生成 Mermaid 版本对比一下效果和耗时。确认可行后再批量处理。Visio 的.vsdx文件本质是 ZIP 包里面是 XML。理论上可以写脚本解析 XML 提取节点和连线再转成 Mermaid 代码。但实际操作中Visio 的 XML 结构复杂节点位置、连线路径、样式信息混在一起解析成本很高。搜“drawio怎么转visio”的人可能是在找反向转换但 draw.io 本身支持导出 Mermaid比 Visio 方便得多。我的建议是新 SOP 直接用 Mermaid旧 SOP 按需迁移。不要为了迁移而迁移时间花在刀刃上。Visio 文件保留归档新流程用新工具慢慢过渡。5.4 性能优化大流程图如何保持可读性当 SOP 步骤超过 30 个时Mermaid 的自动排版会变得拥挤连线交叉严重。这时候有几个优化技巧。第一用子图分组。把相关步骤放在subgraph里比如“数据准备”“模型调用”“结果校验”各一个子图图形会清晰很多。第二拆分多个图。一个 50 步的 SOP 不如拆成 5 个 10 步的子流程每个子流程一个图用连接点关联。这样每个图都容易阅读维护也方便。第三用 LR 方向。如果步骤是线性的从左到右排列比从上到下更节省纵向空间适合宽屏阅读。第四减少节点文字。节点里只放关键词详细说明放在图下方的表格或列表里。Mermaid 的节点不是用来放段落的。第五用linkStyle淡化次要连线。主流程用实线深色次要流程用浅色虚线视觉焦点自然落在主流程上。6. 我踩过的坑与最后分享的几个技巧第一个坑是中文节点 ID。我一开始图省事用中文当节点 ID比如开始[开始]结果 Mermaid 报错。后来才知道节点 ID 必须是英文或数字显示文字可以中文。正确写法是start[开始]。第二个坑是HTML 文件保存编码。我用记事本保存 HTML默认是 ANSI 编码中文全乱码。后来改用 VS Code默认 UTF-8问题解决。如果你用 Windows 记事本记得另存为时选 UTF-8。第三个坑是CDN 版本锁定。我用mermaidlatest结果某天 Mermaid 发布新版本语法变了我的图全挂了。后来改成mermaid10锁定大版本稳定多了。第四个坑是DeepSeek 的上下文长度。如果你一次性让它生成一个 100 步的 SOP它可能中途“忘记”前面的步骤。解决办法是分段生成每段 20 步最后用子图拼接。最后分享一个小技巧用 DeepSeek 生成 Mermaid 代码时让它同时输出一个 Markdown 表格列出每个节点的详细说明。这样你的 SOP 文档既有流程图又有文字说明一举两得。表格可以直接贴到 Confluence 或 Notion 里流程图用 HTML 嵌入整个文档的专业度直接拉满。这套方法我用了大半年从最初抱着试试看的心态到现在团队里所有 SOP 都用这套流程产出。Visio 已经很久没打开了。如果你也在被排版内耗折磨不妨从下一个 SOP 开始试试 DeepSeek Mermaid HTML 的组合。3 秒生成代码30 秒出网页剩下的时间拿去喝杯咖啡不香吗。
返回列表