OpenMAIC 新手教程

第 7 章:部署与导出

课可以导出带走;部署默认仍是浏览器存储,数据库是可选项。

1导出格式

格式用途
PowerPoint (.pptx)可再编辑的幻灯片,含图、表、LaTeX
交互 HTML自包含网页,带着仿真
课堂 ZIP(.maic.zip)完整课堂 + 媒体,备份或分享

导出课堂或资源包时,会把交互页引用的外部资源(KaTeX、Three.js、Tailwind CDN、Google Fonts、图片)尽量打成 data: URI,导入内网实例后可离线播放。拉不下来的资源会报出来并保留原 URL。这个功能出现之前导出的课仍指向 CDN,要重新导出才有离线能力。

2可选:导出 MP4

「导出视频」会在浏览器里打一份 Hyperframes 工程。转成 MP4 需要 Node 22 上的 Chromium + FFmpeg,所以跑在独立的 render-service 容器里,而不是主应用里。

docker compose --profile video-export up --build

应用通过 RENDER_SERVICE_URL 自动发现服务。没开这个 profile 时,退化为下载工程 ZIP,你自己用 CLI 渲染。

3可选:PostgreSQL 持久化

默认不用数据库。要服务端存课、可恢复的 Agent 会话,用 server-persistence profile(应用 + Postgres 两个容器,持久化 HTTP 嵌在 /api/persistence):

cp .env.example .env.local
printf '\nDATABASE_URL=postgres://openmaic:openmaic-dev@postgres:5432/openmaic\nPERSISTENCE_DEV_TOKEN=openmaic-local-dev\n' >> .env.local
NEXT_PUBLIC_PERSISTENCE=1 NEXT_PUBLIC_PERSISTENCE_TOKEN=openmaic-local-dev \
  docker compose --profile server-persistence up --build
NEXT_PUBLIC_PERSISTENCE 是构建期开关,打进浏览器包。开了就必须同时有能用的 DATABASE_URL 和匹配的 token,否则首页会提示持久化不可用。NEXT_PUBLIC_PERSISTENCE_TOKEN 会出现在公开 JS 里,不能当生产密钥,只适合本机或受信网络的单用户。生产要用真正的会话鉴权。
OpenMAIC 新手教程 · 清华大学 MAIC 团队开源的多代理交互课堂
GitHub 仓库 · 在线体验 · MIT 开源