Team Ai
Apppublic

suraj-yadav-aiml/Presentation-Generator

sourceHugging Facemitupdated 2y agoView on Hugging Face
0likes
App README

๐ŸŽฏ 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

  1. 1.Clone the repository:
bash
   git clone https://github.com/suraj-yadav-aiml/Presentation-Generator.git
   cd Presentation-Generator
  1. 1.Create and activate a virtual environment:
bash
   python -m venv venv
   # On Windows
   venv\Scripts\activate
   # On macOS/Linux
   source venv/bin/activate
  1. 1.Install the required dependencies:
bash
   pip install -r requirements.txt
  1. 1.Set up your environment variables for API keys (optional):
bash
   # 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

  1. 1.Start the Streamlit application:
bash
   python app.py
  1. 1.Open your browser and navigate to the URL displayed in the terminal (typically http://localhost:8501)

Using the Interface

  1. 1.Select LLM Provider: Choose between Groq, OpenAI, or Anthropic
  2. 2.Configure Provider Settings:
  3. 3.Enter your API key
  4. 4.Select a specific model
  5. 5.Adjust parameters like temperature and max tokens
  6. 6.Define Presentation Details:
  7. 7.Enter the presentation topic
  8. 8.Select target audience and tone
  9. 9.Specify number of slides
  10. 10.Choose presentation style and purpose
  11. 11.Add any special instructions
  12. 12.Generate Presentation: Click the "Generate Presentation" button
  13. 13.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 functions

Key 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

  1. 1.The user inputs presentation details through the Streamlit UI
  2. 2.The Orchestrator Node creates a high-level outline with slide titles and descriptions
  3. 3.The Slide Worker Edge distributes slide generation tasks to the Slide Worker Node
  4. 4.The Slide Worker Node processes each slide, creating detailed content
  5. 5.The Aggregator Node combines all slides into a cohesive presentation
  6. 6.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.