English | 中文
一个基于 Next.js 构建的智能绘图应用程序,利用 AI 的强大功能创建和操作各种类型的图表,包括 Draw.io (diagrams.net)、Mermaid、PlantUML、Excalidraw,以及通过自然语言命令支持 20 多种其他图表格式。
🔗 在线演示:
- AI 驱动的图表创建: 将自然语言描述转换为专业图表
- 多格式支持: 支持 Draw.io XML、Mermaid、PlantUML、Excalidraw,以及通过 Kroki 支持 20 多种其他格式
- 智能编辑: 通过对话式 AI 提示修改现有图表
- 实时预览: 在与 AI 交互时查看更改
- 版本历史: 跟踪和恢复图表的先前版本
- 可折叠聊天面板: 展开或折叠聊天界面以最大化工作区
- 灵活渲染: 具有回退机制的多种渲染选项
- 模型配置: 直接从浏览器自定义 AI 模型
使用 AI 驱动的 XML 生成和修改功能创建和编辑专业流程图、过程图和复杂可视化图表。
在专用工作区中生成流程图、序列图、甘特图等,并提供实时 SVG 预览。
内置渲染代理,支持 plantuml.com、kroki.io 或自定义端点创建 UML 图表。
结合 AI 辅助的徒手风格绘图,用于有机图表创建。
使用 DOT 语言语法创建图形图表。Graphviz 通过 kroki.io 服务提供支持,该服务提供强大的图形可视化功能。
使用 kroki.io 服务在各种格式中生成图表,通过单一界面支持:
- PlantUML: UML 图表、活动图、序列图等
- Mermaid: 流程图、序列图、甘特图等
- BPMN: 业务流程建模符号,用于工作流图
- Graphviz: 图形可视化和网络图
- BlockDiag: 方框图
- C4-PlantUML: 软件架构图
- Ditaa: ASCII 艺术到图像转换
- Erd: 实体关系图
- Vega/Vega-Lite: 数据可视化
- 以及其他 15 多种格式
AI 智能绘图利用现代 Web 技术在自然语言和图表表示之间架起桥梁:
- Next.js 应用路由器: 具有服务器端渲染的快速、现代 React 框架
- AI SDK 集成: 与 OpenAI 兼容 API 的无缝通信
- 上下文感知提示: 为每种图表类型设计的智能提示工程
- 实时流式传输: 具有流式响应的即时反馈
- 格式特定工具: 为每种图表格式设计的专用工具([display_mermaid]、[display_plantuml] 等)
应用程序将您的自然语言请求转换为结构化图表代码,然后实时渲染。
- Node.js 18+
- npm 或 yarn
- 克隆仓库:
git clone https://github.com/shenpeiheng/ai-smart-draw.git
cd ai-smart-draw- 安装依赖:
npm install
# 或
yarn install- 在根目录创建
.env.local文件。您可以使用env.example作为模板:
cp env.example .env.local然后使用您的 OpenAI 凭据更新 .env.local。
OPENAI_API_KEY(必需): 来自您 OpenAI 账户的密钥OPENAI_MODEL(可选): 默认为gpt-4o-mini,如果您喜欢其他已发布的变体可以覆盖OPENAI_BASE_URL(可选): 默认为https://api.openai.com/v1;如果您自托管代理或网关,请设置此项
示例片段:
OPENAI_API_KEY="sk-your-key"
# OPENAI_MODEL="gpt-4o-mini"
# OPENAI_BASE_URL="https://api.openai.com/v1"- 点击任何工作区标题中的 模型设置 按钮,覆盖当前浏览器的 API 密钥、基础 URL 或模型。值存储在
localStorage中,仅在您提交聊天请求时发送到服务器 - 留空任何字段以回退到上述服务器端环境变量
- 使用 拉取列表 按钮调用
/api/models助手,将当前凭据转发到GET /models并列出可选择的模型 ID
- 运行开发服务器:
npm run dev- 在浏览器中打开 http://localhost:3000 查看应用程序
/-> Draw.io (XML 工作流、图表历史、文件上传)/mermaid-> Mermaid (由您配置的 OpenAI 兼容模型驱动的实时预览 + 定义卡)/plantuml-> PlantUML (具有远程预览的基于文本的图表)/excalidraw-> Excalidraw (由相同模型驱动的自由形式画布)/kroki-> Kroki (由 kroki.io 驱动的多格式图表)/graphviz-> Graphviz (由 kroki.io 驱动的图形可视化图表)
- 切换聊天面板以最大化您的工作区
- 折叠时,浮动按钮可快速访问以恢复聊天面板
- 流畅的动画提供无缝用户体验
- 针对桌面和笔记本电脑使用进行了优化
- 移动友好的界面和适当的消息
- 在不同图表类型之间轻松切换
- 所有图表工作区的一致界面
部署 Next.js 应用的最简单方法是使用 Next.js 创建者提供的 Vercel 平台。
查看 Next.js 部署文档了解更多详情。
app/ # Next.js 应用路由和页面
api/ # 不同图表类型的 API 路由
[diagram-type]/ # 每种图表类型的独立页面
components/ # React 组件
ui/ # 可重用的 UI 组件
[feature]/ # 特定功能的组件
contexts/ # React 上下文提供者
lib/ # 实用函数和助手
public/ # 静态资源,包括示例图片
- 允许 LLM 修改 XML 而不是每次都从头生成
- 提高形状流式更新的流畅性
- 添加可折叠聊天面板以更好地利用工作区
该项目基于 MIT 许可证。





