mshen6666/HTML-PPT-Editor 教程
2026-07-10 3391434
2026-07-10 0
Honghurumeng/oc_sdk_ppt 是一个基于 Next.js 和 @opencode-ai/sdk 的本地 PPT 生成 Agent,真实入口在 GitHub 仓库 https://github.com/Honghurumeng/oc_sdk_ppt;想快速拿代码,可以在 GitHub 页面点 Code 下载 ZIP,也可以直接 clone 到本地。它的路线是:网页里填写主题与约束,后端驱动 LLM 产出大纲初稿和精修稿,人工确认后生成 HTML slides,再在本地构建 deck.pptx。
这个项目不是只返回一份 PPT 文件的黑盒按钮。README 写得很清楚,它把“大纲优先”放在前面:先生成大纲,前端允许编辑和切换初稿、精修版、当前编辑内容,再进入 HTML slides 和 PPTX 构建。第一次打开时,建议从简单主题开始,并确认仓库、依赖、模型配置和本地输出目录。

仓库默认分支是 main,根目录能看到 README.md、package.json、opencode.example.json、src、scripts、pptx、public 和 images。只想浏览源码,直接打开 GitHub 页面就够;要本地启动,clone 会比 ZIP 更方便后续更新。
git clone https://github.com/Honghurumeng/oc_sdk_ppt.git
cd oc_sdk_ppt
npm install
npm run dev
开发服务启动后访问 http://localhost:3000。前置条件里要有 Node.js 20+;README 还提醒 Playwright 运行环境需要准备好,macOS 上建议安装 Google Chrome,或者执行 npx playwright install 安装 Playwright 自带浏览器。项目依赖里能看到 next、react、@opencode-ai/sdk、playwright-core、pptxgenjs 和 sharp。
首次启动容易停在模型配置上。项目的模型列表来自 opencode.json,但这个文件通常不会提交到仓库,因为里面可能包含 API key。根目录提供了 opencode.example.json,本地可以先复制一份:
cp opencode.example.json opencode.json
复制后,把 provider 里的 options.apiKey、baseURL 和 models 按自己的模型服务填好。示例文件里有 openai provider,也有兼容 OpenAI 格式的 myprovider。页面右上角的“LLM 配置”也能写入 opencode.json,接口会对 API key 做脱敏读取,写入后还能重载内嵌 opencode server。
如果本地已有外部 opencode server,可以用 OPENCODE_BASE_URL=http://localhost:5937 连接。走内嵌 server 时,默认 host 是 127.0.0.1、port 是 5937,端口占用会递增重试;Basic Auth 用户名固定为 opencode,密码可用 OPENCODE_SERVER_PASSWORD 指定。

创建任务时,后端会在本地启动任务流程。README 里的端到端说明写到,POST /api/ppt/jobs 会创建 job,生成 workspace/jobs/,再新建会话做检查与精修,输出 workspace/jobs/。状态进入 awaiting_approval 后,前端可以继续编辑大纲。
确认大纲后,POST /api/ppt/jobs/ 会进入生成阶段。preview 模式只生成 HTML slides 并在页面 iframe 里预览;pptx 模式会在校验 HTML 后构建 deck.pptx。生成出来的页面位于 workspace/jobs/、02.html 这一类文件里,最终下载入口是 GET /api/ppt/jobs/。
本地检查还有两条脚本线:scripts/validate_slides.mjs 用 Playwright 校验 HTML slide 的 720pt × 405pt 尺寸和 overflow;scripts/build_deck.cjs 会调用 pptx/scripts/html2pptx.js,把 slides 目录转换成 PPTX。构建失败时,项目会尝试让 LLM 修复 HTML,再重试本地构建。
项目不只做一次性生成。HTML slides 支持按意见调整,接口 POST /api/ppt/jobs/ 可以修改全部页面或指定页面,并为变更页创建版本快照;POST /api/ppt/jobs/ 可以切换某页激活版本;切换后已有 PPTX 会失效,需要通过 POST /api/ppt/jobs/ 用当前 HTML slides 重新渲染。
README 把这个项目定位为“单机/本地”范式,任务状态写在同一个 Next 进程和本地 workspace/ 目录里。部署到普通服务器前,要把 opencode.json 的 key 管好;部署到无状态 serverless 前,还要重新处理任务持久化、后台执行和文件存储。
用 Honghurumeng/oc_sdk_ppt 时,把三件事放在前面:从 GitHub 页面拿到代码,补好 opencode.json 或外部 opencode server,生成后去 workspace/jobs/ 看 outline.md、slides 和 deck.pptx。这样入口、模型和产物位置都清楚,后面调整版本、重新渲染 PPTX 就不会绕路。