Files
next-ai-draw-io/README_CN.md

7.2 KiB
Raw Permalink Blame History

Next AI Draw.io

AI驱动的图表创建工具 - 对话、绘制、可视化

English | 中文 | 日本語

License: MIT Next.js TypeScript Sponsor

🚀 在线演示

一个集成了AI功能的Next.js网页应用与draw.io图表无缝结合。通过自然语言命令和AI辅助可视化来创建、修改和增强图表。

https://github.com/user-attachments/assets/b2eef5f3-b335-4e71-a755-dc2e80931979

功能特性

  • LLM驱动的图表创建利用大语言模型通过自然语言命令直接创建和操作draw.io图表
  • 基于图像的图表复制上传现有图表或图像让AI自动复制和增强
  • 图表历史记录全面的版本控制跟踪所有更改允许您查看和恢复AI编辑前的图表版本
  • 交互式聊天界面与AI实时对话来完善您的图表
  • AWS架构图支持专门支持生成AWS架构图
  • 动画连接器:在图表元素之间创建动态动画连接器,实现更好的可视化效果

示例

以下是一些示例提示词及其生成的图表:

动画Transformer连接器

提示词: 给我一个带有**动画连接器**的Transformer架构图。

带动画连接器的Transformer架构
GCP架构图

提示词: 使用**GCP图标**生成一个GCP架构图。在这个图中用户连接到托管在实例上的前端。

GCP架构图
AWS架构图

提示词: 使用**AWS图标**生成一个AWS架构图。在这个图中用户连接到托管在实例上的前端。

AWS架构图
Azure架构图

提示词: 使用**Azure图标**生成一个Azure架构图。在这个图中用户连接到托管在实例上的前端。

Azure架构图
猫咪素描

提示词: 给我画一只可爱的猫。

猫咪绘图

工作原理

本应用使用以下技术:

  • Next.js:用于前端框架和路由
  • Vercel AI SDKai + @ai-sdk/*用于流式AI响应和多提供商支持
  • react-drawio:用于图表表示和操作

图表以XML格式表示可在draw.io中渲染。AI处理您的命令并相应地生成或修改此XML。

多提供商支持

  • AWS Bedrock默认
  • OpenAI / OpenAI兼容API通过 OPENAI_BASE_URL
  • Anthropic
  • Google AI
  • Azure OpenAI
  • Ollama
  • OpenRouter
  • DeepSeek

注意:claude-sonnet-4-5 已在带有AWS标志的draw.io图表上进行训练因此如果您想创建AWS架构图这是最佳选择。

快速开始

使用Docker运行推荐

如果您只想在本地运行最好的方式是使用Docker。

首先如果您还没有安装Docker请先安装获取Docker

然后运行:

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

在浏览器中打开 http://localhost:3000

请根据您首选的AI提供商配置替换环境变量。可用选项请参阅多提供商支持

安装

  1. 克隆仓库:
git clone https://github.com/DayuanJiang/next-ai-draw-io
cd next-ai-draw-io
  1. 安装依赖:
npm install
# 或
yarn install
  1. 配置您的AI提供商

在根目录创建 .env.local 文件:

cp env.example .env.local

编辑 .env.local 并配置您选择的提供商:

  • AI_PROVIDER 设置为您选择的提供商bedrock, openai, anthropic, google, azure, ollama, openrouter, deepseek
  • AI_MODEL 设置为您要使用的特定模型
  • 添加您的提供商所需的API密钥

请参阅上面的多提供商支持部分了解特定提供商的配置示例。

  1. 运行开发服务器:
npm run dev
  1. 在浏览器中打开 http://localhost:3000 查看应用。

部署

部署Next.js应用最简单的方式是使用Next.js创建者提供的Vercel平台

查看Next.js部署文档了解更多详情。

或者您可以通过此按钮部署: Deploy with Vercel

请确保在Vercel控制台中设置环境变量,就像您在本地 .env.local 文件中所做的那样。

项目结构

app/                  # Next.js App Router
  api/chat/           # 带AI工具的聊天API端点
  page.tsx            # 带DrawIO嵌入的主页面
components/           # React组件
  chat-panel.tsx      # 带图表控制的聊天界面
  chat-input.tsx      # 带文件上传的用户输入组件
  history-dialog.tsx  # 图表版本历史查看器
  ui/                 # UI组件按钮、卡片等
contexts/             # React上下文提供者
  diagram-context.tsx # 全局图表状态管理
lib/                  # 工具函数和辅助程序
  ai-providers.ts     # 多提供商AI配置
  utils.ts            # XML处理和转换工具
public/               # 静态资源包括示例图片

待办事项

  • 允许LLM修改XML而不是每次从头生成
  • 提高形状流式更新的流畅度
  • 添加多AI提供商支持OpenAI, Anthropic, Google, Azure, Ollama
  • 解决超过60秒的会话生成失败的bug
  • 在UI上添加API配置

支持与联系

如果您觉得这个项目有用,请考虑赞助来帮助我托管在线演示站点!

如需支持或咨询请在GitHub仓库上提交issue或联系维护者

  • 邮箱me[at]jiang.jp

Star历史

Star History Chart