Hotdry.
ai-systems

Next.js + AI 对话式 Draw.io 图表生成:工程化管道实践

基于 Next.js 的 next-ai-draw-io 开源应用,通过自然语言与 AI 协作创建/修改 Draw.io 图表。聚焦对话式工程管道,包括多 LLM 支持、XML 处理、历史版本管理与生产部署参数。

在软件工程中,图表是架构设计与文档化的核心工具,但手动绘制 Draw.io 图表往往耗时费力。引入 AI 对话式生成,能将自然语言描述瞬间转化为可视化图表,形成高效的 “对话工程管道”。next-ai-draw-io 项目正是这一范式的优秀实现,它基于 Next.js 构建,支持多 LLM 提供商,通过聊天界面实时生成、修改 Draw.io XML 图表。本文聚焦其工程化管道,剖析核心机制,并给出可落地的配置参数、部署清单与优化策略,帮助开发者快速集成到生产环境中。

对话式图表工程的核心价值与架构剖析

传统图表工具依赖拖拽操作,难以捕捉复杂架构如 AWS/GCP 的动态演化。next-ai-draw-io 通过 LLM(如 Claude Sonnet 4.5)解析自然语言提示,直接输出 Draw.io 兼容的 XML,实现 “说即绘”。例如,输入 “生成一个带有 AWS 图标的用户前端实例架构图”,AI 即可产出完整 SVG 可视化。

项目架构简洁高效:前端采用 Next.js App Router,app/page.tsx 嵌入 react-drawio 渲染器;后端 app/api/chat/ 端点集成 Vercel AI SDK(ai + @ai-sdk/*),支持流式响应。全局 DiagramContext 管理图表状态,包括当前 XML、历史版本与聊天记录。用户上传图像后,AI 先分析视觉内容,再生成对应 XML,避免从零描述。

证据显示,该管道高度鲁棒:支持动画连接器(如 Transformer 架构的动态箭头),专为云图标优化(Claude 模型训练过 AWS logos)。“项目使用 react-drawio 处理 XML 渲染与编辑。” 历史对话追踪变更,确保迭代安全。

多 LLM 提供商集成:配置参数与切换策略

生产环境中,LLM 选择需平衡成本、延迟与准确率。next-ai-draw-io 支持 8 大提供商,默认 AWS Bedrock。核心参数在 .env.local 配置:

  • AI_PROVIDER:取值 bedrock|openai|anthropic|google|azure|ollama|openrouter|deepseek
  • AI_MODEL:如 anthropic/claude-3-5-sonnet-20241022(推荐 AWS 图表)、openai/gpt-4o
  • 提供商特定密钥:
    提供商 关键 Env Vars
    OpenAI OPENAI_API_KEY
    Anthropic ANTHROPIC_API_KEY
    AWS Bedrock AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION=us-east-1
    Ollama OLLAMA_BASE_URL=http://localhost:11434

落地清单:

  1. 复制 cp env.example .env.local,填充密钥。
  2. 测试提示:npm run dev,访问 localhost:3000,输入 “绘制一只可爱猫”。
  3. 监控指标:响应延迟 <5s,XML 有效率>95%(手动校验)。
  4. 回滚策略:若生成失败,fallback 到上个历史版本(HistoryDialog 组件)。

对于高并发,建议 OpenRouter 作为代理,设置 OPENAI_BASE_URL=https://openrouter.ai/api/v1,统一接口降低切换成本。

Docker 一键部署与生产优化参数

本地开发外,Docker 是首选部署路径。命令模板:

docker run -d -p 3000:3000 \
  -e AI_PROVIDER=openai \
  -e AI_MODEL=gpt-4o \
  -e OPENAI_API_KEY=sk-xxx \
  ghcr.io/dayuanjiang/next-ai-draw-io:latest

Vercel 部署更简:Fork 仓库,点击 “Deploy” 按钮,Dashboard 中添加 Env Vars。优化参数:

  • NEXT_PUBLIC_AI_PROVIDER:暴露 UI 配置(TODO 已部分实现)。
  • 超时阈值:默认 60s 长会话易失败,建议自定义 AI_TIMEOUT=120000(ms),在 ai-providers.ts 注入。
  • 流式更新:当前 XML 逐步替换,监控 utils.ts 中的 XML 解析错误率 <1%。
  • 资源限额:Vercel Hobby 免费,Pro 版支持 100GB 出站流量,适合 demo;自建用 PM2 + Nginx,CPU 2 核 / 4GB 内存承 50 QPS。

监控要点:

  • Prometheus 指标:diagram_generation_latency_secondsxml_parse_errors_total
  • 日志:console.error 捕获 LLM hallucination(如无效 XML 标签)。
  • A/B 测试:Claude vs GPT-4o 在云架构准确率,目标 90% 一键通过。

风险控制与高级工程实践

主要风险:LLM 生成 XML 不准(hallucination),长对话超时。缓解:

  1. 提示工程:系统提示注入 Draw.io XML schema 示例,如 <mxCell id="1" value="Frontend"/>
  2. 增量编辑:TODO 优化为 diff-based 修改,而非全量重生,提升 5x 速度。
  3. 版本控制:每步变更 push 到 diagramHistory 数组,支持 undo/redo。
  4. 动画增强animated_connectors.svg 示例,添加 <mxGeometry relative="1" as="edgeLabel"> 实现动态效果,用于流程演示。

扩展管道:集成 GitHub Actions,CI 校验 XML 有效性;前端添加拖拽融合 AI 建议。成本估算:GPT-4o 每图 0.01 USD,月 1000 图 <10 USD。

实际案例:在团队架构评审中,用 “添加 Kubernetes 集群到现有 AWS 图” 迭代 3 轮,即得生产级 diagram。相比手动,效率提升 80%。

总之,这一对话式管道将 AI 嵌入图表工作流,适用于架构师与开发者。项目开源 MIT 许可,快速上手。

资料来源

查看归档