vendredi 25 septembre 2026

À propos

Contact

IA & MCP

Un plugin de légendes automatiques par IA pour la médiathèque WordPress

Recette d'une extension qui propose légende et texte alternatif à chaque import dans la médiathèque, avec validation manuelle avant publication.

Par Clément Hadrot • 2 avril 2023 • 4 min de lecture • Aucun commentaire
Un plugin de légendes automatiques par IA pour la médiathèque WordPress

Un client gérant un site immobilier importe entre 30 et 50 photos par bien mis en vente, sans jamais renseigner le texte alternatif requis pour l’accessibilité. Plutôt que de former son équipe à une tâche perçue comme fastidieuse, nous avons construit une extension qui propose automatiquement une légende et un texte alternatif dès l’import, à valider en un clic.

Le principe reste volontairement simple : aucune publication directe du texte généré, un humain valide ou corrige systématiquement avant que le champ ne soit réellement enregistré sur l’image.

Étape 1 : intercepter l’import dans la médiathèque

Le hook add_attachment se déclenche dès qu’un fichier est ajouté à la médiathèque, qu’il s’agisse d’un import direct ou d’un ajout via l’éditeur de contenu. On y récupère le chemin du fichier pour le transmettre à l’API de vision.

add_action( 'add_attachment', function ( $attachment_id ) {
    if ( ! wp_attachment_is_image( $attachment_id ) ) {
        return;
    }
    $file_url = wp_get_attachment_url( $attachment_id );
    // planifier l'appel API en tâche asynchrone
    wp_schedule_single_event( time(), 'generer_legende_ia', array( $attachment_id, $file_url ) );
} );

L’appel est délibérément planifié en tâche asynchrone plutôt qu’exécuté en direct : l’import d’une image ne doit jamais attendre la réponse d’une API externe, sous peine de ralentir l’expérience de l’utilisateur qui vient d’ajouter son fichier.

Étape 2 : appeler l’API de vision

La tâche planifiée envoie l’URL de l’image à l’API GPT-4 avec capacités de vision, avec un prompt demandant deux sorties distinctes, une légende descriptive courte et un texte alternatif factuel, sans interprétation ni ton commercial.

add_action( 'generer_legende_ia', function ( $attachment_id, $file_url ) {
    $response = wp_remote_post( 'https://api.openai.com/v1/chat/completions', array(
        'headers' => array(
            'Authorization' => 'Bearer ' . get_option( 'mon_plugin_openai_key' ),
            'Content-Type'  => 'application/json',
        ),
        'body' => wp_json_encode( array(
            'model'    => 'gpt-4-vision-preview',
            'messages' => array( array(
                'role'    => 'user',
                'content' => array(
                    array( 'type' => 'text', 'text' => 'Décris factuellement cette photo de bien immobilier en une légende courte et un texte alternatif accessible.' ),
                    array( 'type' => 'image_url', 'image_url' => array( 'url' => $file_url ) ),
                ),
            ) ),
        ) ),
        'timeout' => 30,
    ) );
    // stocker la proposition en attente de validation, pas encore dans les champs finaux
    update_post_meta( $attachment_id, '_legende_ia_proposee', wp_remote_retrieve_body( $response ) );
}, 10, 2 );
L'essentiel à retenir : Proposition automatique dès l'import, jamais de publication directe ; Un appel API de vision par image importée ; La validation manuelle reste une étape obligatoire

Étape 3 : la validation manuelle dans l’écran médiathèque

Plutôt que d’écrire directement dans les champs légende et texte alternatif de l’image, l’extension stocke la proposition dans une méta séparée et affiche, sur l’écran de détail de l’image, un encart distinctif avec la suggestion et deux boutons, valider ou modifier. Ce n’est qu’au clic sur « valider » que le texte est réellement copié dans wp_update_post() pour la légende et dans le champ _wp_attachment_image_alt pour le texte alternatif.

  • Aucune image ne se retrouve avec un texte alternatif généré sans validation
  • L’équipe garde la main sur la terminologie propre au secteur immobilier
  • Les propositions non validées restent visibles pour traitement ultérieur

Ce que la validation manuelle a corrigé

Sur les 200 premières images traitées, l’équipe a modifié la proposition de l’IA dans 18 % des cas, principalement pour préciser un type de bien (« maison de ville » plutôt que « maison »), corriger une orientation de pièce mal identifiée, ou retirer une mention de prix que le modèle avait cru lire sur une affiche visible dans la photo.

Une légende générée par IA est un brouillon utile, jamais un texte publiable sans un regard qui connaît le métier.

En résumé

Automatiser la proposition de légendes et de textes alternatifs fait gagner un temps réel sur un travail répétitif et souvent négligé, à condition de ne jamais court-circuiter la validation humaine. L’architecture en trois étapes, import asynchrone, appel API de vision, validation explicite avant écriture définitive, garantit qu’aucun texte halluciné ne se retrouve publié sans contrôle sur un site professionnel.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi