Presentia documentation
Presentia is used mostly from the dashboard: create a deck from a prompt, a document, a dataset or markdown; fine-tune it in the editor (with an AI assistant); export to PPTX or PDF. This page covers the fork’s own features and the API; the day-to-day editor works as you would expect from its upstream.
Markdown to deck (Gamma mode)
Section titled “Markdown to deck (Gamma mode)”The Markdown page has a full editor — toolbar, live preview that shows exactly how your
text splits into cards, card counter, drag & drop — plus template, language, image
source/style and export pickers. Every section split by --- or by #/## headings
becomes a card.
text_mode | What happens |
|---|---|
preserve | Your text goes into the deck verbatim — the AI only picks layouts and generates images. |
condense | The AI summarizes each card while keeping its structure. |
generate | The AI rewrites and expands each card. |
The same power is available over the API:
curl -X POST http://localhost:5001/api/v1/ppt/presentation/generate-from-markdown \ -H "Content-Type: application/json" \ -d '{ "markdown": "# Q3 Review\nIntro...\n\n---\n\n## Results\n- Revenue up 20%", "text_mode": "preserve", "template": "general", "export_as": "pptx" }'Charts from real data
Section titled “Charts from real data”POST /api/v1/ppt/presentation/generate-from-data builds a deck from a CSV, TSV or JSON
dataset (multipart: file, plus content, n_slides, language, template,
instructions, export_as). The anti-hallucination guard checks every chart figure
against the dataset — exact values or exact column aggregates (sum, average, min, max,
count) only. Wrong numbers get one retry with feedback and are rejected if the model
insists.
curl -X POST http://localhost:5001/api/v1/ppt/presentation/generate-from-data \ -F "file=@monthly_summary.csv" \ -F "content=Monthly reconciliation report" \ -F "n_slides=6" -F "language=English" -F "export_as=pdf"Datasets are expected pre-aggregated; the row cap is DATASET_MAX_ROWS (default 200). The
default template is Report, which carries the chart layouts.
Costs and models
Section titled “Costs and models”Two dashboard pages the upstream doesn’t have:
- Models — the catalog of text and image models with curated quality dots, blended price per million tokens, availability computed from your keys and recommendation badges. Click a card to switch; with an OpenRouter key nearly everything lights up at once.
- Costs — summary cards (calls, tokens in/out, estimated cost) and per-deck breakdowns by stage, slide and model, plus a provider comparison table. Pricing comes from a versioned catalog in the repo, so cost history is auditable.
Escriba Suite integration
Section titled “Escriba Suite integration”Presentia works standalone — without any of these variables it behaves exactly like
vanilla Presenton. Each integration is opt-in and independent; the repo’s
docker-compose.yml ships commented service blocks for all of them.
- Escriba — document parsing with OCR.
ESCRIBA_ENABLED=true+ESCRIBA_URLdelegate document → markdown conversion to an Escriba service (scanned PDFs, rotated pages, images, 20+ formats). If Escriba is down or fails on a file, Presentia falls back automatically to its local parsers. - Anonimal — PII anonymization before the LLM.
ANONIMAL_ENABLED=true+ANONIMAL_URLanonymize user prompts and extracted document text before they travel to the LLM provider. Fail-closed: if the service doesn’t answer, generation stops with a clear error instead of sending raw PII. Original text never leaves your host. - Searchgirl — private web search.
WEB_SEARCH_PROVIDER=searchgirl+SEARCHGIRL_BASE_URLground generations through your own metasearch instance instead of a third-party API (with an optional Bearer token).
Templates, themes and languages
Section titled “Templates, themes and languages”Built-in template families (General, Modern, Standard, Swift, Report with charts,
Institucional in es-AR), custom templates generated from your own PPTX, a full theme editor
(colors, fonts, logo) and per-template style_instructions that shape the writing tone.
The whole interface ships in 7 languages — English, Español, Français, Português,
Italiano, 中文, 日本語 — switchable from the sidebar and remembered per browser.
Development
Section titled “Development”docker compose up -d --build development # hot reload for both serverscd servers/fastapi && python -m pytest tests/unit # the fork adds 100+ unit tests