news 2026/5/14 10:51:02

Smart Excalidraw ----基于 AI 的智能图表生成工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Smart Excalidraw ----基于 AI 的智能图表生成工具

Smart Excalidraw

用自然语言,绘制专业图表
最近看到一个项目用AI+开源图表工具Excalidraw 做智能绘图,但是结果不尽人意,于是自己新建了后端基础智能体进行编排图表,效果有所改善,但未完全可用。
Smart Excalidraw 是一个基于 AI 的智能图表生成工具,通过自然语言描述即可生成专业的 Excalidraw 图表。项目采用前后端分离架构,前端使用 Next.js,后端使用 Python FastAPI,集成了多种大语言模型提供商如openai、qwen、ollama。
github网址

✨ 核心特性

🎯 AI 驱动,效果出众

  • 通过先进的大语言模型理解你的需求,生成结构清晰、布局合理的专业级图表
  • 支持多种 LLM 提供商:OpenAI、Anthropic、Google、Mistral 等
  • 支持多模态输入:文本描述 + 图片识别

🔗 独创连接算法

  • 采用智能箭头优化算法,自动计算最佳连接点
  • 确保图表井然有序、逻辑清晰,告别混乱的线条交叉
  • 自动布局优化,元素间距智能调整

📊 丰富图表类型

  • 支持 20+ 种图表类型,包括:
    • 流程图 (Flowchart)
    • 架构图 (Architecture)
    • 时序图 (Sequence)
    • ER 图 (ER Diagram)
    • 思维导图 (Mind Map)
    • 网络拓扑图 (Network Topology)
    • 等等…
  • AI 可根据描述自动选择最合适的图表类型

🎨 完美 Excalidraw 集成

  • 生成的图表完全基于 Excalidraw 格式
  • 可以在画布上自由编辑、调整样式、添加细节
  • 实现 AI 生成与手动精修的完美结合

⚡ 开箱即用

  • 只需配置一个 AI API 密钥即可开始使用
  • 所有配置保存在本地,隐私安全有保障
  • 支持流式响应,实时查看生成进度

🤖 多智能体系统

  • 规划智能体:分析用户需求,制定生成计划
  • 生成智能体:根据规划生成 Excalidraw 代码
  • 优化智能体:优化代码布局,调整元素间距
  • 验证智能体:验证 JSON 格式,检查必填字段

🏗️ 技术架构

前端技术栈

  • Next.js 16- React 框架
  • React 19- UI 库
  • Excalidraw- 图表绘制引擎
  • Tailwind CSS 4- 样式框架
  • Monaco Editor- 代码编辑器

后端技术栈

  • FastAPI- 高性能异步 Web 框架
  • Langchain- LLM 应用开发框架
  • Pydantic- 数据验证
  • NetworkX- 图布局算法
  • SSE (Server-Sent Events)- 流式响应

项目结构

Smart-Excalidraw/ ├── frontend/ # Next.js 前端 │ ├── app/ # Next.js App Router │ ├── components/ # React 组件 │ ├── lib/ # 工具函数 │ └── public/ # 静态资源 ├── backend/ # Python FastAPI 后端 │ ├── app/ │ │ ├── api/v1/ # API 路由 │ │ ├── core/ # 核心功能 │ │ │ ├── agents/ # Langchain 智能体 │ │ │ ├── llm/ # LLM 客户端 │ │ │ ├── excalidraw/ # Excalidraw 处理 │ │ │ └── layout/ # 布局引擎 │ │ ├── models/ # 数据模型 │ │ └── utils/ # 工具函数 │ └── data/ # 数据文件 └── docs/ # 文档

🚀 快速开始

前置要求

  • Node.js>= 18.0.0
  • Python>= 3.9
  • pnpmnpmyarn
  • 一个 LLM API 密钥(OpenAI、Anthropic、Google 等)

1. 克隆项目

gitclone https://github.com/heise199/Smart-Excalidraw.gitcdSmart-Excalidraw

2. 启动后端服务

cdbackend pipinstall-r requirements.txt uvicorn app.main:app --reload --port8000

后端服务将在http://localhost:8000启动。

3. 启动前端服务

cdfrontendpnpminstallpnpmdev

