Files
LLM_Engineering_OLD/community-contributions/shabsi4u/Website_brochure_generator
shabsi4u 9307ac7f08 Add Website_brochure_generator app with uv package management
- Complete AI-powered website brochure generator
- Includes pyproject.toml and uv.lock for dependency management
- Features web scraping, AI content generation, and brochure creation
- Ready for deployment and further development
2025-09-21 13:19:11 +05:30
..

Website Brochure Generator

An AI-powered tool that automatically generates professional brochures from any website. The tool analyzes website content, extracts relevant information, and creates beautifully formatted brochures using OpenAI's GPT models.

Features

  • 🌐 Website Analysis: Automatically scrapes and analyzes website content
  • 🤖 AI-Powered: Uses OpenAI GPT-4o-mini for intelligent content generation
  • 📄 Professional Output: Generates markdown-formatted brochures
  • 🌍 Multi-Language Support: Translate brochures to any language using AI
  • 🎨 Beautiful Output: Rich terminal formatting and native Jupyter markdown rendering
  • Streaming Support: Real-time brochure generation with live updates
  • 🖥️ Multiple Interfaces: Command-line script and interactive Jupyter notebook
  • 📓 Interactive Notebook: Step-by-step execution with widgets and examples

Prerequisites

  • Python 3.8 or higher
  • OpenAI API key
  • Jupyter notebook environment (for notebook usage)

Installation

# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

# Clone or download the project
cd Website_brochure_generator

# Install dependencies with uv
uv sync

# Activate the virtual environment
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

Option 2: Using pip

# Create a virtual environment (recommended)
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

Option 3: Using pip with pyproject.toml

# Install in development mode
pip install -e .

# Or install with optional dev dependencies
pip install -e ".[dev]"

Setup

  1. Get your OpenAI API key:

  2. Set up environment variables: Create a .env file in the project directory:

    OPENAI_API_KEY=your_api_key_here
    

Usage

  1. Open the notebook:

    jupyter notebook website_brochure_generator.ipynb
    
  2. Run the cells step by step:

    • Configure your API key
    • Try the interactive examples
    • Use the widget interface for easy brochure generation
  3. Features in the notebook:

    • Interactive widgets for URL input and options
    • Step-by-step examples with explanations
    • Custom functions for advanced usage
    • Save brochures to files
    • Multiple language translation examples
    • Quick website analysis tools
    • Custom brochure generation with focus areas
    • Comprehensive troubleshooting guide

Option 2: Command Line Interface

# Basic usage
python website_brochure_generator.py https://example.com

# The tool will prompt you to choose:
# 1. Display mode: Complete output OR Stream output
# 2. Translation: No translation OR Translate to another language

Option 3: Python Script

from website_brochure_generator import create_brochure, stream_brochure, translate_brochure

# Create a complete brochure
result = create_brochure("https://example.com")

# Stream brochure generation in real-time
result = stream_brochure("https://example.com")

# Translate brochure to Spanish (complete output)
spanish_brochure = translate_brochure("https://example.com", "Spanish", stream_mode=False)

# Translate brochure to French (streaming output)
french_brochure = translate_brochure("https://example.com", "French", stream_mode=True)

Programmatic Usage

from website_brochure_generator import Website, get_links, create_brochure, translate_brochure

# Analyze a website
website = Website("https://example.com")
print(f"Title: {website.title}")

# Get relevant links
links = get_links("https://example.com")
print(f"Found {len(links['links'])} relevant pages")

# Generate brochure
brochure = create_brochure("https://example.com")

# Translate brochure to multiple languages (complete output)
spanish_brochure = translate_brochure("https://example.com", "Spanish", stream_mode=False)
german_brochure = translate_brochure("https://example.com", "German", stream_mode=False)

# Translate brochure with streaming output
chinese_brochure = translate_brochure("https://example.com", "Chinese", stream_mode=True)

How It Works

  1. Website Scraping: The tool scrapes the target website and extracts:

    • Page title and content
    • All available links
    • Cleaned text content (removes scripts, styles, etc.)
  2. Link Analysis: Uses AI to identify relevant pages for the brochure:

    • About pages
    • Company information
    • Careers/Jobs pages
    • News/Blog pages
  3. Content Aggregation: Scrapes additional relevant pages and combines all content

  4. Brochure Generation: Uses OpenAI GPT-4o-mini to create a professional brochure including:

    • Company overview
    • Services/Products
    • Company culture
    • Career opportunities
    • Contact information
  5. Translation (Optional): If translation is requested, uses AI to translate the brochure to the target language while:

    • Maintaining markdown formatting
    • Preserving professional tone
    • Keeping proper nouns and company names intact
    • Ensuring natural, fluent translation

Output

The tool generates markdown-formatted brochures that include:

  • Company Overview: Summary of the business
  • Services/Products: What the company offers
  • Company Culture: Values and work environment
  • Career Opportunities: Job openings and company benefits
  • Contact Information: How to reach the company

Dependencies

Core Dependencies

  • openai>=1.0.0 - OpenAI API client
  • python-dotenv>=1.0.0 - Environment variable management
  • requests>=2.25.0 - HTTP requests for web scraping
  • beautifulsoup4>=4.9.0 - HTML parsing
  • rich>=13.0.0 - Beautiful terminal output (for command-line usage)
  • ipywidgets>=8.0.0 - Interactive widgets (for Jupyter notebook)

Development

Setting up development environment

# Install with dev dependencies
uv sync --extra dev
# or
pip install -e ".[dev]"

Running tests

pytest

Code formatting

black website_brochure_generator.py

Type checking

mypy website_brochure_generator.py

Troubleshooting

Common Issues

  1. ImportError: No module named 'rich'

    • Make sure you've installed all dependencies: pip install -r requirements.txt
  2. OpenAI API Key Error

    • Verify your API key is set in the .env file
    • Check that your API key has sufficient credits
  3. Website Scraping Issues

    • Some websites may block automated requests
    • The tool uses a standard User-Agent header to avoid basic blocking
  4. Display Issues

    • For command-line: Make sure Rich is properly installed: pip install rich
    • For Jupyter: Make sure ipywidgets is installed: pip install ipywidgets
    • Some terminals may not support all Rich features

License

MIT License - see LICENSE file for details.

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

Support

For issues and questions, please open an issue on the project repository.