> ## Documentation Index
> Fetch the complete documentation index at: https://docs.searchcompany.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Architecture and internal services for the Enhanced Logo endpoint

## Purpose

Generates a hand-sketched artistic version of a website's favicon using OpenAI's gpt-image-1.5 model. Used on the marketing website for visual appeal.

## Architecture

```mermaid theme={null}
flowchart TD
    Request["POST /api/enhanced-logo?url=..."]
    
    subgraph services [Internal Services]
        FetchFav["fetch_favicon()"]
        ConvertPNG["convert_to_png()"]
        CheckGeneric["Check generic globe hash"]
        GenLogo["generate_enhanced_logo()"]
        GetBase["get_base_image_bytes()"]
    end
    
    subgraph external [External APIs]
        Website["Target Website"]
        Google["Google Favicon Service"]
        OpenAI["OpenAI gpt-image-1.5"]
    end
    
    Request --> FetchFav
    FetchFav --> Website
    FetchFav -->|"Fallback"| Google
    FetchFav --> ConvertPNG
    ConvertPNG --> CheckGeneric
    CheckGeneric -->|"Generic"| Error["Return error"]
    CheckGeneric -->|"Real favicon"| GenLogo
    GenLogo --> GetBase
    GetBase --> OpenAI
    OpenAI --> Response["Return base64 image"]
```

## Pipeline

1. **Fetch Favicon** - Try HTML parsing, common paths, then Google fallback
2. **Convert to PNG** - Handle ICO, SVG, JPEG, GIF formats
3. **Check Generic** - Skip if Google returns generic globe icon
4. **Generate Enhanced** - Send to OpenAI with style reference image
5. **Return Base64** - Return as data URL for immediate display

## Internal Services

| Service                                            | Purpose                          |
| -------------------------------------------------- | -------------------------------- |
| [fetch\_favicon](fetch-favicon)                    | Downloads favicon from website   |
| [convert\_to\_png](convert-to-png)                 | Converts any image format to PNG |
| [generate\_enhanced\_logo](generate-enhanced-logo) | Calls OpenAI gpt-image-1.5       |
| [get\_base\_image\_bytes](get-base-image-bytes)    | Loads style reference image      |

## Code Location

```
src/website/enhanced_logo/
├── routes.py       # HTTP endpoint
├── service.py      # All business logic
└── base_image.png  # Style reference (hand-sketched Target logo)
```

## Rate Limiting

* **10 requests per minute** per IP address

## OpenAI Model

Uses `gpt-image-1.5` with `images.edit` endpoint for style transfer.
