LandPPT Docker部署文档

目录

  1. 项目简介
  2. 系统要求
  3. Docker环境准备
  4. 快速部署
  5. 环境配置
  6. 服务管理
  7. 功能特性
  8. 常见问题
  9. 性能优化
  10. API使用示例

项目简介

LandPPT是一个基于AI的智能PPT生成系统,能够从主题到完整PPT全程自动化处理,支持智能配图、深度研究、演讲稿生成等功能。

核心特性

  • 🚀 一键生成:从主题到完整PPT,全程AI自动化处理
  • 🎨 智能配图:AI自动匹配最适合的图像,支持多源获取和参考图片生成
  • 🔍 深度研究:集成多个搜索引擎,获取最新最全面的信息
  • 🎤 演讲稿生成:智能生成配套演讲稿,支持多种导出格式
  • 👁️ 视觉参考:AI编辑助手支持图像上传和视觉内容分析
  • 📱 响应式设计:完美适配各种设备和屏幕尺寸
  • 🔒 企业级安全:支持本地部署,数据安全可控

系统要求

最低配置

  • CPU: 4核心以上
  • 内存: 8GB RAM
  • 存储: 20GB可用空间
  • 网络: 稳定的互联网连接,也可以内网模型使用ollama或者vllm

推荐配置

  • CPU: 8核心以上
  • 内存: 16GB RAM
  • 存储: 50GB可用空间
  • 网络: 高速互联网连接

软件要求

  • Docker 20.10+
  • Docker Compose 2.0+
  • Git(可选,用于版本管理)

Docker环境准备

1. 安装Docker

Ubuntu/Debian系统
# 更新包管理器
sudo apt update

# 安装Docker
sudo apt install docker.io docker-compose -y

# 启动Docker服务
sudo systemctl start docker
sudo systemctl enable docker

# 将当前用户添加到docker组(可选)
sudo usermod -aG docker $USER
CentOS/RHEL系统
# 安装Docker
sudo yum install docker docker-compose -y

# 启动Docker服务
sudo systemctl start docker
sudo systemctl enable docker

# 将当前用户添加到docker组(可选)
sudo usermod -aG docker $USER
Windows系统
  1. 下载Docker Desktop for Windows
  2. 安装并启动Docker Desktop
  3. 确保WSL2已启用
macOS系统
  1. 下载Docker Desktop for Mac
  2. 安装并启动Docker Desktop

2. 验证Docker安装

# 检查Docker版本
docker --version
docker-compose --version

# 测试Docker运行
docker run hello-world

快速部署

方法一:使用官方镜像(推荐)

1. 拉取最新镜像
# 拉取官方镜像
docker pull bradleylzh/landppt:latest

# 国内用户可使用轩辕镜像(更快)
docker pull registry.cn-hangzhou.aliyuncs.com/bradleylzh/landppt:latest
2. 创建环境配置文件
# 创建.env文件
cat > .env << 'EOF'
# 服务器配置
HOST=0.0.0.0
PORT=8000
SECRET_KEY=your-secure-secret-key-$(date +%s)

# 生成参数
MAX_TOKENS=8192
TEMPERATURE=0.7

# AI模型配置(可选)
OPENAI_API_KEY=your-openai-api-key
OPENAI_BASE_URL=https://api.openai.com/v1

# 其他配置
DEBUG=false
LOG_LEVEL=INFO
EOF
3. 运行容器
# 创建并运行容器
docker run -d \
  --name landppt \
  -p 8000:8000 \
  -v $(pwd)/.env:/app/.env \
  -v landppt_data:/app/data \
  -v landppt_reports:/app/research_reports \
  -v landppt_cache:/app/temp \
  --restart unless-stopped \
  bradleylzh/landppt:latest
4. 验证部署
# 查看容器状态
docker ps

# 查看日志
docker logs -f landppt

# 测试服务
curl http://localhost:8000/health

方法二:使用Docker Compose(推荐生产环境)

1. 创建docker-compose.yml
version: '3.8'

services:
  landppt:
    image: bradleylzh/landppt:latest
    container_name: landppt
    ports:
      - "8000:8000"
    volumes:
      - ./.env:/app/.env
      - landppt_data:/app/data
      - landppt_reports:/app/research_reports
      - landppt_cache:/app/temp
    environment:
      - HOST=0.0.0.0
      - PORT=8000
      - SECRET_KEY=${SECRET_KEY:-default-secret-key}
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
      interval: 30s
      timeout: 10s
      retries: 3

