suraj-yadav-aiml/Presentation-Generator
0
๐ฏ Presentation Generator
A powerful AI-driven tool that automatically generates professional presentations based on user-defined topics, audience, and styling preferences.
๐ Project Overview
Presentation Generator is a streamlined web application that harnesses the capabilities of modern large language models (LLMs) to create comprehensive presentation outlines. The system uses a graph-based approach to orchestrate the generation process, breaking down complex presentations into individual slides that are processed in parallel before being aggregated into a cohesive final product.
Key Features
- Multi-provider LLM support (Anthropic, OpenAI, Groq)
- Customizable presentation parameters (audience, tone, style, purpose)
- Flexible slide count and content density
- Streamlit-based user interface for easy interaction
- Download generated presentations as Markdown files
- Structured content with titles, bullet points, visual suggestions, and speaker notes
Target Users
- Business professionals preparing presentations
- Educators creating lesson materials
- Researchers drafting conference talks
- Anyone seeking a quick starting point for presentation development
๐ง Technologies Used
- Python: Core programming language
- LangChain & LangGraph: For LLM orchestration and workflow management
- Streamlit: For the web-based user interface
- LLM Integrations:
- OpenAI (GPT models)
- Anthropic (Claude models)
- Groq (Various models including Llama, Gemma, Qwen)
- GitHub Actions: For automated deployment to Hugging Face Spaces
โ๏ธ Installation
Prerequisites
- Python 3.8 or higher
- API keys for at least one of the supported LLM providers:
- OpenAI API key
- Anthropic API key
- Groq API key
Installation Steps
- Clone the repository:
git clone https://github.com/suraj-yadav-aiml/Presentation-Generator.git
cd Presentation-Generator- Create and activate a virtual environment:
python -m venv venv
# On Windows
venv\Scripts\activate
# On macOS/Linux
source venv/bin/activate- Install the required dependencies:
pip install -r requirements.txt- Set up your environment variables for API keys (optional):
# On Windows
set OPENAI_API_KEY=your_openai_api_key
set ANTHROPIC_API_KEY=your_anthropic_api_key
set GROQ_API_KEY=your_groq_api_key
# On macOS/Linux
export OPENAI_API_KEY=your_openai_api_key
export ANTHROPIC_API_KEY=your_anthropic_api_key
export GROQ_API_KEY=your_groq_api_key๐ Usage
Running the Application
- Start the Streamlit application:
python app.py- Open your browser and navigate to the URL displayed in the terminal (typically http://localhost:8501)
Using the Interface
- Select LLM Provider: Choose between Groq, OpenAI, or Anthropic
- Configure Provider Settings:
- Enter your API key
- Select a specific model
- Adjust parameters like temperature and max tokens
- Define Presentation Details:
- Enter the presentation topic
- Select target audience and tone
- Specify number of slides
- Choose presentation style and purpose
- Add any special instructions
- Generate Presentation: Click the "Generate Presentation" button
- View and Download: Review the generated presentation and download it as a Markdown file
๐ Project Structure
๐ Presentation-Generation/
๐ app.py # Application entry point
๐ requirements.txt # Project dependencies
๐ src/ # Source code directory
๐ presentation_generation/
๐ main.py # Main application logic
๐ edges/ # Graph edge definitions
๐ graph/ # Graph builder and configuration
๐ llm/ # LLM provider integrations
๐ nodes/ # Graph node definitions
๐ state/ # State management
๐ ui/ # User interface components
๐ streamlit/ # Streamlit UI implementation
๐ utility/ # Utility classes and functionsKey Components
- Graph Builder: Constructs the workflow for presentation generation
- Orchestrator Node: Plans the overall presentation structure
- Slide Worker Node: Generates detailed content for individual slides
- Aggregator Node: Combines slide content into final presentation
- LLM Providers: Abstractions for different AI model APIs
- UI Components: Interface elements for user interaction
๐ Workflow
- The user inputs presentation details through the Streamlit UI
- The Orchestrator Node creates a high-level outline with slide titles and descriptions
- The Slide Worker Edge distributes slide generation tasks to the Slide Worker Node
- The Slide Worker Node processes each slide, creating detailed content
- The Aggregator Node combines all slides into a cohesive presentation
- The result is displayed to the user with a download option
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
