deepseek-design

195Star67Fork2Issue29Watching

由 iPolloWork 为 DeepSeek Harness 提供的可视化创作套件,包含 iDesign、iPPT、iVideo 三个原生插件,让 Harness 能直接生成与精调网页、海报、幻灯片和短视频。

语言
JavaScript
License
NOASSERTION
分支
main
ai-designdeepseekdeepseek-harnessdesigndesign-studiodsh-pluginipolloworkipollowork-plugin

安装

$ dsh plugin --profile web add github:Devin-AXIS/deepseek-design

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

一句话定位

DeepSeek Design 是 iPolloWork 为 DeepSeek Harness 做的一套原生可视化创作套件,把"网页/海报/卡片(iDesign)"、"幻灯片(iPPT)"、"短视频(iVideo)"三种作品形态以独立的对话视图直接嵌入 Harness,复用同一个会话、模型和工作区,作品以真实 HTML/CSS/项目文件落到当前目录而不是封闭云端画布。

核心能力

  • 在 Harness 对话中提供 Design 视图(iDesign),生成和精调网站、App 原型、海报、信息卡、数据报告等非幻灯片形态作品,附 29 个精选模板
  • 在 Harness 对话中提供 PPT 视图(iPPT),按页生成与精调幻灯片,支持 PDF/PPTX 导出,附 5 个幻灯片模板,与 iDesign 分目录存放互不覆盖
  • 在 Harness 对话中提供 Video 视图(iVideo),用 iPolloWork 同款 HyperFrames 时间线、可视化编辑器、动画与素材做短视频,附 27 个可编辑视频模板并支持原生视频导出
  • 选区级 Ask AI:选中元素后把文件路径、CSS 定位、文字、alt、src 等上下文组装成对话草稿,必须由用户确认发送,不会自动提交
  • 真实工作区文件 + 模板原子替换:所有作品落在 Harness 工作区(design/<sessionId>/design/<sessionId>-ippt/video/<sessionId>/),保存带版本冲突检测,模板应用先在隔离目录校验再原子替换
  • 三个插件共享 iPolloWork Studio 协议但项目目录相互隔离,可单独装任意一个、独立安装不会拉其他两个