volumes:
  landppt_data:
  landppt_reports:
  landppt_cache:
2. 启动服务
# 启动服务
docker-compose up -d

# 查看服务状态
docker-compose ps

# 查看日志
docker-compose logs -f

环境配置

1. 基础配置

编辑.env文件,配置以下参数:

# 服务器配置
HOST=0.0.0.0                    # 监听地址
PORT=8000                       # 监听端口
SECRET_KEY=your-secure-secret-key  # 安全密钥(建议使用随机字符串)

# 生成参数
MAX_TOKENS=8192                 # 最大token数
TEMPERATURE=0.7                 # 生成温度(0-1)

# 调试配置
DEBUG=false                     # 调试模式
LOG_LEVEL=INFO                 # 日志级别

2. AI模型配置

OpenAI配置
# OpenAI API配置
OPENAI_API_KEY=sk-your-openai-api-key
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-4
其他AI服务配置
# 自定义AI服务
CUSTOM_AI_API_KEY=your-api-key
CUSTOM_AI_BASE_URL=https://your-ai-service.com/v1
CUSTOM_AI_MODEL=your-model-name

3. 存储配置

# 数据存储路径
DATA_PATH=/app/data
REPORTS_PATH=/app/research_reports
CACHE_PATH=/app/temp

# 文件大小限制
MAX_FILE_SIZE=50MB
MAX_UPLOAD_SIZE=100MB

4. 安全配置

# CORS配置
CORS_ORIGINS=http://localhost:3000,http://localhost:8080

# 访问控制
ALLOWED_HOSTS=localhost,127.0.0.1,your-domain.com

# 会话配置
SESSION_TIMEOUT=3600
MAX_SESSIONS=100

服务管理

1. 基本操作

# 启动服务
docker start landppt

# 停止服务
docker stop landppt

# 重启服务
docker restart landppt

# 删除服务
docker rm landppt

2. 日志管理

# 查看实时日志
docker logs -f landppt

# 查看最近100行日志
docker logs --tail 100 landppt

# 查看特定时间段的日志
docker logs --since "2024-01-01T00:00:00" landppt

3. 数据备份

# 备份数据卷
docker run --rm -v landppt_data:/data -v $(pwd):/backup alpine tar czf /backup/landppt_data_backup.tar.gz -C /data .

# 恢复数据卷
docker run --rm -v landppt_data:/data -v $(pwd):/backup alpine tar xzf /backup/landppt_data_backup.tar.gz -C /data

4. 更新服务

# 拉取最新镜像
docker pull bradleylzh/landppt:latest

# 停止当前服务
docker stop landppt

# 删除旧容器
docker rm landppt

# 重新运行新版本
docker run -d \
  --name landppt \
  -p 8000:8000 \
  -v $(pwd)/.env:/app/.env \
  -v landppt_data:/app/data \
  -v landppt_reports:/app/research_reports \
  -v landppt_cache:/app/temp \
  --restart unless-stopped \
  bradleylzh/landppt:latest

功能特性

1. PPT生成流程

  1. 主题输入:用户输入PPT主题或关键词
  2. 内容研究:AI自动搜索相关信息和资料
  3. 结构规划:智能规划PPT结构和章节
  4. 内容生成:自动生成各章节的详细内容
  5. 图片匹配:AI自动匹配相关图片
  6. 格式优化:自动调整格式和布局
  7. 演讲稿生成:生成配套的演讲稿

2. 支持的导出格式

  • PowerPoint (.pptx)
  • PDF文档
  • HTML网页
  • 图片格式 (PNG, JPG)
  • 演讲稿文本

3. 自定义选项

  • 模板选择
  • 配色方案
  • 字体设置
  • 布局风格
  • 图片风格

常见问题

1. 容器启动失败

问题:容器无法启动或立即退出

解决方案

# 检查日志
docker logs landppt

# 检查端口占用
netstat -tulpn | grep 8000

# 检查配置文件
cat .env

# 重新创建容器
docker rm landppt
docker run -d --name landppt -p 8000:8000 bradleylzh/landppt:latest

