Presenton 소개
Presenton은 자연어 프롬프트나 업로드한 문서로부터 편집 가능한 PowerPoint(PPTX) 와 PDF 슬라이드를 만들어 주는 오픈소스 AI 프레젠테이션 생성기입니다. 자체 호스팅을 전제로 설계되어 있어 Gamma, Beautiful AI, Decktopus 같은 SaaS 서비스에 데이터와 모델을 맡기지 않고도 같은 종류의 작업 흐름을 사내·로컬에서 재현할 수 있습니다. 발표 자료를 만드는 단계에서 외부 LLM 호출 없이 모든 데이터를 로컬에 유지하고 싶거나, 회사 디자인 시스템을 그대로 슬라이드에 적용하고 싶은 사용자를 위한 도구로 보면 가깝습니다. README 는 Presenton 의 차별점을 "No SaaS lock-in · No forced subscriptions · Full control over models and data" 라는 한 줄로 정리합니다.
핵심 차별점은 모델·이미지 공급자를 자유롭게 갈아 끼울 수 있는 BYOK(Bring Your Own Key) 구조와, 결과물이 완전히 편집 가능한 PPTX 라는 점입니다. 텍스트 LLM 으로는 OpenAI, Google Gemini, Vertex AI, Azure OpenAI, Amazon Bedrock, Fireworks, Together AI, Anthropic Claude, LM Studio, Ollama, 그리고 OpenAI 호환 커스텀 엔드포인트를 모두 지정할 수 있습니다. 이미지 생성기도 DALL·E 3, Gemini Flash, GPT Image 1.5, ComfyUI, Open WebUI 호환 엔드포인트, Pexels·Pixabay 같은 스톡 이미지 소스를 골라서 붙일 수 있어, 사내에서 자체 모델만 쓰는 환경에도 맞춰 둘 수 있습니다.
이 글에서는 Presenton 의 배포 형태와 BYOK 설계, MCP 서버 통합, HTML/Tailwind 기반 템플릿 시스템, 그리고 Mem0 OSS 를 이용한 프레젠테이션 단위 메모리를 차례로 정리합니다. 또한 Docker 와 Electron 데스크톱 앱으로 실행하는 두 가지 경로를 비교하며, 어떤 환경 변수가 docker-compose 에 명시적으로 연결되어 있는지도 README 기준으로 짚어 봅니다.
Presenton의 배포 옵션과 BYOK 구조
Presenton 은 동일한 백엔드를 두 가지 형태로 노출합니다. 하나는 컨테이너 한 줄로 띄우는 Docker 배포이고, 다른 하나는 Windows·macOS·Linux 에서 네이티브로 동작하는 Electron 데스크톱 앱입니다. 두 형태는 같은 FastAPI 백엔드(servers/fastapi) 와 Next.js 프런트엔드를 공유하기 때문에 docker-compose 에서 사용하는 환경 변수들이 데스크톱 앱에서도 그대로 동작합니다. Docker 이미지 한 줄 실행 명령은 docker run -it --name presenton -p 5000:80 -v "./app_data:/app_data" ghcr.io/presenton/presenton:latest 형태로, 호스트 5000 번 포트에서 웹 UI 를 열게 됩니다.
BYOK 는 단순히 API 키를 한 번 받는 수준이 아니라, LLM 환경 변수로 어떤 백엔드를 쓸지를 선택하고 그에 맞는 키와 모델 ID 를 함께 채우는 방식입니다. 예를 들어 OpenAI 로 운영할 때는 LLM="openai", OPENAI_API_KEY, OPENAI_MODEL(기본 gpt-4.1) 을 지정하고, Anthropic 으로 갈아끼울 때는 LLM="anthropic", ANTHROPIC_API_KEY, ANTHROPIC_MODEL(기본 claude-3-5-sonnet-20241022) 만 바꿔 다시 띄우면 됩니다. 로컬 모델을 쓰려면 LLM="ollama" 로 두고 OLLAMA_URL, OLLAMA_MODEL 만 지정하면 됩니다.
또한 CAN_CHANGE_KEYS=false 로 두면 운영자가 한 번 박아 둔 키를 사용자가 UI 에서 바꾸지 못하게 막을 수 있어, 사내 게이트웨이 뒤에 두고 공용으로 쓰는 시나리오에 맞춰져 있습니다. WEB_GROUNDING=true, EXTENDED_REASONING=true 같은 토글은 지원하는 모델에서 웹 검색이나 확장 추론(extended reasoning) 을 켜는 데 사용합니다. 모든 변수의 기본값과 의미는 README 의 Deployment Configurations 섹션에 정리되어 있습니다.
Presenton의 템플릿과 PPTX 출력
Presenton 은 슬라이드 디자인을 HTML 과 Tailwind CSS 로 정의합니다. 즉, 디자이너가 HTML 마크업을 그대로 템플릿으로 등록하면 LLM 이 그 마크업의 슬롯에 텍스트와 이미지를 채워 넣어 슬라이드를 만들어 주는 구조입니다. 또한 AI Template Generation 기능을 통해 이미 가지고 있는 PowerPoint 파일을 분석해 새 템플릿으로 변환하는 흐름도 README 에 명시되어 있습니다. 회사 브랜드 가이드라인이나 학회 발표용 마스터를 가져와서 그대로 재사용하기에 유리한 설계입니다.
출력은 PPTX 와 PDF 둘 다 지원하며, README 는 결과 PPTX 가 "Fully editable PPTX export" 임을 명시합니다. AI 가 한 번 만든 뒤 PowerPoint 에서 도형·텍스트·표를 수동으로 손볼 수 있다는 뜻이며, 그림처럼 박혀 나오는 일부 다른 도구와의 차이입니다. 이미지 생성기는 슬라이드 본문 비주얼에 쓰이는 부분과 아이콘·차트 등 보조 이미지 부분이 분리되어 있어, 메인 LLM 과 이미지 모델을 다른 공급자로 섞어 쓸 수 있습니다.
# 가장 단순한 자체 호스팅 실행 — OpenAI LLM + DALL-E 3 이미지 조합
docker run -it --name presenton -p 5000:80 \
-e LLM="openai" \
-e OPENAI_API_KEY="******" \
-e IMAGE_PROVIDER="dall-e-3" \
-e CAN_CHANGE_KEYS="false" \
-v "./app_data:/app_data" \
ghcr.io/presenton/presenton:latest
# 로컬 Ollama + Pexels 스톡 이미지 조합 (외부 LLM API 호출 없음)
docker run -it --name presenton -p 5000:80 \
-e LLM="ollama" \
-e OLLAMA_MODEL="llama3.2:3b" \
-e IMAGE_PROVIDER="pexels" \
-e PEXELS_API_KEY="*******" \
-e CAN_CHANGE_KEYS="false" \
-v "./app_data:/app_data" \
ghcr.io/presenton/presenton:latest
Presenton의 MCP 서버와 메모리
Presenton 은 자체 Built-In MCP Server 를 포함하고 있어 Model Context Protocol 클라이언트(예: Claude Desktop, Claude Code, MCP 호환 에이전트) 에서 슬라이드 생성을 도구로 호출할 수 있습니다. 즉, 챗봇이나 코딩 에이전트가 작업 흐름의 일부로 Presenton 에 "이 회의 메모로 PPTX 만들어 줘" 같은 요청을 보내고, 결과 파일 경로를 받아 다시 이어서 일할 수 있는 형태가 됩니다. API 서비스로 띄울 수도 있어 사내 자동화 파이프라인에서 슬라이드 생성을 한 엔드포인트로 다루기에도 적합합니다.
또 하나의 특징은 Mem0 OSS 기반의 프레젠테이션 단위 메모리 입니다. 기본 설정에서 Mem0 는 로컬 Qdrant 와 SQLite 를 사용하고, 임베딩 모델로는 BAAI/bge-small-en-v1.5(384 차원) 가 기본값입니다. 메모리 LLM 도 기본값이 Ollama 호환 엔드포인트로 잡혀 있어, "메모리를 쓰려면 무조건 OpenAI 키가 필요" 한 구조가 아닙니다. 메모리는 프레젠테이션 단위로 격리되며, 사용 디렉토리는 MEM0_DIR(기본 /app_data/mem0) 환경 변수로 바꿀 수 있습니다.
Presenton의 라이선스와 운영 관점 주의 사항
Presenton 은 Apache-2.0 라이선스로 공개되어 있어 개인·상업적 용도로 자유롭게 사용·수정·재배포할 수 있고, 사내 환경에서 fork 해 자체 디자인 시스템과 결합하기에도 부담이 적습니다. 다만 인증 측면에서는 인스턴스당 단일 관리자 계정 모델을 채택하고 있어, 다중 사용자 SaaS 처럼 운영하려면 별도의 인증 계층을 앞단에 두는 편이 안전합니다. AUTH_USERNAME, AUTH_PASSWORD, AUTH_OVERRIDE_FROM_ENV, RESET_AUTH 같은 환경 변수와 app_data/userConfig.json 파일의 동작은 README 의 Authentication 섹션에 그대로 정리되어 있으니, 운영 전에 한 번 읽어 두는 편이 좋습니다.
기본 익명 텔레메트리는 DISABLE_ANONYMOUS_TRACKING=true 로 끌 수 있으며, 익명 트래킹이 부담스러운 보안 환경에서는 이 플래그를 명시적으로 켜 두는 편이 안전합니다. 또한 DISABLE_THINKING, WEB_GROUNDING 같은 모델 동작 토글은 일부 공급자만 지원한다는 점도 인지해 두면 좋습니다.
Presenton 공식 홈페이지
Presenton 문서 사이트
Presenton 프로젝트 GitHub 저장소
더 읽어보기
-
PPTX Presentation Generator: 하나의 프롬프트를 바탕으로 PPTX 형식의 파일을 자동으로 생성해주는 도구
-
Learn Your Way: 생성형 AI를 사용하여 교과서를 재창조하는 Google의 새로운 교육 AI 프로젝트
-
Anthropic, Claude의 파일 생성 기능 공개: 문서, 스프레드시트, PDF 등의 문서 직접 생성/편집 가능
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()

