☰
MemSlides Docker 部署指南:如何在容器环境快速运行实验并安全注入私有配置
2026/10/15 21:51:38 网站建设 项目流程

【免费下载链接】Memslides

A hierarchical memory framework for personalized presentation agents. Try it at memslides.com.

项目地址:https://gitcode.com/gh_mirrors/me/Memslides
点击查看免费下载

MemSlides 是一个面向个性化演示文稿 Agent 的开源分层记忆框架,支持基于用户画像记忆、工作记忆与工具记忆的多轮局部修订。本指南是一份 MemSlides Docker 部署教程:带你用 Docker Compose 在容器环境快速运行内置实验套件,并通过只读挂载等安全方式注入模型 API 密钥与私有配置,几分钟即可跑通第一个实验。

📦 一、MemSlides Docker 镜像里有什么

MemSlides 把演示文稿生成建模为"有状态的创作过程",而不是"一次性转 PPT"。Docker 镜像预装了完整的实验运行时,包括:

  • Python 3.11 + Node.js 20:实验调度器与 PPTX 导出运行时
  • Playwright Chromium + ffmpeg:幻灯片截图与渲染
  • LibreOffice + Poppler + CJK 字体:PDF 导出与文档转换
  • pptxgenjs、sharp 等 Node 依赖:PPTX 导出工具链

镜像定义见 docker/Dockerfile,所有依赖在构建阶段一次性装好并做了完整性校验(Dockerfile 第 82-94 行 会检查关键产物是否存在)。下面是 MemSlides 的核心记忆架构,容器内运行的实验正是围绕这套"长短期记忆 + Agent 循环"展开的:

💡 镜像是实验环境而非常驻服务:每次docker run/docker compose run执行完实验即退出。

🚀 二、Docker Compose 三步快速启动实验

第 1 步:获取代码仓库

git clone https://gitcode.com/gh_mirrors/me/Memslides cd Memslides

第 2 步:构建镜像

docker-compose.yml 默认使用固定版本镜像huohua325/memslides:v2.0.1,也可本地构建:

docker compose build

构建完成后,先用--help验证容器环境是否可用:

docker compose run --rm memslides python -m memslides.experiment --help

第 3 步:运行冒烟实验套件

内置的smoke_minimal套件会生成一张单页幻灯片并导出 PPTX,用于验证整条流水线(配置见 smoke_minimal.yml):

docker compose run --rm memslides python -m memslides.experiment run smoke_minimal \ --output-base /app/.cache/memslides/experiments \ --parallel 1

运行结束后会输出suite_report.json摘要,包含successful成功数与各实验结果。想看更多可用命令与套件写法,可参考 docs/INSTALL.md 和 docker/README.md。

🔐 三、安全注入私有配置的 3 种方式

真实的生成实验需要模型与服务的凭据。官方建议密钥不进镜像、不进 git,按需选择以下任一方式:

方式 1:环境变量(最简单)

公共配置 memslides.yaml 中的占位符会在加载时从进程环境展开,例如:

export MEMSLIDES_RESEARCH_API_KEY=sk-xxxx export MEMSLIDES_DESIGN_MODEL=gpt-4.1

方式 2:.env文件(推荐本地开发)

Compose 会自动读取项目根目录的.env(docker-compose.yml 第 7-9 行)。可参照 .env.example 模板创建本地.env,填入数据目录、Chromium 路径等覆盖项,注意不要把.env提交到仓库。

方式 3:私有 YAML 只读挂载(推荐团队/CI)

把完整的私有配置写入仓库根目录的memslides.private.yaml,然后叠加 docker-compose.private.yml 覆盖层:

docker compose -f docker-compose.yml -f docker-compose.private.yml run --rm memslides \ python -m memslides.experiment run smoke_minimal \ --output-base /app/.cache/memslides/experiments \ --parallel 1

这个覆盖层做了两件关键的事:

  • 设置MEMSLIDES_CONFIG_FILE=/run/secrets/memslides.private.yaml,让运行时切换到私有配置
  • 将宿主机文件只读挂载到容器的/run/secrets/目录(read_only: true),且明确禁止在宿主机自动创建该文件(create_host_path: false)

🛡️ 私有配置安全清单

做法是否推荐
密钥写进镜像构建层❌ 严禁
提交.env、.memslides/、私有 YAML 到 git❌ 严禁
通过环境变量 /.env传入✅
私有 YAML 只读挂载到/run/secrets/✅ 推荐

另外,网络检索与生图属于可选项,smoke_minimal默认全部关闭(web_research_mode: disabled),适合无外网环境验证。

💾 四、实验输出与数据持久化

容器内所有生成产物、缓存与记忆状态都存放在/app/.cache/memslides,并通过VOLUME声明(Dockerfile 第 99 行)。使用docker compose时,它会被绑定到宿主机的./.memslides目录(docker-compose.yml 第 16-17 行):

./.memslides ├── experiments/ # 实验工作区 │ └── smoke_minimal/ │ ├── suite_report.json │ └── .history/ # 日志 └── .memory/ # 记忆数据库状态

由于实验可中断续跑,这个目录不要随意删除:

docker compose run --rm memslides python -m memslides.experiment resume smoke_minimal \ --output-base /app/.cache/memslides/experiments

✅ 五、常见部署问题速查

1. 提示missing-api-key?说明尚未注入模型凭据。按第三节的三种方式之一配置后再运行。

2. 为什么镜像里设置了MEMSLIDES_PLAYWRIGHT_AUTO_INSTALL=0?容器构建阶段已预装 Chromium 与 Node 依赖并创建符号链接,运行时禁止自动安装可避免污染镜像缓存、保证离线可用(Dockerfile 第 7-22 行)。

3. 只想跑验证不想消耗 API?smoke_minimal关闭了联网研究与生图,但仍会调用设计模型;纯环境自检可只跑--help。

4. 实验中断了怎么办?用resume子命令复用已有输出目录继续,避免重复生成。

🎬 六、写在最后

按照本指南,你只需要docker compose build一条构建命令加两条运行命令,就能在容器中获得可复现的 MemSlides 实验环境;私有配置则通过环境变量、.env或只读挂载的私有 YAML 安全注入,密钥全程不落盘到镜像。

跑通smoke_minimal之后,就可以尝试更完整的示例套件 three_round_revision_table_smoke.yml——它模拟了三轮用户反馈的局部修订流程,能直观看到分层记忆在容器环境中的完整效果。MemSlides 的在线 Studio 也提供了 Profile、Memory、Sessions 管理与 PPTX 导出的可视化界面,欢迎结合使用:

【免费下载链接】Memslides

A hierarchical memory framework for personalized presentation agents. Try it at memslides.com.

项目地址:https://gitcode.com/gh_mirrors/me/Memslides
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询