2. 无法访问Web界面

问题:浏览器无法访问 http://localhost:8000

解决方案

# 检查容器状态
docker ps

# 检查端口映射
docker port landppt

# 检查防火墙设置
sudo ufw status
sudo ufw allow 8000

# 检查服务是否正常
curl http://localhost:8000/health

3. AI功能无法使用

问题:PPT生成功能报错或无法使用

解决方案

# 检查API密钥配置
grep OPENAI_API_KEY .env

# 测试API连接
curl -H "Authorization: Bearer $OPENAI_API_KEY" https://api.openai.com/v1/models

# 检查网络连接
ping api.openai.com

4. 存储空间不足

问题:生成的文件无法保存

解决方案

# 检查磁盘空间
df -h

# 清理Docker缓存
docker system prune -a

# 清理旧的数据卷
docker volume prune

# 扩展存储空间(根据实际情况)

5. 性能问题

问题:生成速度慢或系统响应慢

解决方案

# 检查系统资源
htop
docker stats

# 调整配置参数
# 在.env文件中调整MAX_TOKENS和TEMPERATURE

# 增加系统资源
# 考虑升级CPU、内存或使用GPU加速

性能优化

1. 系统优化

# 增加文件描述符限制
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf

# 优化内核参数
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p

2. Docker优化

# 配置Docker日志大小
cat > /etc/docker/daemon.json << 'EOF'
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
EOF

# 重启Docker服务
sudo systemctl restart docker

3. 应用优化

# 在.env文件中添加性能配置
cat >> .env << 'EOF'
# 性能优化配置
WORKER_PROCESSES=4
WORKER_CONNECTIONS=1024
KEEPALIVE_TIMEOUT=65
CLIENT_MAX_BODY_SIZE=100M

# 缓存配置
CACHE_SIZE=1GB
CACHE_TTL=3600
EOF

4. 网络优化

# 优化网络参数
echo "net.core.rmem_max = 16777216" >> /etc/sysctl.conf
echo "net.core.wmem_max = 16777216" >> /etc/sysctl.conf
echo "net.ipv4.tcp_rmem = 4096 87380 16777216" >> /etc/sysctl.conf
echo "net.ipv4.tcp_wmem = 4096 65536 16777216" >> /etc/sysctl.conf
sysctl -p

API使用示例

1. 健康检查

# 检查服务状态
curl http://localhost:8000/health

# 响应示例
{
  "status": "healthy",
  "timestamp": "2024-01-01T00:00:00Z",
  "version": "1.0.0"
}

2. 生成PPT

# 生成PPT
curl -X POST http://localhost:8000/api/generate \
  -H "Content-Type: application/json" \
  -d '{
    "topic": "人工智能发展趋势",
    "slides": 10,
    "style": "professional",
    "language": "zh"
  }'

# 响应示例
{
  "task_id": "task_123456",
  "status": "processing",
  "estimated_time": 300
}

3. 查询任务状态

# 查询任务状态
curl http://localhost:8000/api/task/task_123456

# 响应示例
{
  "task_id": "task_123456",
  "status": "completed",
  "progress": 100,
  "result": {
    "ppt_url": "/download/task_123456.pptx",
    "speech_url": "/download/task_123456.txt"
  }
}

4. 下载文件

# 下载PPT文件
curl -O http://localhost:8000/download/task_123456.pptx

# 下载演讲稿
curl -O http://localhost:8000/download/task_123456.txt

总结

LandPPT是一个功能强大的AI驱动PPT生成系统,通过Docker部署可以快速搭建和运行。本文档提供了完整的部署指南,包括环境准备、快速部署、配置管理、服务维护等各个方面。

关键要点

  1. 简单部署:使用Docker可以快速部署,无需复杂的环境配置
  2. 灵活配置:通过环境变量可以灵活配置各种参数
  3. 数据持久化:使用Docker卷确保数据安全
  4. 易于维护:提供完整的服务管理和故障排除指南
  5. 性能优化:包含系统级和应用级的优化建议

下一步

  • 根据实际需求调整配置参数
  • 设置定期备份策略
  • 配置监控和告警
  • 考虑使用负载均衡和集群部署

如有问题,请参考常见问题部分或查看官方文档。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