- 这里建议使用Docker快速部署
- 首先拉取项目代码
git clone https://github.com/Anionex/banana-slides
- (可选)进入项目代码根目录,查看编辑 docker-compose.yml,内容参考如下,根据需要调整(一般不需要调整)
version: '3.8'
services:
backend:
build:
context: .
dockerfile: backend/Dockerfile
container_name: banana-slides-backend
ports:
# 宿主机端口:容器内部端口(由 PORT 控制,默认 5000)
# 外部访问始终是 http://localhost:5000,内部监听端口可通过 PORT 调整
- "5000:${PORT:-5000}"
# 从 .env 文件自动加载所有环境变量
env_file:
- .env
volumes:
# 持久化数据库
- ./backend/instance:/app/backend/instance
# 持久化上传的文件
- ./uploads:/app/uploads
restart: unless-stopped
healthcheck:
# 健康检查同样跟随 PORT(默认 5000)
test: ["CMD", "curl", "-f", "http://localhost:${PORT:-5000}/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
networks:
- banana-slides-network
frontend:
build:
context: .
dockerfile: frontend/Dockerfile
# Windows 兼容性:禁用符号链接跟随 + 前端构建参数
args:
DOCKER_BUILDKIT: 1
VITE_API_BASE_URL: ${VITE_API_BASE_URL}
container_name: banana-slides-frontend
ports:
- "3000:80"
depends_on:
- backend
restart: unless-stopped
networks:
- banana-slides-network
networks:
banana-slides-network:
driver: bridge
volumes:
backend-data:
uploads-data:
- (必要)复制代码根目录下的.env.example文件为.env,修改相关的大模型配置,换成你的有效配置,参考如下
# AI Provider 格式配置
# "gemini" (默认): 使用 Google GenAI SDK
# "openai": 使用 OpenAI SDK 格式
AI_PROVIDER_FORMAT=gemini
# Gemini 格式配置(当 AI_PROVIDER_FORMAT=gemini 时使用)
GOOGLE_API_KEY=your-api-key-here
# 代理示例: https://aihubmix.com/gemini
GOOGLE_API_BASE=https://generativelanguage.googleapis.com
# OpenAI 格式配置(当 AI_PROVIDER_FORMAT=openai 时使用)
OPENAI_API_KEY=your-api-key-here
# 代理示例: https://aihubmix.com/v1
OPENAI_API_BASE=https://api.openai.com/v1
# 超时时间,默认60s
OPENAI_TIMEOUT=60.0
# 最多重试次数,默认3次
OPENAI_MAX_RETRIES=3
# AI 模型配置
TEXT_MODEL=gemini-3-flash-preview
IMAGE_MODEL=gemini-3-pro-image-preview
# Flask 配置
LOG_LEVEL=INFO
FLASK_ENV=production
SECRET_KEY=your-secret-key-change-this-in-production
PORT=5000
# CORS 配置(多个地址用逗号分隔)
CORS_ORIGINS=*
# 并发配置
MAX_DESCRIPTION_WORKERS=5
MAX_IMAGE_WORKERS=8
# MinerU 文件解析服务配置
# 建议改成自己申请的api token以避免用量限制
MINERU_TOKEN=eyJ0eXBlIjoiSldUIiwiYWxnIjoiSFM1MTIifQ.eyJqdGkiOiI1MzAwMDg0MyIsInJvbCI6IlJPTEVfUkVHSVNURVIiLCJpc3MiOiJPcGVuWExhYiIsImlhdCI6MTc2NDk1MzgzNCwiY2xpZW50SWQiOiJsa3pkeDU3bnZ5MjJqa3BxOXgydyIsInBob25lIjoiMTg5MjQ5Mzk4MDIiLCJvcGVuSWQiOm51bGwsInV1aWQiOiI5ZGYzMGNjMC01MTNiLTQyMDAtYWFjNy1kNDM0YjE4OWZmMzIiLCJlbWFpbCI6IiIsImV4cCI6MTc2NjE2MzQzNH0.Im3STnoIJX5dY9lXVHuk0wskKDTHu5KN7jnaqRqCcUvUqANTELTEZKtMZhPt2cuFNo5OGwof3kt6WTXccIFmlw
MINERU_API_BASE=https://mineru.net
# 图片识别模型配置(用于为解析文件中的图片生成描述)
IMAGE_CAPTION_MODEL=gemini-3-flash-preview
# 输出语言配置
# 可选值: 'zh' (中文), 'ja' (日本語), 'en' (English), 'auto' (自动)
OUTPUT_LANGUAGE=zh
- 相关文件配置完成,执行如下命令启动
docker-compose up -d --build
作者没有提供预构建镜像,执行如上启动命令,会先构建镜像,可能耗时较久,成功运行参考如下截图
