Next.js 做的一个 AI 辅助画图应用

在最近一波 AI 应用里,「AI 帮我画点东西」这件事经常被理解成生成图片、生成插画。但在真实的工程和产品场景中,更有价值的其实是:AI 帮你生成“结构”,而不是像素。

next-ai-draw-io 正是一个围绕这个思路构建的实验性项目。

它并不是要做一个完整的 draw.io 替代品,而是尝试回答一个更具体的问题:

如何把大模型的自然语言理解能力,接入一个可交互的 Web 画图工具?

项目要解决的核心问题

在传统画图工具中,流程通常是这样的:

  1. 用户手动拖拽节点
  2. 调整连线、布局
  3. 反复修改结构

而在这个项目里,顺序被反过来了:

  1. 用户用自然语言描述想画什么
  2. AI 将描述转成结构化的图形数据
  3. 前端根据这些结构,渲染出可编辑的图形

换句话说,AI 不负责“画”,而是负责“理解结构”

项目整体思路

从工程角度看,next-ai-draw-io 更像是一个 AI Web 应用范式 Demo,而不是单点技术展示。

整个链路可以拆成三层:

1. 输入层:自然语言

用户输入的是普通文本,比如:

“画一个用户登录流程,包括输入账号、校验、成功或失败分支。”

这一步没有任何画图逻辑,只是纯文本。

2. AI 层:文本 → 结构

大模型在这里扮演的角色不是“画师”,而是“结构生成器”。

它的核心任务是把文本转成类似这样的数据:

{
  "nodes": [
    { "id": "login", "label": "登录" },
    { "id": "check", "label": "校验账号" }
  ],
  "edges": [
    { "from": "login", "to": "check" }
  ]
}

这一步非常关键
一旦输出是稳定的结构化数据,后续的一切渲染、交互、编辑,全部可以交给前端来完成。

3. 前端层:结构 → 图形

前端使用 Next.js 构建:

  • 接收 AI 返回的数据
  • 将节点、边映射成 Canvas / SVG 图形
  • 支持继续编辑、调整布局

这里的重点不在“画得多漂亮”,而在于:

如何让 AI 的输出,真正变成一个“可用的 UI 状态”。

技术选型背后的取舍

从代码结构和依赖来看,这个项目有几个明显的取向:

  • 使用 Next.js
    • 适合快速搭建 AI Web 应用
    • API Route 直接作为 AI 调用层
  • AI 只做“决策与生成”
    • 不参与渲染
    • 不耦合具体 UI
  • 前端完全掌控交互
    • 节点拖拽
    • 视觉反馈
    • 状态管理

这其实是目前最稳妥的 AI 应用工程分工方式

这个项目“没有”做什么

理解一个项目,往往也要看它刻意没做什么。

next-ai-draw-io 并没有试图:

  • 做完整的图形编辑器
  • 覆盖 draw.io 的所有功能
  • 追求复杂的布局算法

它更像是一个:

“如果我要做一个 AI 驱动的画图工具,最小可行架构应该长什么样?”

总结

next-ai-draw-io 并不是一个完成度很高的工具,但它清楚地展示了一种 AI 应用工程的正确切入方式

  • AI 负责理解和生成结构
  • 前端负责表达和交互
  • 两者通过稳定的数据结构解耦

在 AI 应用越来越多的当下,这种思路,可能比某个具体模型更值得关注。

Github:https://github.com/DayuanJiang/next-ai-draw-io
油管:https://youtu.be/XA54uQPcV1o