技术实现

  • 语言: TypeScript(子包 package.json#type: module,主源码在 source/plugins/*/src/,构建产物在 packages/*/lib/);Studio 端用 React 18 + Vite + Tailwind CSS v4
  • 关键依赖: @deepseek-ai/cordis@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-workspace@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation 作为 peer;deepseek-ivideo 额外引入 puppeteer-coresharponnxruntime-nodefontkithono 等用于驱动 HyperFrames 预览
  • 架构模式: DSH 适配器插件 —— 每个子包通过 cordis.patch.yml 在宿主里插入一条 id: ipollowork-{design,ppt,video}-studio 的 Cordis 插件,client.tsxctx.slots.inject("conversation.view") 在 Harness 对话里注册 Design / PPT / Video 视图组件,index.tsctx.webServer.register/ipollowork-design//ipollowork-ppt//ipollowork-video/ 前缀挂到 Harness 内置 Web 服务器上托管 Studio 静态资源与受限 API
  • 入口文件: source/plugins/deepseek-idesign/src/index.ts(iDesign 主体)、source/plugins/deepseek-ippt/src/index.ts(iPPT 复用了 iDesign 工厂)、source/plugins/deepseek-ivideo/src/index.ts(iVideo 主体 + runtime.ts 驱动 HyperFrames 子进程),客户端入口 source/plugins/*/src/client.tsx

适用场景

在 DeepSeek Harness 里希望直接产出可保存、可继续手动修改的设计稿/H5/海报/信息卡/数据报告,或需要快速做一份能导出 PDF/PPTX 的演示文稿,又或是想用同款 HyperFrames 流程图/动画模板做短视频/产品 demo 的用户。三个插件各自独立,最常见的搭配是只装 iDesign 做网页类设计、只装 iPPT 做幻灯片、只装 iVideo 做动态视觉,全部安装也不会互相覆盖;作品始终是工作区里的真实文件,方便脚本/CI 二次处理。

前置依赖与兼容性

依赖最低版本说明
DSH>=0.0.1-rc.1,开发期锁定 0.1.0-rc.6三份子包 peerDependencies 均声明 @deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-workspace 需要 >=0.0.1-rc.1 <0.2.0-0;开发依赖中实际锁定的版本是 0.1.0-rc.6
Node.js^22.19.0>=24.0.0README 第 79 行声明;只有 deepseek-ivideopackage.json#engines.node 显式写 >=22,iDesign/iPPT 由 Node 兼容性以 DSH 宿主要求为准
pnpm未强制要求README 提到 DSH 插件管理需要 pnpm,与本套件无关
平台跨平台(macOS / Windows / Linux)三份 package.json 都没有声明 os/cpu 限制;iVideo 的 HyperFrames 子进程会尝试 32 个端口并安全回退
原生模块sharponnxruntime-nodefontkit仅出现在 packages/deepseek-ivideo/package.json#dependencies,iDesign/iPPT 是纯 JS;安装时会拉预编译二进制
浏览器运行时Chromium(由 puppeteer-core 在首次启动时通过 @puppeteer/browsers 下载)iVideo 预览会派生 HyperFrames Studio 子进程,不会硬打包浏览器二进制

安装方式

dsh plugin --profile web add github:Devin-AXIS/deepseek-design

配置项

配置类型说明默认值
本插件无需额外配置三份子包都没有定义 Cordis Schemacordis.patch.yml 也不读任何字段;createDeepSeekDesignStudioPlugin 仅在编译期接收 mode/routeRoot/studioTitle/defaultTemplateId/projectSuffix 等构造参数。运行时的所有交互(选区上下文、工作区 ID、会话 ID、模板 ID)都通过 URL 参数或 PostMessage 在 Studio 与 Harness 之间传递

常见问题

Q: 这个仓库和它打包出来的 npm 包是什么关系?

A: 仓库根不发布 npm 包,它是三个独立可安装插件的发行与协同仓库:packages/deepseek-idesignpackages/deepseek-ipptpackages/deepseek-ivideo 各自作为独立 npm 包发布;source/ 是这三份适配器的源码,source/shared/ 是它们共用的 Studio 协议与类型,需要修改适配器时改 source/plugins/...,不要直接改 packages/ 下的生成产物(README 第 140–158 行)。

Q: 三个插件分别装哪个就够了,能不能只装一个?

A: 可以单独装任意一个,互不依赖:只做网页/海报/卡片装 deepseek-idesign;只做幻灯片装 deepseek-ippt;只做短视频装 deepseek-ivideo。三个装在一起也完全可以同时存在,因为各自的项目目录隔离(design/<sessionId>/design/<sessionId>-ippt/video/<sessionId>/),不会相互覆盖。

Q: 这些作品的真实文件保存在哪,能继续手动编辑吗?

A: 所有作品都落在 Harness 工作区里,是真实的 HTML、CSS、设计令牌、manifest.json 等文件,不是云端不可编辑的封闭画布。iDesign/iPPT 项目在 design/<sessionId>/design/<sessionId>-ippt/,iVideo 项目在 video/<sessionId>/;你可以直接用编辑器改这些文件,也可以让 AI 通过对话修改,保存带冲突检测,模板应用是"先暂存再原子替换"。

Q: 安装时会顺带下载 iPolloWork 桌面端吗?

A: 不会。每个 npm 包都自带浏览器资源和 HyperFrames 运行时(ivideo 内置定制版 0.7.60),安装这些包不会去拉 iPolloWork 桌面应用,也不会去安装或启动它。每个插件只加载自己的 Studio,三个独立 npm 包可以分开安装。

Q: iVideo 的第一个版本有哪些限制?

A: iVideo 的首发版本不包含语音克隆、语音设置以及 iPolloWork 全局 Design System 抽屉;除此之外核心能力(HyperFrames 时间线、可视化编辑、动画、素材、27 个可编辑视频模板、整段与选区级 Ask AI、ipollowork_video_validate 校验工具、原生视频导出)均已可用。

Q: Ask AI 点了之后会直接发出消息吗?

A: 不会。Ask AI 只把"目标元素 + 文件路径 + CSS 定位 + 当前样式(文字 / alt / src 截断到 240~1000 字)"组装成一段草稿填进当前对话,必须由你点发送才会提交;插件也不会自动执行任何工具调用。

Q: 报错了或启动不了 iVideo 怎么处理?

A: 先确认 Node ≥ 22 且未污染工作区内的 video/design/ 符号链接;iVideo 会拒绝目录穿越和逃逸工作区的符号链接,端口冲突时会安全回退(共尝试 32 个端口),并发启动会被合并。如果 HyperFrames 启动超时(默认 45 秒),插件会直接报错而不是僵尸化;如果 Harness 主机掉线,IPC disconnect 时 preview-owner-guard 会把进程组关掉,不会留孤儿。

上手难度

入门 — DSH 用户在新对话里点 Design / PPT / Video 三选一即可开用,最常用的零配置路径是"AI 生成 → Studio 精调 → 保存/导出";想榨干每个插件(如带选区上下文、改 manifest.json、设计令牌)需要再读子包 README 与 iPolloWork 主仓库。

已知问题与限制

  • iVideo 首版功能裁剪:iVideo 首发版不包含语音克隆、语音设置、iPolloWork 全局 Design System 抽屉;其他 HyperFrames 时间线、动画、27 个视频模板、ipollowork_video_validate 模型校验工具、原生视频导出均可用(packages/deepseek-ivideo/README.md:30
  • Publishing 在 Harness 端被禁用:iDesign Studio 内调用的 callStorage 会返回 "Publishing is owned by iPolloWork and is disabled in the DeepSeek Harness host.",所以"发布到 iPolloWork 模板市场"按钮在 DSH 里不会真的执行(source/plugins/deepseek-idesign/studio/src/deepseek-client.ts:79
  • iVideo 强依赖宿主环境:iVideo 需要 sharp / onnxruntime-node / fontkit 预编译原生模块,并会在首次启动时通过 @puppeteer/browsers 下载 Chromium;如果 32 个端口都被占用,会直接抛 "No available local port could be found for HyperFrames Studio."packages/deepseek-ivideo/package.json:58-71source/plugins/deepseek-ivideo/src/runtime.ts:295-307
  • 路径写入有强约束:写入路径必须落在工作区的 design/video/<sessionId>/ 前缀内,符号链接不能逃逸工作区,相对路径里含 .. 或绝对路径会返回 400/403;这意味着"跨工作区移动项目"会被原样拒绝(source/shared/studio-host/src/http.ts:35-58
  • DSH 仍处开发者预览:Harness 主版本号与插件 peer 范围(>=0.0.1-rc.1 <0.2.0-0)较宽,DSH 升级到下一个主版本时本套件需要重新验证(README 第 76–77 行)
  • iVideo 不暴露调试窗口源码路径:HyperFrames Studio 是发布到 lib/hyperframes/ 的预编译 ESM(含 CLI 与客户端),错误信息只返回 output 字段(最长 32 KB),自定义 build 时不要把上游 HyperFrames 视为可改的源