前端服务将在http://localhost:3000启动。

4. 配置 LLM

  1. 在浏览器中打开http://localhost:3000
  2. 点击右上角的“配置 LLM”按钮
  3. 选择提供商类型(OpenAI、Anthropic、Google 等)
  4. 填入你的 API Key
  5. 选择模型(推荐使用claude-sonnet-4.5,效果最佳)
  6. 保存配置

5. 开始使用

在输入框中用自然语言描述你的需求,例如:

  • “画一个用户登录的流程图”
  • “创建一个微服务架构图,包含网关、认证服务和业务服务”
  • “设计一个电商系统的数据库 ER 图”

AI 会自动生成图表,你可以在画布上直接编辑和调整。

📖 详细文档

开发文档

  • 前后端集成指南 - 前后端集成详细说明
  • 后端实现总结 - 后端架构和功能说明
  • Excalidraw API 文档 - Excalidraw 元素 API 参考

前端文档

  • 前端 README - 前端详细说明
  • API 集成文档 - API 集成说明
  • 配置同步文档 - 配置同步机制

后端文档

  • Ollama/Qwen 设置指南 - 本地模型设置
  • 模型输入指南 - 模型输入格式说明

🔧 配置说明

后端配置

后端配置通过环境变量或.env文件管理:

# .env 文件示例CORS_ORIGINS=http://localhost:3000,http://localhost:3001HOST=0.0.0.0PORT=8000LOG_LEVEL=INFOMCP_ENABLED=trueMCP_SERVER_URL=http://localhost:3002

前端配置

前端配置保存在浏览器本地存储中,通过 UI 界面进行管理。也可以直接编辑frontend/data/llm-configs.json文件。

📡 API 文档

生成图表

POST/api/v1/generate

{"config":{"name":"My OpenAI","type":"openai","baseUrl":"https://api.openai.com/v1","apiKey":"sk-...","model":"gpt-4"},"userInput":"画一个用户登录流程图","chartType":"flowchart","image":null,"currentCode":null,"stream":true}

响应格式(SSE):

event: plan data: {"analysis": "...", "chartType": "flowchart", ...} event: progress data: {"stage": "generating", "message": "正在生成...", "progress": 50} event: chunk data: {"content": "..."} event: done data: {"code": "[...]", "optimized": true, "validation_passed": true}

获取模型列表

GET/api/v1/models?type=openai&baseUrl=...&apiKey=...

配置管理

GET/api/v1/config- 获取配置

POST/api/v1/config- 保存配置

详细 API 文档请访问:http://localhost:8000/docs(Swagger UI)

🛠️ 开发指南

本地开发

同时运行前后端

终端 1 - 前端:

cdfrontendpnpmdev

终端 2 - 后端:

cdbackend uvicorn app.main:app --reload --port8000

代码规范

前端:

  • 使用 ESLint 进行代码检查
  • 遵循 React Hooks 最佳实践

后端:

  • 使用 Black 进行代码格式化
  • 使用 Ruff 进行代码检查
  • 使用 MyPy 进行类型检查

测试

# 后端测试cdbackend pytest# 前端测试(待实现)cdfrontendpnpmtest

🐳 Docker 部署

使用 Docker Compose

docker-compose up -d

单独构建

前端:

cdfrontend docker build -t smart-excalidraw-frontend.docker run -p3000:3000 smart-excalidraw-frontend

后端:

cdbackend docker build -t smart-excalidraw-backend.docker run -p8000:8000 smart-excalidraw-backend

❓ 常见问题

Q: 推荐使用哪个 AI 模型?

A: 强烈推荐使用claude-sonnet-4.5,它在理解需求和生成图表方面表现最佳。GPT-4 和 Gemini Pro 也是不错的选择。

Q: 数据安全吗?

A: 所有配置信息仅保存在你的浏览器本地(前端)或本地文件系统(后端),不会上传到任何第三方服务器。只有你配置的 LLM API 会收到请求。

Q: 支持哪些图表类型?

A: 支持流程图、架构图、时序图、ER 图、思维导图、网络拓扑图等 20+ 种类型,AI 会自动选择最合适的类型。

Q: 生成的图表可以修改吗?

