LandPPT: A Self-Hostable LLM Pipeline That Turns Documents Into Editable Slides
一个基于LLM的演示文稿生成平台,能够自动将文档内容转换为专业的PPT演示文稿。平台支持多种AI模型,提供丰富的模板和样式选择,让用户能够创建高质量的演示文稿。
At a glance
- What is it?
- LandPPT is a Python-based, self-hosted platform that turns a topic or an uploaded document into a structured outline, HTML slides, speaker notes, and exported files. It supports multiple AI providers and optional services for research, images, and video, but its editable PPTX export depends on a commercial license key.
- Who is it for?
- Adopt LandPPT if you need a self-hosted, multi-provider pipeline that moves from a topic or document to a structured outline, HTML slides, speaker notes, and multiple export formats, and you are prepared to manage AI keys, optional services, and the Apryse license for editable PPTX. Do not adopt it if you expect a zero-configuration tool or if editable PPTX is a hard requirement without a budget for that commercial key.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 2 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What LandPPT Actually Automates
LandPPT addresses the repetitive workflow of turning a topic description or an uploaded document into a finished presentation. The README describes a five-step chain: input, planning, generation, polishing, and delivery. The input can be a topic or files in PDF, Word, Markdown, Excel, or PowerPoint. During planning, the platform produces an editable outline and can optionally pull current information through Tavily or SearXNG. Generation produces HTML slides in parallel, using templates or AI-adaptive layouts. Polishing happens through a sidebar chat for editing, replacing images, and applying visual references. Delivery covers exports to PDF, HTML, PPTX, images, DOCX, and Markdown, plus public share links with audio and subtitles. The intended user is someone who wants a self-hosted alternative to closed presentation services, with control over the model provider and the ability to inspect or modify each stage.
The Pipeline: From Raw Input to HTML Slides and Beyond
The core mechanism is a role-based routing system over multiple AI providers. The README states that models are routed by role: outline, slide, edit, template, and speech. This allows different models for different stages, which is a practical way to control cost, since outline generation might use a cheaper model while slide layout uses a stronger one. The pipeline is not a single prompt. It is a staged process with a four-phase workflow: requirement confirmation, outline, task tracking, and PPT generation. The README mentions that stages can be rerun and recovered, which suggests the system persists intermediate state. The default local setup uses SQLite and in-memory cache, so a single command can run the whole thing without external services. For production, the compose file starts a Web service, a worker, PostgreSQL, Valkey, and MinIO. The worker handles background tasks such as PDF, PPTX, and narrated video export. This separation of web and worker is important because generating a narrated video or a large PPTX export can take a long time and should not block the web request.
Getting It Running: Five Paths, One Common Prerequisite
The README offers five installation methods. The first uses uv, the Python package manager. After cloning the repository, you run `uv sync --extra dev`, copy `.env.example` to `.env`, and edit that file to include at least one AI API key. Then `uv run python run.py` starts the server on port 8000. The second method uses pip: create a venv, run `pip install -e .`, copy the env file, and run `python run.py`. The third is a single Docker container: `docker pull bradleylzh/landppt:latest` followed by a `docker run` command that mounts a `.env` file and several named volumes for data, uploads, research reports, temp files, and a lib directory. The fourth is Docker Compose for production, which starts landppt, worker, PostgreSQL, Valkey, and MinIO with an automatic bucket creation step. The fifth is a development compose file that builds from the local Dockerfile and enables hot reload. Every path requires you to configure at least one AI provider key in `.env`. The README stresses that the image service is off by default and only activates with `ENABLE_IMAGE_SERVICE=true`. The health check endpoint is at `/health`, and the API documentation is at `/docs`.
The Apryse Catch: Editable PPTX Is Not Free
The most significant limitation is the editable PPTX export. The README lists `APRYSE_LICENSE_KEY` as a commercial license required for standard editable PPTX output. Without that key, the platform can still produce an image-based PPTX, which the README describes as high fidelity but with page elements that are usually not editable. This is a real constraint for anyone whose workflow depends on recipients editing the slides in PowerPoint or Google Slides. The README does not mention any other way to get editable PPTX, so this is a hard boundary. The project license is marked as NOASSERTION in the repository metadata, even though the README badge shows Apache 2.0. That mismatch is worth checking before you rely on it for a commercial product. The README also warns that the image service is off by default, so if you want AI-generated images or online image search, you must enable it and provide the corresponding keys.
Research, Images, and Narration: Optional Services That Change the Output
LandPPT does not force you to use every feature. Deep research is optional and depends on a Tavily API key or a SearXNG instance. Image sources are split into three categories: a local library, online libraries like Pixabay and Unsplash, and AI generation through DALL-E, SiliconFlow, Pollinations, OpenAI, or Gemini. Each of these requires its own credentials, and the entire image service is gated behind `ENABLE_IMAGE_SERVICE=true`. Narrated video export requires ffmpeg, and optionally ComfyUI TTS. The README does not explain how the narration is synchronized with slide timing, only that Edge-TTS is used for page-by-page narration and that 1080p video can be exported. This suggests that video export is a heavier operation, which is likely why the production compose includes a separate worker service. The presence of a worker implies that long-running jobs are expected, and a single-container deployment may not handle them gracefully under load.
Production Security and Operational Choices
The README includes a security section that is unusually direct for an open-source project. It tells you to change `SECRET_KEY` and the administrator password, warning against the default `admin` / `admin123`. Production compose disables automatic admin initialization by default, and you must explicitly set `LANDPPT_BOOTSTRAP_ADMIN_ENABLED=true` on first deployment. It also recommends configuring a strong `LANDPPT_API_KEY` or `LANDPPT_API_KEYS` for API access. Database migration is automatic on startup unless you set `LANDPPT_AUTO_MIGRATE_ON_STARTUP=false`. The README advises turning that off when multiple nodes share the same database, and running a migration job separately instead. These are concrete operational choices that affect uptime and security. The project also supports local accounts, GitHub and Linux Do OAuth, email verification, registration rate limiting, an optional points system, SMTP or Resend for email, and Cloudflare Turnstile. That is a wide set of features for a self-hosted tool, but it also means the configuration surface is large. The README does not provide a full list of every env var, so expect to inspect `.env.example` carefully.
Alternatives and the Difference in Approach
The obvious alternative is a commercial presentation tool like Gamma or Tome, which generate slides from a prompt in a hosted environment. The difference is that LandPPT is self-hosted and model-agnostic. You can point it at Ollama for fully offline inference, which is something those hosted tools cannot do. Another alternative is an open-source library like python-pptx, which gives you programmatic control over slide creation but requires you to write your own logic for outlines, content generation, and layout. LandPPT wraps that entire process in a web UI and an API, so you do not have to code the pipeline yourself. The trade-off is that LandPPT is a full platform with its own data model, task queue, and configuration, while python-pptx is a thin library you embed in your own application. If you only need to generate a few slides from structured data, python-pptx is lighter. If you want a turnkey system that accepts a Word document and returns a narrated video, LandPPT is closer to that goal.
Maintenance, Upgrades, and License Reality
The repository shows recent releases at v0.3.2, v0.3.1, and v0.3.0, with the latest push in September 2026. That indicates active development, but the project is still in a 0.x version, which usually means the API and configuration may change between releases. The README does not mention a migration path between versions, so upgrading from one minor release to another may require checking the changelog manually. The license field in the repository metadata is NOASSERTION, which is unusual. The README badge claims Apache 2.0, but the metadata does not confirm it. Before using this in a commercial setting, you should inspect the LICENSE file in the repository to see what terms actually apply. The README also references a commercial key for Apryse, which is a separate licensing cost. The project itself may be open source, but the editable PPTX path is not free. The maintenance burden includes keeping AI provider keys valid, updating the image service keys, and managing the optional PostgreSQL, Valkey, and MinIO services if you run the production compose. For a single user, the SQLite mode is simpler but will not scale to concurrent background tasks.
Editorial conclusion
Adopt LandPPT if you need a self-hosted, multi-provider pipeline that moves from a topic or document to a structured outline, HTML slides, speaker notes, and multiple export formats, and you are prepared to manage AI keys, optional services, and the Apryse license for editable PPTX. Do not adopt it if you expect a zero-configuration tool or if editable PPTX is a hard requirement without a budget for that commercial key. Before deploying, verify at least one AI provider key works, set SECRET_KEY and a strong LANDPPT_API_KEY, disable default admin bootstrap in production, and test the exact export path you need, since the image-based PPTX export preserves fidelity but does not allow editing page elements.
Community notes