基于 LLM 驱动的下一代可视化绘图助手,支持 Excalidraw 与 Draw.io 双引擎渲染。
- 自然语言转图表 - 描述需求,AI 自动生成流程图、架构图、时序图等
- 智能布局 - Dagre 算法自动优化节点位置和连线路径
- 分块生成 - 复杂图表模块化并行生成
- 选中编辑 - 选中元素后用自然语言修改、删除或添加
- 智能连线 - 选中两个节点,说"连接"即可创建箭头
- 降级处理 - AI 响应格式不标准时自动提取操作意图
| 引擎 | 风格 | 适用场景 |
|---|---|---|
| Excalidraw | 手绘草图风 | 头脑风暴、快速原型 |
| Draw.io | 专业矢量风 | 正式文档、技术规范 |
一键切换,同一图表两种风格。
npm install
npm run dev- 点击设置图标配置 API Key(OpenAI / Anthropic / Gemini)
- 在右侧对话框描述需求
- AI 自动生成图表
| 功能 | 操作 |
|---|---|
| 生成图表 | 输入"画一个用户登录流程图" |
| 编辑节点 | 选中节点 → 输入"把文字改成XXX" |
| 删除节点 | 选中节点 → 输入"删除" |
| 添加节点 | 选中节点 → 输入"在下方添加一个处理节点" |
| 添加连线 | 选中两个节点 → 输入"连接" |
| 自动布局 | 点击 Header 的"布局"按钮 |
| 切换引擎 | 点击 Header 的 Excalidraw/Draw.io Tab |
| 快捷键 | 功能 |
|---|---|
| Ctrl+Z | 撤销 |
| Ctrl+Shift+Z | 重做 |
| Ctrl+C / V | 复制/粘贴 |
- 框架: Next.js 15 + TypeScript + TailwindCSS
- 画布: @excalidraw/excalidraw + react-drawio
- 布局: Dagre
- 存储: LocalStorage (API Keys) + IndexedDB (画布状态)
- LLM: OpenAI / Anthropic / Gemini API
├── app/ # Next.js App Router
├── components/
│ ├── canvas/ # 画布组件 (Excalidraw, Draw.io)
│ ├── layout/ # 布局组件 (Header, ChatPanel)
│ ├── guide/ # 引导组件
│ └── settings/ # 设置组件
├── contexts/ # React Context (Canvas, Engine)
├── lib/
│ ├── ai/ # AI 服务 (LLM, 增量编辑)
│ ├── layout/ # 布局算法 (Dagre)
│ ├── converters/ # 格式转换 (Draw.io XML)
│ └── storage/ # 存储管理
└── docs/ # 开发文档 (本地,不纳入版本控制)
npm run dev # 启动开发服务器
npm run build # 构建生产版本
npm run start # 启动生产服务器
npm run lint # 运行 ESLintMIT