A: 当然可以!生成后可以在 Excalidraw 画布上自由编辑,包括调整位置、修改样式、添加元素等。所有修改都会实时同步到代码编辑器。

Q: 如何修改已生成的图表?

A: 在修改模式下,你可以描述想要修改的内容,AI 会基于当前图表进行修改,而不是重新生成。

Q: 支持图片输入吗?

A: 是的,支持上传图片,AI 可以识别图片内容并生成相应的图表。

Q: 后端服务无法启动?

A: 请检查:

  1. Python 版本 >= 3.9
  2. 已安装所有依赖:pip install -r requirements.txt
  3. 端口 8000 未被占用
  4. 查看日志输出获取详细错误信息

Q: 前端无法连接后端?

A: 请检查:

  1. 后端服务是否正在运行
  2. 前端配置的后端 URL 是否正确
  3. CORS 配置是否包含前端地址
  4. 浏览器控制台是否有错误信息

🤝 贡献指南

欢迎贡献代码!请遵循以下步骤:

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

贡献方向

  • 🐛 修复 Bug
  • ✨ 添加新功能
  • 📝 完善文档
  • 🎨 优化 UI/UX
  • ⚡ 性能优化
  • 🔧 代码重构

📄 许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。

🙏 致谢

  • Excalidraw - 强大的绘图工具
  • Langchain - LLM 应用开发框架
  • FastAPI - 现代 Web 框架
  • Next.js - React 框架

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/12 22:11:57

客厅大屏上网新体验:TV-Bro智能电视浏览器深度解析

客厅大屏上网新体验:TV-Bro智能电视浏览器深度解析 【免费下载链接】tv-bro Simple web browser for android optimized to use with TV remote 项目地址: https://gitcode.com/gh_mirrors/tv/tv-bro 你是否曾在客厅沙发上,手握遥控器却对电视上网…

作者头像 李华
网站建设 2026/5/12 23:03:35

AquaAI水系统遥感智能监测技术暨60个案例覆盖多源数据处理、水体动态监测、水质AI反演与预警系统开发

随着全球水资源日益紧缺与水环境问题日益严峻,传统的水体监测方法已难以满足大范围、高时效、精细化的管理需求。遥感技术凭借其覆盖广、周期短、信息丰富的优势,正逐渐成为水环境监测的核心手段。然而,面对海量多源的遥感数据,如…

作者头像 李华
网站建设 2026/5/12 23:04:47

Kotaemon营养搭配助手:膳食均衡分析

Kotaemon营养搭配助手:膳食均衡分析 在健康管理日益智能化的今天,人们不再满足于“少吃多动”这类泛泛而谈的建议。面对糖尿病饮食控制、孕期营养补充、健身增肌食谱等具体需求,用户渴望的是有依据、可信赖、个性化的科学指导。然而&#xff…

作者头像 李华
网站建设 2026/5/12 23:03:28

5分钟零基础玩转GPT2-Chinese:中文AI写作的超级入门指南

5分钟零基础玩转GPT2-Chinese:中文AI写作的超级入门指南 【免费下载链接】GPT2-Chinese Chinese version of GPT2 training code, using BERT tokenizer. 项目地址: https://gitcode.com/gh_mirrors/gp/GPT2-Chinese 还在为中文写作发愁吗?想要体…

作者头像 李华
网站建设 2026/5/12 23:03:53

Kotaemon如何处理长上下文记忆问题?这里有答案

Kotaemon如何处理长上下文记忆问题?这里有答案 在智能客服、虚拟助手和企业级对话系统日益普及的今天,一个核心挑战始终困扰着开发者:如何让AI真正“记住”用户之前说过的话,并在多轮交互中保持逻辑连贯? 我们都有过这…

作者头像 李华
网站建设 2026/5/13 14:38:20

【国防科大最新研究】BeamformNet:基于深度学习的波束成形方法 —— 隐式空间信号聚焦与噪声抑制【附python代码】

深度学习波束成形双赋能:DoA估计突破复杂场景瓶颈的核心原理 文章来源 微信公众号 EW Frontier DoA估计作为阵列信号处理的基石任务,早已渗透到声学源定位、雷达探测、无线通信等多个关键领域——其核心目标是通过传感器阵列接收的信号,精准…

作者头像 李华