LandPPT Docker部署文档
LandPPT是基于AI的智能PPT生成系统,支持一键生成PPT、智能配图、深度研究等功能。本文档详细介绍了Docker部署流程,包括系统要求、环境准备、快速部署(支持官方镜像和Docker Compose两种方式)、环境配置、服务管理和数据备份等操作指南。系统最低要求4核CPU/8GB内存,推荐8核CPU/16GB内存,支持本地部署确保数据安全。部署后可通过.env文件配置AI模型参数、存储路径
·
LandPPT Docker部署文档
目录
项目简介
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系统
- 下载Docker Desktop for Windows
- 安装并启动Docker Desktop
- 确保WSL2已启用
macOS系统
- 下载Docker Desktop for Mac
- 安装并启动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生成流程
- 主题输入:用户输入PPT主题或关键词
- 内容研究:AI自动搜索相关信息和资料
- 结构规划:智能规划PPT结构和章节
- 内容生成:自动生成各章节的详细内容
- 图片匹配:AI自动匹配相关图片
- 格式优化:自动调整格式和布局
- 演讲稿生成:生成配套的演讲稿
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部署可以快速搭建和运行。本文档提供了完整的部署指南,包括环境准备、快速部署、配置管理、服务维护等各个方面。
关键要点
- 简单部署:使用Docker可以快速部署,无需复杂的环境配置
- 灵活配置:通过环境变量可以灵活配置各种参数
- 数据持久化:使用Docker卷确保数据安全
- 易于维护:提供完整的服务管理和故障排除指南
- 性能优化:包含系统级和应用级的优化建议
下一步
- 根据实际需求调整配置参数
- 设置定期备份策略
- 配置监控和告警
- 考虑使用负载均衡和集群部署
如有问题,请参考常见问题部分或查看官方文档。
更多推荐
所有评论(0)