Skip to content

Latest commit

 

History

History
233 lines (169 loc) · 10.6 KB

File metadata and controls

233 lines (169 loc) · 10.6 KB

CanvasAnvil 主视觉

CanvasAnvil

面向图表绘制、室内设计与 PPT 的 AI 多画布创作平台。

version license React TypeScript Vite workspaces PRs welcome

创作画布 | PPT 展示 | 视频教程 | Skills | 快速开始 | English

⭐ 如果 CanvasAnvil 对你有帮助,欢迎给仓库点个 Star,也可以 Fork 一份继续扩展你自己的画布工作流。

CanvasAnvil 将图表、室内设计工作流和 PPT 制作整合到一个统一工作区中。

🔷 图表绘制画布

将结构化提示快速转成清晰图表,适合学术框架、系统架构、实施路线和课程导图,并在同一画布中持续迭代布局、节点关系与说明文案。

成品实例

图表示例:学术研究框架图
学术研究框架图
图表示例:智能问答系统架构图
智能问答系统架构图
图表示例:项目实施路线图
项目实施路线图
图表示例:课程设计思维导图
课程设计思维导图

🏠 室内设计画布

把规划板、2D 布局、材质方案、渲染编排和材料清单输出串成一条完整的室内设计交付链路。

成品实例

装修平面布置图
装修平面布置图
地面铺装图
地面铺装图
顶棚平面图
顶棚平面图
墙体定位图
墙体定位图
机电综合图
机电综合图
立面索引图和室内立面图
立面索引图 + 室内立面图
节点详图
节点详图

📑 PPT 演示画布

通过“先大纲、后视觉”的方式生成完整演示文稿,并导出可编辑 PPT、PDF 或图片版 PPT。

成品实例

AI 时代的高效内容创作整套预览 AI 时代的高效内容创作 智能协作驱动未来增长整套预览 智能协作驱动未来增长
AI 驱动业务创新整套预览 AI 驱动业务创新 绿色低碳转型与智慧园区建设整套预览 绿色低碳转型与智慧园区建设

🎨 创作画布

画布 核心能力 常见输出
图表绘制 结构化图表生成与局部编辑 流程图、架构图、逻辑图
室内设计 室内方案规划、图纸协同与交付打包 概念板、二维图纸、渲染任务单、材料清单
PPT 演示 结构化演示文稿生成与多种导出 演示文稿、汇报幻灯片、可编辑演示稿、提案稿

🌈 版本发布

当前版本:v2.1.0

本分支未发布内容 —— 整个项目的结构性重构,以及重构过程中发现并修复的问题。完整列表见 CHANGELOG.md

做减法

  • 只保留三个画布:图表绘制、室内设计、PPT 演示。海报、产品、信息图画布已移除。
  • 移除内嵌的 pptist-lab 编辑器;可编辑演示稿直接导出 .pptx
  • 统一为一条 OpenAI 兼容请求路径。厂商列表不仅从应用中移除,也从 cad-skillppt-skill 两个 skill 包中移除 —— 它们各自还带着一份九厂商的图像注册表,其中八个根本没有可用的接口地址。
  • 移除与 Vite 客户端重复的 Next.js 移植版本,以及旧 PptWorkspace 藏着的约 900 行不可达代码。

做结构

  • 仓库拆分为 client/server/contracts/resources/;每个工作区都是同样的三层:纯函数模块、按功能划分的 hook、一个界面一个文件。规范写在 docs/architecture.md
  • PptCanvas.tsx 从 5,300 行降到约 2,250 行,并且自身不再渲染任何界面。
  • 共享 UI 组件、存储层、文件处理链路、聊天基础设施和多语言各自只存在一份,不再每个工作区一套。
  • 开启 TypeScript 严格模式并做了分包:首屏加载从 2.89 MB 降到约 700 KB(未压缩)。
  • 260 个测试(npm test,node:test)覆盖重构必须保持不变的纯逻辑。

PPT 工作流

  • 可编辑导出改为即时完成。此前会先进入文本框校对界面,再为每页跑三次模型调用;两页的演示稿要五分钟以上,现在约一秒。
  • 大纲规划智能体现在能看到模板,并据此撰写每页画面描述。此前它凭空发明配色,生图时又压过模板 —— 用深色模板做出来的演示稿是白底的。
  • 挂在某一页上的素材图、以及在交互区上传的图片,现在能真正送达生图模型。此前它们都在调用接口前被丢弃。
  • 交互区工具栏新增两个开关,可指定本次消息是「改图」还是「重画」;两个都不选则仍由模型自行判断。
  • 放映功能重新有了入口 —— 它一直是完整的,只是没有任何地方能进去。

修复

沿途发现并修复 21 处缺陷,包括每个聊天面板都存在的无限渲染循环、CAD 中四处吞掉补丁失败的 catch 块,以及会把整段对话写进控制台的服务端调试日志。

🌐 在线使用

当前在线访问地址:

🎬 视频教程

🧰 Skills

CanvasAnvil 为每个画布都提供了专用本地 skill,用来保证工作流稳定、输出一致,而不是把所有任务都塞进同一条通用提示链。

  • flow-skill · 图表生成与打包 输出整洁的图表资源,并默认跳过独立 HTML 预览。
  • cad-skill · 室内设计交付流程 导出图纸打包结果与 CSV 材料清单,便于后续交付。
  • ppt-skill · 完整演示稿生产 强制先确认大纲,再生成整套演示稿,并导出可编辑 PPT、PDF 或图片版 PPT。

所有 skill 默认使用宿主文本模型。只有生图能力需要单独配置图片生成供应商。

🚀 快速开始

  1. 安装依赖
npm install
  1. 启动本地开发
npm run dev

默认访问地址:http://127.0.0.1:8001

CanvasAnvil 以单服务部署,详细配置见 deploy/README.zh-CN.md

  1. 运行类型检查
npm run check
  1. 构建生产版本
npm run build

🧪 常用命令

  • npm run dev:在 8001 端口启动应用
  • npm run check:执行 TypeScript 检查
  • npm run build:构建生产版本

📝 开发说明

  • 所有模型调用都走 OpenAI 的 HTTP 协议。想换厂商,只要在设置里把 Base URL 指向它的 OpenAI 兼容端点即可,没有厂商列表可选。
  • AI 配置读取本地应用设置;文本通道和生图通道分别配置。
  • 本地开发依赖 API 服务提供 /api/chat/api/ppt-ai
  • 修改 vite.config.ts 中的本地 API 路由后,需要重启开发服务。
  • server/** 使用相对路径导入:vite.config.ts 会 import 开发中间件(这样 npm run dev 一条命令就带 API),而 Vite 用纯 Node 加载自己的配置文件,不认 @/ 别名。
  • 设置 PROMPT_LOG_DIR 可把拼装好的提示词写入磁盘;默认关闭,因为日志里含有用户内容。

📚 文档

⚖️ 许可证

CanvasAnvil 采用 GNU Affero General Public License v3.0(AGPL-3.0)协议发布。 完整协议内容请查看 LICENSE

💌 联系方式

  • 3524962421@qq.com

💬 加入社区

欢迎加入「智构开源社」群聊,一起交流 CanvasAnvil 及开源项目相关内容。

智构开源社微信群二维码