Skip to content

Latest commit

 

History

History
76 lines (55 loc) · 2.77 KB

README.md

File metadata and controls

76 lines (55 loc) · 2.77 KB

Presenter 🎦

Introducing Presenter: A Multi-Agent AI Tool that can:

  • Create beautiful presentations for any given topic 🔥
  • Render intuitive & visually appealing diagrams 🖼️ for slides when needed (using Mermaid)
  • Write scripts for every slide 📜
  • Render & View interactive presentations in HTML 💻 (using markdown-slides & reveal.js)
  • Intuitive speaker view with scripts (reveal.js)
  • Export presentations to PDF 🖨️ (using DeckTape)
  • Generate audio narrations from scripts 🎙️ (using ElevenLabs)
  • Render full video presentations 🎥 with all the slides and voiceover (using FFmpeg)

Video Demo with overview of the multi-agent setup

Presenter

Tools Used

  • LlamaIndex Workflows to orchestrate the entire multi-agent setup
  • markdown-slides and reveal.js for rendering & viewing the presentation
  • Mermaid to render the diagrams
  • DeckTape to export the presentation to PDF
  • ElevenLabs API to create audio narration for the slides
  • FFmpeg to render the full presentation with voiceover

How to use

  • First install the necessary tools
python -m pip install git+https://gitlab.com/da_doomer/markdown-slides.git
npm install -g @mermaid-js/mermaid-cli
npm install -g decktape
npm install -g puppeteer
puppeteer browsers install chrome
  • Install FFmpeg for your operating system from here

  • Clone the repo

git clone https://github.com/rsrohan99/presenter.git
cd presenter
  • Install dependencies
pip install -r requirements.txt
  • Create .env file and add OPENAI_API_KEY and ELEVENLABS_API_KEY
cp .env.example .env
  • Run the workflow with the topic to create the presentation on
python run.py "observer design pattern"
  • Add --export-video argument to generate a full video of the presentation with voiceover.
python run.py "observer design pattern" --export-video
  • After running the workflow, it'll put all the files (slides, video, pdf etc.) inside the presentations folder
  • There be a folder for each presentation generated
  • The interactive HTML for the presentation will be at presentations/<presentation_folder>/output/index.html
  • The extracted PDF of the presentation will be at presentations/<presentation_folder>/presentation.pdf
  • The rendered video with voiceover of the presentation will be at presentations/<presentation_folder>/presentation.mp4