基于 Vercel AI SDK 构建的 AI 智能绘图工具(流程图):技术架构深度解析
在日常开发中,技术文档的架构图、时序图、流程图绘制一直是高耗时且低创造性的工作。本文将深度解析一款开源项目 TopBeeAi Draw,它通过将 LLM 与 draw.io 深度集成,实现了用自然语言描述即可自动生成专业技术图表的能力。文章将重点分析其技术架构、AI Tool Call 设计模式以及多模型接入方案。
在线体验:TopBeeAI - 医学科研AI智能写作平台 | 文献综述·SCI论文·科研绘图·基金申请 登录后 点击 AI绘图工具 -> 高级流程图绘制

一、项目概览
技术栈
| 层级 | 技术选型 |
|---|---|
| 前端框架 | Next.js 16 (App Router) + React 19 |
| 样式方案 | Tailwind CSS 4 + Radix UI + Lucide Icons |
| AI SDK | Vercel AI SDK v6 (ai + @ai-sdk/*) |
| 绘图引擎 | draw.io (react-drawio 封装) |
| 图表格式 | draw.io XML (mxGraph) |
| 数据压缩 | pako (zlib/gzip/deflate) |
核心能力
- 自然语言描述 → 专业图表生成(流程图、架构图、时序图、ER 图、思维导图等)
- 对话式图表编辑(”把用户服务改成蓝色”、”在第 2 步和第 3 步之间插入一个审批节点”)
- 截图/PDF 上传 → AI 复刻图表
- 图表版本快照与历史回溯
- MCP Server 形态,可被 Claude Desktop、Cursor、VS Code 调用
二、架构设计:AI 与绘图引擎的交互模型
2.1 整体架构
用户浏览器├── Chat Panel (useChat / AI SDK)│ ├── 用户输入 → POST /api/chat → LLM Stream│ └── LLM 返回 Tool Call → 客户端执行绘图操作├── DiagramContext (React Context)│ └── chartXML 状态 → react-drawio iframe 渲染└── localStorage 持久化├── 对话历史├── 图表 XML└── 版本快照(最多 20 个)
核心设计思想:LLM 不直接操作 DOM,而是通过 Tool Call 生成符合 draw.io XML Schema 的结构化数据,由客户端统一处理后注入嵌入式 iframe。
2.2 三种 AI Tool 的职责划分
项目定义了三种独立的 AI Tool,分别对应不同的绘图场景:
1. display_diagram — 全量替换
用于初次生成图表,或需要整体重新布局的场景。AI 生成完整的 mxCell XML 节点集合,客户端用 wrapWithMxFile() 包裹为合法的 mxfile 结构后替换当前图表。
// 核心处理流程const wrappedXml = wrapWithMxFile(mxCells) // 包裹 mxfile/root 结构const fixedXml = autoFixXml(wrappedXml) // 自动修复常见 XML 问题setChartXML(fixedXml) // 注入 iframe
2. edit_diagram — 精确节点编辑
用于增量修改场景,是最体现技术功力的部分。基于 draw.io 的 mxCell ID 体系,AI 通过 JSON 描述具体的编辑操作(修改属性、添加子元素、删除节点等),避免对 XML 做脆弱的正则替换。
{"operations": [{ "action": "update", "cellId": "3", "style": "fillColor=#1E90FF" },{ "action": "add", "parentId": "1", "mxCell": "<mxCell .../>" },{ "action": "delete", "cellId": "5" }]}
3. append_diagram — 续写补充
当 LLM 单次输出超出 token 限制导致 XML 被截断时触发。客户端检测 isMxCellXmlComplete() 判断是否截断,若截断则自动发起续写请求(最多重试 2 次)。
2.3 XML 处理管线
LLM 输出 (裸 mxCell)→ jsonrepair (修复截断 JSON)→ validateMxCellStructure (校验结构)→ autoFixXml (自动修复)→ wrapWithMxFile (包裹标准格式)→ 注入 draw.io iframe
这套管线保证了即使 LLM 输出存在小幅偏差(这在长文本生成中极为常见),系统依然能稳定产出合法可渲染的图表。
总结
TopBeeAi Draw 是一个设计思路清晰的开源项目——它没有重新发明绘图引擎,而是在成熟的 draw.io 之上叠加了 AI 交互层。这种”AI 增强已有工具”的思路,比起从零构建 AI-Native 绘图工具,在实用性和生态兼容性上都有天然优势。
对于经常需要绘制技术图表的开发者和架构师而言,这个工具能显著减少”画图”这种低创造性的机械劳动,把精力真正花在”画什么”而非”怎么画”上。
更多推荐



所有评论(0)