ewm/openai-bundle

Open Ai Bundle for Sulu

Installs: 21

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 1

Forks: 0

Open Issues: 0

Type:symfony-bundle

1.0.0 2025-05-20 10:59 UTC

This package is auto-updated.

Last update: 2025-08-20 11:46:09 UTC


README

By EWM License Version A Symfony/Sulu bundle that generates AI-powered descriptions for media using OpenAI.
Perfect for automating metadata in Sulu CMS!

✨ Features

  • Auto-generate descriptions for Sulu media uploads using OpenAI GPT.
  • Customizable prompts tailored to media types (e.g., "Describe this image for accessibility").
  • Admin UI integration – Generate descriptions with a click in Sulu Admin.
  • Event-driven – Automatically trigger descriptions on media upload.

📦 Installation

  1. Install the bundle via Composer:

    composer require ewm/openai-bundle
    
  2. Add the necessary environment variables to your .env file:

    Before using the bundle, ensure that the following environment variables are added to your .env file:

    • HOSTNAME: The public URL or hostname of your website. This variable defines the base URL from which the bundle can access resources, such as images.

      Example:

      HOSTNAME=https://example.com
    • OPEN_API_KEY: The API key required to authenticate your requests to the OpenAI service. You can generate and obtain this key directly from your OpenAI account.

      Example:

      OPEN_API_KEY=your-api-key-here

    Example .env file:

    # OpenAI API Configuration
    HOSTNAME=https://example.com
    OPEN_API_KEY=your-api-key-here
    

🛠 Usage

After installation and configuration, you can generate media descriptions using the following console command:

php bin/console media:create-description

This command will:

✅ Automatically generate AI-based image descriptions for all media items in your Sulu CMS that do not yet have a description.

🌐 Processes all supported locales defined in your Sulu webspace configuration (e.g., en, fr, de, es, it).

🖼 Targets only image media files, ensuring that only relevant media are analyzed.

📊 Displays a progress bar in the terminal to track processing in real-time.

📝 Logs all activity (including errors and processed image) in a dedicated file: /var/log/openai.log