{"id":91619,"date":"2024-02-03T09:46:59","date_gmt":"2024-02-03T09:46:59","guid":{"rendered":"https:\/\/benoit-barbagli.com\/project\/le-grand-benoid\/"},"modified":"2024-02-03T09:47:25","modified_gmt":"2024-02-03T09:47:25","slug":"le-grand-benoid","status":"publish","type":"project","link":"https:\/\/benoit-barbagli.com\/en\/project\/le-grand-benoid\/","title":{"rendered":"LE GRAND BENOID"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.16&#8243; global_colors_info=&#8221;{}&#8221; da_is_popup=&#8221;off&#8221; da_exit_intent=&#8221;off&#8221; da_has_close=&#8221;on&#8221; da_alt_close=&#8221;off&#8221; da_dark_close=&#8221;off&#8221; da_not_modal=&#8221;on&#8221; da_is_singular=&#8221;off&#8221; da_with_loader=&#8221;off&#8221; da_has_shadow=&#8221;on&#8221; da_disable_devices=&#8221;off|off|off&#8221;][et_pb_row _builder_version=&#8221;4.22.2&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; width_tablet=&#8221;100%&#8221; width_phone=&#8221;100%&#8221; width_last_edited=&#8221;on|tablet&#8221; custom_margin=&#8221;48px||||false|false&#8221; custom_margin_tablet=&#8221;|0px||0px|false|false&#8221; custom_margin_phone=&#8221;|0px||0px|false|false&#8221; custom_margin_last_edited=&#8221;on|tablet&#8221; custom_padding=&#8221;0px||4px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_code admin_label=&#8221;Breadcrumb 1.2&#8243; _builder_version=&#8221;4.22.2&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;43px||||false|false&#8221; global_colors_info=&#8221;{}&#8221;]<div class=\"custom-breadcrumb\"><\/div><!-- [et_pb_line_break_holder] --><\/p>\n<style>\/*Fil d'ariane*\/<!-- [et_pb_line_break_holder] -->.custom-breadcrumb {<!-- [et_pb_line_break_holder] -->  font-size: 13px;<!-- [et_pb_line_break_holder] -->  color: gray;<!-- [et_pb_line_break_holder] -->  text-align: right;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/style>\n<p>[\/et_pb_code][et_pb_image src=&#8221;https:\/\/benoit-barbagli.com\/wp-content\/uploads\/2022\/08\/benoitb_half_robot_half_man_blue_fashion_photo_realistic_37889729-1c92-4500-a5f6-df3767b69312_ins.jpg&#8221; title_text=&#8221;benoitb_half_robot_half_man_blue_fashion_photo_realistic_37889729-1c92-4500-a5f6-df3767b69312_ins&#8221; align=&#8221;center&#8221; admin_label=&#8221;Image&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;100%&#8221; max_width_tablet=&#8221;100%&#8221; max_width_phone=&#8221;100%&#8221; max_width_last_edited=&#8221;on|phone&#8221; max_height=&#8221;696px&#8221; custom_margin=&#8221;88px||0px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][et_pb_code disabled_on=&#8221;off|off|off&#8221; admin_label=&#8221;FULL CLIENT VERSION script API OPENAI gtp4 (without slab)&#8221; _builder_version=&#8221;4.23&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#FFFFFF&#8221; positioning=&#8221;fixed&#8221; vertical_offset=&#8221;-962px&#8221; horizontal_offset=&#8221;-1000px&#8221; width=&#8221;36%&#8221; custom_margin=&#8221;0px||||false|false&#8221; custom_padding=&#8221;52px|52px|52px|52px|true|true&#8221; hover_enabled=&#8221;0&#8243; border_radii=&#8221;on|2px|2px|2px|2px&#8221; border_width_all=&#8221;0px&#8221; border_color_all=&#8221;#000000&#8243; box_shadow_style=&#8221;preset1&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;]<script><!-- [et_pb_line_break_holder] -->function getRandomParam(list) {<!-- [et_pb_line_break_holder] -->    return list[Math.floor(Math.random() * list.length)];<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->function replaceNewlinesWithBreaks(text) {<!-- [et_pb_line_break_holder] -->    return text.replace(\/\\n\/g, '<!\u2013- [et_pb_br_holder] -\u2013>');<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->\/\/ Fonction asynchrone pour envoyer une requ\u00eate \u00e0 l'API GPT-4 d'OpenAI et r\u00e9cup\u00e9rer la r\u00e9ponse.<!-- [et_pb_line_break_holder] -->async function fetchGPT4Response(prompt) {<!-- [et_pb_line_break_holder] -->    \/\/ Affiche le prompt dans la console pour le d\u00e9bogage<!-- [et_pb_line_break_holder] -->    console.log(\"D\u00e9but de la fonction fetchGPT4Response avec le prompt:\", prompt);<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    \/\/ Cl\u00e9 API pour l'API GPT-4 d'OpenAI<!-- [et_pb_line_break_holder] -->    const apiKey = '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';<!-- [et_pb_line_break_holder] -->    \/\/ URL de l'API GPT-4<!-- [et_pb_line_break_holder] -->    const url = 'https:\/\/api.openai.com\/v1\/chat\/completions';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ Configuration de la requ\u00eate<!-- [et_pb_line_break_holder] -->    const payload = {<!-- [et_pb_line_break_holder] -->        model: 'gpt-4',<!-- [et_pb_line_break_holder] -->        messages: [<!-- [et_pb_line_break_holder] -->            {<!-- [et_pb_line_break_holder] -->                role: 'user',<!-- [et_pb_line_break_holder] -->                content: prompt<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        ],<!-- [et_pb_line_break_holder] -->        temperature: 0.7,<!-- [et_pb_line_break_holder] -->        max_tokens: 400  \/\/ Limite la taille de la r\u00e9ponse<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] -->    const options = {<!-- [et_pb_line_break_holder] -->        method: 'POST',<!-- [et_pb_line_break_holder] -->        headers: {<!-- [et_pb_line_break_holder] -->            'Content-Type': 'application\/json',<!-- [et_pb_line_break_holder] -->            'Authorization': `Bearer ${apiKey}`<!-- [et_pb_line_break_holder] -->        },<!-- [et_pb_line_break_holder] -->        body: JSON.stringify(payload)<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ Envoi de la requ\u00eate et gestion des r\u00e9ponses et des erreurs<!-- [et_pb_line_break_holder] -->    try {<!-- [et_pb_line_break_holder] -->        console.log(\"Envoi de la requ\u00eate \u00e0 OpenAI...\");<!-- [et_pb_line_break_holder] -->        const response = await fetch(url, options);<!-- [et_pb_line_break_holder] -->        console.log(\"R\u00e9ponse re\u00e7ue:\", response);<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        const data = await response.json();<!-- [et_pb_line_break_holder] -->        console.log(\"Donn\u00e9es JSON:\", data);<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        if (data.choices && data.choices[0]) {<!-- [et_pb_line_break_holder] -->            return data.choices[0].message.content.trim();<!-- [et_pb_line_break_holder] -->        } else {<!-- [et_pb_line_break_holder] -->            console.log(\"Erreur: Pas de choix dans la r\u00e9ponse\");<!-- [et_pb_line_break_holder] -->            return 'Erreur';<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->    } catch (error) {<!-- [et_pb_line_break_holder] -->        console.log(\"Erreur retourn\u00e9e par OpenAI:\", error);<!-- [et_pb_line_break_holder] -->        return 'Erreur';<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->function generateArt() {<!-- [et_pb_line_break_holder] -->    console.log(\"D\u00e9but de la fonction generateArt\");<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    document.getElementById('spinner').style.display = 'block';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const userPrompt = document.getElementById('userPrompt').value;<!-- [et_pb_line_break_holder] -->    const authorNameInput = document.getElementById('authorName').value;<!-- [et_pb_line_break_holder] -->    const isAnonymous = document.getElementById('anonymous').checked;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    if (!authorNameInput && !isAnonymous) {<!-- [et_pb_line_break_holder] -->        alert(\"Veuillez remplir le nom de l'auteur ou cocher la case 'Anonyme'\");<!-- [et_pb_line_break_holder] -->        document.getElementById('spinner').style.display = 'none';<!-- [et_pb_line_break_holder] -->        return;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    let authorName = isAnonymous ? 'un anonyme' : authorNameInput;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const themeList = ['social', 'militant.e', 'anticapitaliste', 'sexuel', 'ecologique', 'deconstruction', 'decroissance', 'chair du monde', 'decroissance', 'polyamour', 'feminisme'];<!-- [et_pb_line_break_holder] -->    const artTypesList = ['une performance sensible', 'une instalation sensible', 'une \u0153uvre m\u00e9taphysique', 'un hacking de la r\u00e9alit\u00e9', '\u0153uvre conceptuelle', 'une sculpture fragile, sensible , et humaine'];<!-- [et_pb_line_break_holder] -->     const metaphore = ['absurde', 'mystique', 'sexuelle', 'poetique'];<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const randomParamTheme = getRandomParam(themeList);<!-- [et_pb_line_break_holder] -->    const randomArtType = getRandomParam(artTypesList);<!-- [et_pb_line_break_holder] -->  const randommetaphore = getRandomParam(metaphore);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const fullPrompt = `Tu es un artiste,cr\u00e9e ${randomArtType} et ${randomParamTheme} qui contient l'id\u00e9e de \"${userPrompt}\" Pas besoin de rappeler que tu es une IA, joue le jeu d'\u00eatre un artiste. Commence ta premiere phrase par une m\u00e9taphore ${randommetaphore}, fait un saut de ligne et d\u00e9crit l'oeuvre. Ne depasse pas 14 lignes.`;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    fetchGPT4Response(fullPrompt)<!-- [et_pb_line_break_holder] -->        .then(artworkResponse => {<!-- [et_pb_line_break_holder] -->            const titlePrompt = `G\u00e9n\u00e8re un titre pour cette \u0153uvre d'art de 6 mots maximum, \u00e9crit seulement le titre aucun autre symbole, pas de guillemet : \"${artworkResponse}\"`;<!-- [et_pb_line_break_holder] -->            return fetchGPT4Response(titlePrompt).then(titleResponse => {<!-- [et_pb_line_break_holder] -->                return { artwork: artworkResponse, title: titleResponse };<!-- [et_pb_line_break_holder] -->            });<!-- [et_pb_line_break_holder] -->        })<!-- [et_pb_line_break_holder] -->        .then(({ artwork, title }) => {<!-- [et_pb_line_break_holder] -->            document.getElementById('spinner').style.display = 'none';<!-- [et_pb_line_break_holder] -->            document.getElementById('resultTitle').innerHTML = `<strong>${title}<\/strong>`;<!-- [et_pb_line_break_holder] -->            <!-- [et_pb_line_break_holder] -->      const formattedArtwork = replaceNewlinesWithBreaks(artwork);<!-- [et_pb_line_break_holder] -->      <!-- [et_pb_line_break_holder] -->       const resultText = isAnonymous ? <!-- [et_pb_line_break_holder] -->        `<\/p>\n<div style=\"text-align:justify;\">${formattedArtwork}<\/div>\n<p><!\u2013- [et_pb_br_holder] -\u2013><!\u2013- [et_pb_br_holder] -\u2013><\/p>\n<div style=\"text-align:right;\"><em>Cocr\u00e9ation d'un anonyme avec B-Noid<\/em><\/div>\n<p>` : <!-- [et_pb_line_break_holder] -->        `<\/p>\n<div style=\"text-align:justify;\">${formattedArtwork}<\/div>\n<p><!\u2013- [et_pb_br_holder] -\u2013><!\u2013- [et_pb_br_holder] -\u2013><\/p>\n<div style=\"text-align:right;\"><em>Cocr\u00e9ation de ${authorName} et B-Noid<\/em><\/div>\n<p>`;<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->            document.getElementById('result').innerHTML = resultText;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            const entry = {<!-- [et_pb_line_break_holder] -->                fullPrompt: fullPrompt, <!-- [et_pb_line_break_holder] -->                author: authorName,<!-- [et_pb_line_break_holder] -->                prompt: userPrompt,<!-- [et_pb_line_break_holder] -->                artwork: artwork,<!-- [et_pb_line_break_holder] -->                title: title,<!-- [et_pb_line_break_holder] -->                date: new Date().toISOString()<!-- [et_pb_line_break_holder] -->            };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            fetch('\/wp-json\/bnoid\/v1\/archive', {<!-- [et_pb_line_break_holder] -->                method: 'POST',<!-- [et_pb_line_break_holder] -->                headers: {<!-- [et_pb_line_break_holder] -->                    'Content-Type': 'application\/json',<!-- [et_pb_line_break_holder] -->                },<!-- [et_pb_line_break_holder] -->                body: JSON.stringify({ entry }),<!-- [et_pb_line_break_holder] -->            });<!-- [et_pb_line_break_holder] -->        })<!-- [et_pb_line_break_holder] -->        .catch(error => {<!-- [et_pb_line_break_holder] -->            \/\/ Gestion des erreurs<!-- [et_pb_line_break_holder] -->            console.error(\"Erreur lors de la g\u00e9n\u00e9ration de l'\u0153uvre d'art:\", error);<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->[\/et_pb_code][et_pb_code disabled_on=&#8221;on|on|on&#8221; admin_label=&#8221;SERVER VERSION script API OPENAI gtp4 (without slab)&#8221; _builder_version=&#8221;4.23&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#FFFFFF&#8221; positioning=&#8221;fixed&#8221; vertical_offset=&#8221;-962px&#8221; horizontal_offset=&#8221;-1000px&#8221; width=&#8221;36%&#8221; custom_margin=&#8221;0px||||false|false&#8221; custom_padding=&#8221;52px|52px|52px|52px|true|true&#8221; hover_enabled=&#8221;0&#8243; border_radii=&#8221;on|2px|2px|2px|2px&#8221; border_width_all=&#8221;0px&#8221; border_color_all=&#8221;#000000&#8243; box_shadow_style=&#8221;preset1&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243; disabled=&#8221;on&#8221;]<script><!-- [et_pb_line_break_holder] -->function getRandomParam(list) {<!-- [et_pb_line_break_holder] -->    return list[Math.floor(Math.random() * list.length)];<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function replaceNewlinesWithBreaks(text) {<!-- [et_pb_line_break_holder] -->    return text.replace(\/\\n\/g, '<!\u2013- [et_pb_br_holder] -\u2013>');<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->async function fetchFromServer(promptData) {<!-- [et_pb_line_break_holder] -->    const url = 'http:\/\/92.151.152.43:3000\/generateArt';<!-- [et_pb_line_break_holder] -->    console.log(\"Envoi de la requ\u00eate au serveur avec les donn\u00e9es:\", promptData);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    try {<!-- [et_pb_line_break_holder] -->        const response = await fetch(url, {<!-- [et_pb_line_break_holder] -->            method: 'POST',<!-- [et_pb_line_break_holder] -->            headers: {<!-- [et_pb_line_break_holder] -->                'Content-Type': 'application\/json',<!-- [et_pb_line_break_holder] -->            },<!-- [et_pb_line_break_holder] -->            body: JSON.stringify(promptData)<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        console.log(\"R\u00e9ponse re\u00e7ue du serveur:\", response);<!-- [et_pb_line_break_holder] -->        if (!response.ok) {<!-- [et_pb_line_break_holder] -->            throw new Error(`HTTP error! status: ${response.status}`);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        const data = await response.json();<!-- [et_pb_line_break_holder] -->        console.log(\"Donn\u00e9es JSON re\u00e7ues du serveur:\", data);<!-- [et_pb_line_break_holder] -->        return data;<!-- [et_pb_line_break_holder] -->    } catch (error) {<!-- [et_pb_line_break_holder] -->        console.error(\"Erreur lors de la communication avec le serveur:\", error);<!-- [et_pb_line_break_holder] -->        return null;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->function generateArt() {<!-- [et_pb_line_break_holder] -->    console.log(\"D\u00e9but de la fonction generateArt\");<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    document.getElementById('spinner').style.display = 'block';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const userPrompt = document.getElementById('userPrompt').value;<!-- [et_pb_line_break_holder] -->    const authorNameInput = document.getElementById('authorName').value;<!-- [et_pb_line_break_holder] -->    const isAnonymous = document.getElementById('anonymous').checked;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    if (!authorNameInput && !isAnonymous) {<!-- [et_pb_line_break_holder] -->        alert(\"Veuillez remplir le nom de l'auteur ou cocher la case 'Anonyme'\");<!-- [et_pb_line_break_holder] -->        document.getElementById('spinner').style.display = 'none';<!-- [et_pb_line_break_holder] -->        return;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    let authorName = isAnonymous ? 'un anonyme' : authorNameInput;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const themeList = ['social', 'militant.e', 'anticapitaliste', 'sexuel', 'ecologique', 'deconstruction', 'decroissance', 'chair du monde', 'decroissance', 'polyamour', 'feminisme'];<!-- [et_pb_line_break_holder] -->    const artTypesList = ['une performance sensible', 'une installation sensible', 'une \u0153uvre m\u00e9taphysique', 'un hacking de la r\u00e9alit\u00e9', '\u0153uvre conceptuelle', 'une sculpture fragile, sensible, et humaine'];<!-- [et_pb_line_break_holder] -->    const metaphore = ['absurde', 'mystique', 'sexuelle', 'poetique'];<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const randomParamTheme = getRandomParam(themeList);<!-- [et_pb_line_break_holder] -->    const randomArtType = getRandomParam(artTypesList);<!-- [et_pb_line_break_holder] -->    const randomMetaphore = getRandomParam(metaphore);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const fullPrompt = `Tu es un artiste, cr\u00e9e ${randomArtType} et ${randomParamTheme} qui contient l'id\u00e9e de \"${userPrompt}\" Pas besoin de rappeler que tu es une IA, joue le jeu d'\u00eatre un artiste. Commence ta premi\u00e8re phrase par une m\u00e9taphore ${randomMetaphore}, fait un saut de ligne et d\u00e9crit l'\u0153uvre. Ne d\u00e9passe pas 14 lignes.`;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    fetchFromServer({ userPrompt: fullPrompt, authorName, isAnonymous })<!-- [et_pb_line_break_holder] -->        .then(data => {<!-- [et_pb_line_break_holder] -->            if (!data) {<!-- [et_pb_line_break_holder] -->                throw new Error('Aucune r\u00e9ponse du serveur');<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            document.getElementById('spinner').style.display = 'none';<!-- [et_pb_line_break_holder] -->            document.getElementById('resultTitle').innerHTML = `<strong>${data.title}<\/strong>`;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            const formattedArtwork = replaceNewlinesWithBreaks(data.artwork);<!-- [et_pb_line_break_holder] -->            const resultText = isAnonymous ? <!-- [et_pb_line_break_holder] -->                `<\/p>\n<div style=\"text-align:justify;\">${formattedArtwork}<\/div>\n<p><!\u2013- [et_pb_br_holder] -\u2013><!\u2013- [et_pb_br_holder] -\u2013><\/p>\n<div style=\"text-align:right;\"><em>Cocr\u00e9ation d'un anonyme avec B-Noid<\/em><\/div>\n<p>` : <!-- [et_pb_line_break_holder] -->                `<\/p>\n<div style=\"text-align:justify;\">${formattedArtwork}<\/div>\n<p><!\u2013- [et_pb_br_holder] -\u2013><!\u2013- [et_pb_br_holder] -\u2013><\/p>\n<div style=\"text-align:right;\"><em>Cocr\u00e9ation de ${authorName} et B-Noid<\/em><\/div>\n<p>`;<!-- [et_pb_line_break_holder] -->            <!-- [et_pb_line_break_holder] -->            document.getElementById('result').innerHTML = resultText;<!-- [et_pb_line_break_holder] -->        })<!-- [et_pb_line_break_holder] -->        .catch(error => {<!-- [et_pb_line_break_holder] -->            console.error(\"Erreur lors de la g\u00e9n\u00e9ration de l'\u0153uvre d'art:\", error);<!-- [et_pb_line_break_holder] -->            document.getElementById('spinner').style.display = 'none';<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] -->[\/et_pb_code][et_pb_code admin_label=&#8221;division and style&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#FFFFFF&#8221; width=&#8221;36%&#8221; width_tablet=&#8221;90%&#8221; width_phone=&#8221;90%&#8221; width_last_edited=&#8221;on|tablet&#8221; max_width=&#8221;93%&#8221; module_alignment=&#8221;center&#8221; custom_margin=&#8221;-202px||||false|false&#8221; custom_margin_tablet=&#8221;-202px||||false|false&#8221; custom_margin_phone=&#8221;-122px||||false|false&#8221; custom_margin_last_edited=&#8221;on|tablet&#8221; custom_padding=&#8221;52px|52px|52px|52px|true|true&#8221; custom_padding_tablet=&#8221;52px|52px|52px|52px|true|true&#8221; custom_padding_phone=&#8221;25px|0px|25px|0px|true|true&#8221; custom_padding_last_edited=&#8221;on|phone&#8221; hover_enabled=&#8221;0&#8243; border_radii=&#8221;on|2px|2px|2px|2px&#8221; border_width_all=&#8221;3px&#8221; border_color_all=&#8221;#000000&#8243; box_shadow_style=&#8221;preset1&#8243; global_colors_info=&#8221;{}&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<div id=\"center-container\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<h1>The great B-Noid<\/h1>\n<p><!-- [et_pb_line_break_holder] -->  <pee>Enter a word or phrase to co-create a work with B-Noid :<\/pee><!-- [et_pb_line_break_holder] -->  <input type=\"text\" id=\"userPrompt\" placeholder=\"The origin of our creation\"><!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] -->  <pee><strong>Co-sign your creation<\/strong><\/pee><!-- [et_pb_line_break_holder] -->  <pee><em>Your work and name will be saved in the archive list.<\/em><\/pee><!-- [et_pb_line_break_holder] -->  <input type=\"text\" id=\"authorName\" placeholder=\"Your name\"><!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] -->  <input type=\"checkbox\" id=\"anonymous\">  I prefer to remain anonymous<!\u2013- [et_pb_br_holder] -\u2013><!-- [et_pb_line_break_holder] -->  <button onclick=\"generateArt()\">Creation<\/button><!-- [et_pb_line_break_holder] -->  <\/p>\n<div id=\"resultTitle\"><\/div>\n<p> <!-- Nouvelle div pour le titre --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div id=\"result\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div id=\"spinner\" class=\"spinner-container\" style=\"display:none;\"><!-- [et_pb_line_break_holder] -->    <pee><em>Creation in progress&#8230;<\/em><\/pee><pee><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"loader\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] -->  <!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- Styles CSS --><!-- [et_pb_line_break_holder] --><!-- Styles CSS --><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->  \/* Styles communs *\/<!-- [et_pb_line_break_holder] -->  #center-container {<!-- [et_pb_line_break_holder] -->    text-align: center;<!-- [et_pb_line_break_holder] -->    max-width: 100%;<!-- [et_pb_line_break_holder] -->    margin: 0 auto;<!-- [et_pb_line_break_holder] -->    padding: 0 20px; \/* Ajout de rembourrage pour espacer les \u00e9l\u00e9ments des bords *\/<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  input[type=\"text\"],<!-- [et_pb_line_break_holder] -->  input[type=\"checkbox\"],<!-- [et_pb_line_break_holder] -->  button {<!-- [et_pb_line_break_holder] -->    margin-bottom: 20px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  input[type=\"text\"]::placeholder {<!-- [et_pb_line_break_holder] -->    text-align: center;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  #result {<!-- [et_pb_line_break_holder] -->    margin-top: 20px;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Styles pour le spinner *\/<!-- [et_pb_line_break_holder] -->  .spinner-container {<!-- [et_pb_line_break_holder] -->    display: flex;<!-- [et_pb_line_break_holder] -->    justify-content: center;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->    flex-direction: column;<!-- [et_pb_line_break_holder] -->    width: 100%;<!-- [et_pb_line_break_holder] -->    z-index: 9999;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->.loader {<!-- [et_pb_line_break_holder] -->    border: 5px solid #cacacb;<!-- [et_pb_line_break_holder] -->    border-top: 5px solid #001F3F;<!-- [et_pb_line_break_holder] -->    border-radius: 50%;<!-- [et_pb_line_break_holder] -->    width: 50px;<!-- [et_pb_line_break_holder] -->    height: 50px;<!-- [et_pb_line_break_holder] -->    animation: spin 2s linear infinite;<!-- [et_pb_line_break_holder] -->    margin: 0 auto;  \/* Ajout de cette r\u00e8gle pour centrer le spinner *\/<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* Media Queries pour la responsivit\u00e9 *\/<!-- [et_pb_line_break_holder] -->  @media (max-width: 1068px) {<!-- [et_pb_line_break_holder] -->     #center-container {<!-- [et_pb_line_break_holder] -->      width: 100%;  \/* Augmentation de la largeur pour les petits \u00e9crans *\/<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->     #userPrompt {<!-- [et_pb_line_break_holder] -->      width: 90%;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    h1 {<!-- [et_pb_line_break_holder] -->      font-size: 18px;  \/* Augmentation de la taille du texte pour les petits \u00e9crans *\/<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->     p, input, button {<!-- [et_pb_line_break_holder] -->      font-size: 12px;  \/* Augmentation de la taille du texte pour les petits \u00e9crans *\/<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  @media (min-width: 769px) {<!-- [et_pb_line_break_holder] -->    #userPrompt {<!-- [et_pb_line_break_holder] -->      width: 90%;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    h1, p, input, button {<!-- [et_pb_line_break_holder] -->      font-size: 16px;  \/* Taille du texte pour les \u00e9crans plus grands *\/<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] -->[\/et_pb_code][et_pb_text admin_label=&#8221;Description text&#8221; _builder_version=&#8221;4.22.1&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;15px|59px||59px|false|true&#8221; custom_css_main_element=&#8221;margin-left: auto;||  margin-right: auto;||  display: block;||  width: 40%; &#8221; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;on|tablet&#8221; custom_css_main_element_phone=&#8221;margin-left: auto;||  margin-right: auto;||  display: block;||  width: 90%; &#8221; custom_css_main_element_tablet=&#8221;margin-left: auto;||  margin-right: auto;||  display: block;||  width: 70%; &#8220;]<\/p>\n<p style=\"text-align: justify;\"><span><em>The great B-Noid<\/em> is an AI program developed using an OpenAI API, which enables a work of art to be created and described in collaboration with the program.  <\/span><span><\/span><\/p>\n<p style=\"text-align: justify;\"><span>Simply write down a series of keywords and co-sign your creation.  <\/span><span><\/span><\/p>\n<p style=\"text-align: justify;\"><span>If you would like your work to be added to the public archive, send a message to <\/span><a href=\"mailto:contact@benoit-barbagli.com\" target=\"_new\" rel=\"noopener\">contact@benoit-barbagli.com<\/a><span>.<\/span><\/p>\n<p>[\/et_pb_text][et_pb_code disabled_on=&#8221;on|on|on&#8221; admin_label=&#8221;text audio&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; disabled=&#8221;on&#8221; global_colors_info=&#8221;{}&#8221;]<button id=\"listenButton\">Listen to the result<\/button><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->  \/\/ Fonction pour lire le texte g\u00e9n\u00e9r\u00e9<!-- [et_pb_line_break_holder] -->  function readGeneratedText() {<!-- [et_pb_line_break_holder] -->    const text = document.getElementById('result').innerText;<!-- [et_pb_line_break_holder] -->    const speech = new SpeechSynthesisUtterance(text);<!-- [et_pb_line_break_holder] -->    window.speechSynthesis.speak(speech);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ Ajout d'un \u00e9couteur d'\u00e9v\u00e9nement au bouton<!-- [et_pb_line_break_holder] -->  document.getElementById('listenButton').addEventListener('click', readGeneratedText);<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] -->[\/et_pb_code][et_pb_text admin_label=&#8221;Archives des creation TITRE&#8221; _builder_version=&#8221;4.22.1&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h3 style=\"text-align: center;\">Creation archives<\/h3>\n<p>[\/et_pb_text][et_pb_code admin_label=&#8221;ARCHIVE CREATION LIST JS&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;50%&#8221; max_width_tablet=&#8221;60%&#8221; max_width_phone=&#8221;80%&#8221; max_width_last_edited=&#8221;on|phone&#8221; custom_padding=&#8221;|28px||28px|false|true&#8221; custom_css_main_element=&#8221;margin-left: auto;||  margin-right: auto;||  display: block;||  width: 40%; &#8221; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;on|phone&#8221; custom_css_main_element_tablet=&#8221;margin-left: auto;||  margin-right: auto;||  display: block;||  width: 70%; &#8221; custom_css_main_element_phone=&#8221;margin-left: auto;||  margin-right: auto;||  display: block;||  width: 90%; &#8220;]<!-- Container pour centrer le bouton --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"buttonContainer\"><!-- [et_pb_line_break_holder] -->  <!-- Bouton d'actualisation --><!-- [et_pb_line_break_holder] -->  <button id=\"refreshButton\">\u21bb Updating<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- Div pour afficher les archives --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"archive\"><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- Styles CSS --><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#buttonContainer {<!-- [et_pb_line_break_holder] -->  display: flex;<!-- [et_pb_line_break_holder] -->  justify-content: center;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#refreshButton {<!-- [et_pb_line_break_holder] -->  text-align: right;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- Code JavaScript --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->\/\/ Fonction pour g\u00e9rer les erreurs<!-- [et_pb_line_break_holder] -->function handleError(error) {<!-- [et_pb_line_break_holder] -->  console.error('Erreur:', error);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/ Fonction pour afficher les archives<!-- [et_pb_line_break_holder] -->function displayArchives() {<!-- [et_pb_line_break_holder] -->  const archiveDiv = document.getElementById('archive');<!-- [et_pb_line_break_holder] -->  archiveDiv.innerHTML = '';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  fetch('\/wp-json\/bnoid\/v1\/archive')<!-- [et_pb_line_break_holder] -->    .then(response =&gt; {<!-- [et_pb_line_break_holder] -->      if (!response.ok) {<!-- [et_pb_line_break_holder] -->        throw new Error('R\u00e9ponse r\u00e9seau non ok');<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->      return response.json();<!-- [et_pb_line_break_holder] -->    })<!-- [et_pb_line_break_holder] -->    .then(archive =&gt; {<!-- [et_pb_line_break_holder] -->      if (archive.length === 0) {<!-- [et_pb_line_break_holder] -->        archiveDiv.innerText = \"Aucune archive disponible.\";<!-- [et_pb_line_break_holder] -->        return;<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      archive.reverse();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      archive.forEach(entry =&gt; {<!-- [et_pb_line_break_holder] -->        const entryDiv = document.createElement('div');<!-- [et_pb_line_break_holder] -->        const titleText = document.createElement('strong');<!-- [et_pb_line_break_holder] -->        const authorText = document.createElement('span');  \/\/ Modifi\u00e9<!-- [et_pb_line_break_holder] -->        const italicText = document.createElement('em');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        titleText.innerText = entry.title;<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        authorText.innerText = `B-Noid et ${entry.author}`;  \/\/ Modifi\u00e9<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        const dateOptions = { year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit', second: '2-digit' };<!-- [et_pb_line_break_holder] -->        italicText.innerText = new Date(entry.date).toLocaleString('fr-FR', dateOptions);<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(titleText);<!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(document.createElement('br'));<!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(authorText); \/\/ Modifi\u00e9<!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(document.createTextNode('  -  '));  \/\/ Nouveau<!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(italicText);  \/\/ Modifi\u00e9<!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(document.createElement('br'));<!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(document.createElement('br'));<!-- [et_pb_line_break_holder] -->        entryDiv.innerHTML += entry.artwork;<!-- [et_pb_line_break_holder] -->        archiveDiv.appendChild(entryDiv);<!-- [et_pb_line_break_holder] -->        archiveDiv.appendChild(document.createElement('br'));<!-- [et_pb_line_break_holder] -->        archiveDiv.appendChild(document.createElement('br'));<!-- [et_pb_line_break_holder] -->        archiveDiv.appendChild(document.createElement('br'));<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    })<!-- [et_pb_line_break_holder] -->    .catch(handleError);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/ ... (autres fonctions et code)<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->document.getElementById('refreshButton').addEventListener('click', displayArchives);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->displayArchives();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] -->[\/et_pb_code][et_pb_image src=&#8221;https:\/\/benoit-barbagli.com\/wp-content\/uploads\/2023\/09\/2021-03-08-163036-unscreen.gif&#8221; title_text=&#8221;2021-03-08-163036-unscreen&#8221; url=&#8221;https:\/\/benoit-barbagli.com\/en\/shop\/#produitderiv\u00e9&#8221; align=&#8221;center&#8221; admin_label=&#8221;gif support&#8221; module_class=&#8221;slow-gif&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;100%&#8221; module_alignment=&#8221;center&#8221; height=&#8221;118px&#8221; custom_css_main_element=&#8221;width: 70px;||height: 70px;||align-items: center;&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][et_pb_text admin_label=&#8221;support TEXT&#8221; _builder_version=&#8221;4.22.1&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;15px|59px||59px|false|true&#8221; custom_css_main_element=&#8221;margin-left: auto;||  margin-right: auto;||  display: block;||  width: 40%; &#8221; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;on|tablet&#8221; custom_css_main_element_phone=&#8221;margin-left: auto;||  margin-right: auto;||  display: block;||  width: 90%; &#8221; custom_css_main_element_tablet=&#8221;margin-left: auto;||  margin-right: auto;||  display: block;||  width: 70%; &#8220;]<\/p>\n<p style=\"text-align: center;\"><i>This app is free, so you can support its development:  <\/i><\/p>\n<p style=\"text-align: center;\"><i> <a href=\"https:\/\/benoit-barbagli.com\/en\/shop\/#produitderiv%C3%A9\">Buy a pin<\/a> \/ <a href=\"https:\/\/benoit-barbagli.com\/en\/shop\/\">Visit the store<\/a><\/i><\/p>\n<p>[\/et_pb_text][et_pb_toggle _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<!-- Container pour centrer le bouton --><\/p>\n<div id=\"buttonContainer\">\n  <!-- Bouton d'actualisation --><br \/>\n  <button id=\"refreshButton\">\u21bb Updating<\/button>\n<\/div>\n<p><!-- Div pour afficher les archives --><\/p>\n<div id=\"archive\"><\/div>\n<p><!-- Styles CSS --><\/p>\n<style>\n#buttonContainer {\n  display: flex;\n  justify-content: center;\n}<\/p>\n<p>#refreshButton {\n  text-align: right;\n}\n<\/style>\n<p><!-- Code JavaScript --><br \/>\n<script>\n\/\/ Fonction pour g\u00e9rer les erreurs\nfunction handleError(error) {\n  console.error('Erreur:', error);\n}<\/p>\n<p>\/\/ Fonction pour afficher les archives\nfunction displayArchives() {\n  const archiveDiv = document.getElementById('archive');\n  archiveDiv.innerHTML = '';<\/p>\n<p>  fetch('\/wp-json\/bnoid\/v1\/archive')\n    .then(response =&gt; {\n      if (!response.ok) {\n        throw new Error('R\u00e9ponse r\u00e9seau non ok');\n      }\n      return response.json();\n    })\n    .then(archive =&gt; {\n      if (archive.length === 0) {\n        archiveDiv.innerText = \"Aucune archive disponible.\";\n        return;\n      }<\/p>\n<p>      archive.reverse();<\/p>\n<p>      archive.forEach(entry =&gt; {\n        const entryDiv = document.createElement('div');\n        const titleText = document.createElement('strong');\n        const authorText = document.createElement('span');  \/\/ Modifi\u00e9\n        const italicText = document.createElement('em');<\/p>\n<p>        titleText.innerText = entry.title;<\/p>\n<p>        authorText.innerText = `B-Noid et ${entry.author}`;  \/\/ Modifi\u00e9<\/p>\n<p>        const dateOptions = { year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit', second: '2-digit' };\n        italicText.innerText = new Date(entry.date).toLocaleString('fr-FR', dateOptions);<\/p>\n<p>        entryDiv.appendChild(titleText);\n        entryDiv.appendChild(document.createElement('br'));\n        entryDiv.appendChild(authorText); \/\/ Modifi\u00e9\n        entryDiv.appendChild(document.createTextNode('  -  '));  \/\/ Nouveau\n        entryDiv.appendChild(italicText);  \/\/ Modifi\u00e9\n        entryDiv.appendChild(document.createElement('br'));\n        entryDiv.appendChild(document.createElement('br'));\n        entryDiv.innerHTML += entry.artwork;\n        archiveDiv.appendChild(entryDiv);\n        archiveDiv.appendChild(document.createElement('br'));\n        archiveDiv.appendChild(document.createElement('br'));\n        archiveDiv.appendChild(document.createElement('br'));\n      });\n    })\n    .catch(handleError);\n}<\/p>\n<p>\/\/ ... (autres fonctions et code)<\/p>\n<p>document.getElementById('refreshButton').addEventListener('click', displayArchives);<\/p>\n<p>displayArchives();<\/p>\n<p><\/script>[\/et_pb_toggle][\/et_pb_column][\/et_pb_row][et_pb_row disabled_on=&#8221;on|on|on&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; disabled=&#8221;on&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_code admin_label=&#8221;aDMIN ARCHIVE CREATION LIST JS&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; max_width=&#8221;50%&#8221; max_width_tablet=&#8221;60%&#8221; max_width_phone=&#8221;80%&#8221; max_width_last_edited=&#8221;on|phone&#8221; custom_padding=&#8221;|28px||28px|false|true&#8221; custom_css_main_element=&#8221;margin-left: auto;||  margin-right: auto;||  display: block;||  width: 40%; &#8221; global_colors_info=&#8221;{}&#8221; custom_css_main_element_last_edited=&#8221;on|phone&#8221; custom_css_main_element_tablet=&#8221;margin-left: auto;||  margin-right: auto;||  display: block;||  width: 70%; &#8221; custom_css_main_element_phone=&#8221;margin-left: auto;||  margin-right: auto;||  display: block;||  width: 90%; &#8220;]<!-- Container pour centrer le bouton --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"buttonContainer\"><!-- [et_pb_line_break_holder] -->  <!-- Bouton d'actualisation --><!-- [et_pb_line_break_holder] -->  <button id=\"refreshButton\">\u21bb Updating<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- Div pour afficher les archives --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"archive\"><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- Styles CSS --><!-- [et_pb_line_break_holder] --><\/p>\n<style><!-- [et_pb_line_break_holder] -->#buttonContainer {<!-- [et_pb_line_break_holder] -->  display: flex;<!-- [et_pb_line_break_holder] -->  justify-content: center;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#refreshButton {<!-- [et_pb_line_break_holder] -->  text-align: right;<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><\/style>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- Code JavaScript --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->\/\/ Fonction pour g\u00e9rer les erreurs<!-- [et_pb_line_break_holder] -->function handleError(error) {<!-- [et_pb_line_break_holder] -->  console.error('Erreur:', error);<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/ Fonction pour afficher les archives<!-- [et_pb_line_break_holder] -->function displayArchives() {<!-- [et_pb_line_break_holder] -->  const archiveDiv = document.getElementById('archive');<!-- [et_pb_line_break_holder] -->  archiveDiv.innerHTML = '';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  fetch('\/wp-json\/bnoid\/v1\/archive')<!-- [et_pb_line_break_holder] -->    .then(response =&gt; {<!-- [et_pb_line_break_holder] -->      if (!response.ok) {<!-- [et_pb_line_break_holder] -->        throw new Error('R\u00e9ponse r\u00e9seau non ok');<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->      return response.json();<!-- [et_pb_line_break_holder] -->    })<!-- [et_pb_line_break_holder] -->    .then(archive =&gt; {<!-- [et_pb_line_break_holder] -->      if (archive.length === 0) {<!-- [et_pb_line_break_holder] -->        archiveDiv.innerText = \"Aucune archive disponible.\";<!-- [et_pb_line_break_holder] -->        return;<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      archive.reverse();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      archive.forEach((entry, index) =&gt; {<!-- [et_pb_line_break_holder] -->        const entryDiv = document.createElement('div');<!-- [et_pb_line_break_holder] -->        const titleText = document.createElement('strong');<!-- [et_pb_line_break_holder] -->        const deleteButton = document.createElement('button');  \/\/ Nouveau<!-- [et_pb_line_break_holder] -->        const authorText = document.createElement('span');<!-- [et_pb_line_break_holder] -->        const italicText = document.createElement('em');<!-- [et_pb_line_break_holder] -->        const promptText = document.createElement('p');<!-- [et_pb_line_break_holder] -->        const fullPromptText = document.createElement('p');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        titleText.innerText = entry.title;<!-- [et_pb_line_break_holder] -->        deleteButton.innerText = 'Supprimer';  \/\/ Nouveau<!-- [et_pb_line_break_holder] -->        deleteButton.onclick = () =&gt; deleteArchiveEntry(index, entryDiv);  \/\/ Nouveau<!-- [et_pb_line_break_holder] -->        authorText.innerText = `B-Noid et ${entry.author}`;<!-- [et_pb_line_break_holder] -->        italicText.innerText = new Date(entry.date).toLocaleString('fr-FR', { year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit', second: '2-digit' });<!-- [et_pb_line_break_holder] -->        promptText.innerText = `Prompt initial : ${entry.prompt}`;<!-- [et_pb_line_break_holder] -->        fullPromptText.innerText = `Prompt complet : ${entry.fullPrompt}`;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(titleText);<!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(deleteButton);  \/\/ Nouveau<!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(document.createElement('br'));<!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(authorText);<!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(document.createElement('br'));<!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(italicText);<!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(document.createElement('br'));<!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(promptText);<!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(document.createElement('br'));<!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(fullPromptText);<!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(document.createElement('br'));<!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(document.createTextNode(entry.artwork));<!-- [et_pb_line_break_holder] -->        entryDiv.appendChild(document.createElement('br'));<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        archiveDiv.appendChild(entryDiv);<!-- [et_pb_line_break_holder] -->        archiveDiv.appendChild(document.createElement('br'));<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->    })<!-- [et_pb_line_break_holder] -->    .catch(error =&gt; {<!-- [et_pb_line_break_holder] -->      console.error('Erreur:', error);<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/ Fonction pour supprimer une entr\u00e9e d'archive  \/\/ Nouveau<!-- [et_pb_line_break_holder] -->function deleteArchiveEntry(index, entryDiv) {<!-- [et_pb_line_break_holder] -->  fetch('\/wp-json\/bnoid\/v1\/delete_archive', {<!-- [et_pb_line_break_holder] -->    method: 'POST',<!-- [et_pb_line_break_holder] -->    headers: {<!-- [et_pb_line_break_holder] -->      'Content-Type': 'application\/json',<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->    body: JSON.stringify({ index }),<!-- [et_pb_line_break_holder] -->  })<!-- [et_pb_line_break_holder] -->  .then(response =&gt; response.json())<!-- [et_pb_line_break_holder] -->  .then(data =&gt; {<!-- [et_pb_line_break_holder] -->    if (data.status === 200) {<!-- [et_pb_line_break_holder] -->      entryDiv.remove();<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->document.getElementById('refreshButton').addEventListener('click', displayArchives);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->displayArchives();<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] -->[\/et_pb_code][et_pb_text admin_label=&#8221;Supprimer archive&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h2 style=\"text-align: center;\">Delete archive<\/h2>\n<p>[\/et_pb_text][et_pb_code admin_label=&#8221;JSON DOWNLOAD&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<!-- Bouton pour t\u00e9l\u00e9charger les archives --><!-- [et_pb_line_break_holder] --><button id=\"downloadButton\">Download JSON archives<\/button><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->  \/\/ Fonction pour t\u00e9l\u00e9charger les archives<!-- [et_pb_line_break_holder] -->  function downloadArchives() {<!-- [et_pb_line_break_holder] -->    fetch('\/wp-json\/bnoid\/v1\/archive')<!-- [et_pb_line_break_holder] -->      .then(response =&gt; response.json())<!-- [et_pb_line_break_holder] -->      .then(data =&gt; {<!-- [et_pb_line_break_holder] -->        const blob = new Blob([JSON.stringify(data, null, 2)], { type: 'application\/json' });<!-- [et_pb_line_break_holder] -->        const url = window.URL.createObjectURL(blob);<!-- [et_pb_line_break_holder] -->        const a = document.createElement('a');<!-- [et_pb_line_break_holder] -->        a.style.display = 'none';<!-- [et_pb_line_break_holder] -->        a.href = url;<!-- [et_pb_line_break_holder] -->        a.download = 'archives.json';<!-- [et_pb_line_break_holder] -->        document.body.appendChild(a);<!-- [et_pb_line_break_holder] -->        a.click();<!-- [et_pb_line_break_holder] -->        window.URL.revokeObjectURL(url);<!-- [et_pb_line_break_holder] -->      })<!-- [et_pb_line_break_holder] -->      .catch(error =&gt; console.error('Erreur:', error));<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ Ajoute un \u00e9couteur d'\u00e9v\u00e9nement au bouton<!-- [et_pb_line_break_holder] -->  document.getElementById('downloadButton').addEventListener('click', downloadArchives);<!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] -->[\/et_pb_code][et_pb_code admin_label=&#8221;TEXT DOWNLOAD&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<!-- Bouton pour t\u00e9l\u00e9charger les archives au format texte --><!-- [et_pb_line_break_holder] --><button id=\"textDownloadButton\">Download in text format<\/button><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] --> \/\/ Fonction pour t\u00e9l\u00e9charger les archives au format texte<!-- [et_pb_line_break_holder] -->function downloadTextArchive() {<!-- [et_pb_line_break_holder] -->    console.log(\"Fonction downloadTextArchive appel\u00e9e\");<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    fetch('\/wp-json\/bnoid\/v1\/archive')<!-- [et_pb_line_break_holder] -->        .then(response =&gt; response.json())<!-- [et_pb_line_break_holder] -->        .then(archive =&gt; {<!-- [et_pb_line_break_holder] -->            console.log(\"R\u00e9ponse de l'API re\u00e7ue:\", archive);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            if (archive.length === 0) {<!-- [et_pb_line_break_holder] -->                console.log(\"Aucune archive disponible\");<!-- [et_pb_line_break_holder] -->                return;<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            let textContent = \"\";<!-- [et_pb_line_break_holder] -->            archive.forEach(entry =&gt; {<!-- [et_pb_line_break_holder] -->                textContent += `Titre: ${entry.title}\\n`;<!-- [et_pb_line_break_holder] -->                textContent += `Auteur: ${entry.author}\\n`;<!-- [et_pb_line_break_holder] -->                textContent += `Date: ${new Date(entry.date).toLocaleDateString()}\\n`;<!-- [et_pb_line_break_holder] -->                textContent += `Prompt: ${entry.prompt}\\n`;<!-- [et_pb_line_break_holder] -->                textContent += `Oeuvre:\\n${entry.artwork}\\n\\n`;<!-- [et_pb_line_break_holder] -->            });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            console.log(\"Contenu texte g\u00e9n\u00e9r\u00e9:\", textContent);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            const textBlob = new Blob([textContent], { type: 'text\/plain' });<!-- [et_pb_line_break_holder] -->            const textUrl = URL.createObjectURL(textBlob);<!-- [et_pb_line_break_holder] -->            const textDownloadLink = document.createElement('a');<!-- [et_pb_line_break_holder] -->            textDownloadLink.style.display = 'none';<!-- [et_pb_line_break_holder] -->            textDownloadLink.href = textUrl;<!-- [et_pb_line_break_holder] -->            textDownloadLink.download = 'archive_texte.txt';<!-- [et_pb_line_break_holder] -->            document.body.appendChild(textDownloadLink);<!-- [et_pb_line_break_holder] -->            textDownloadLink.click();<!-- [et_pb_line_break_holder] -->            URL.revokeObjectURL(textUrl);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            console.log(\"T\u00e9l\u00e9chargement du fichier texte termin\u00e9\");<!-- [et_pb_line_break_holder] -->        })<!-- [et_pb_line_break_holder] -->        .catch(error =&gt; {<!-- [et_pb_line_break_holder] -->            console.error(\"Erreur lors du t\u00e9l\u00e9chargement de l'archive:\", error);<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/ Bouton pour d\u00e9clencher le t\u00e9l\u00e9chargement au format texte<!-- [et_pb_line_break_holder] -->const textDownloadButton = document.createElement('button');<!-- [et_pb_line_break_holder] -->textDownloadButton.innerText = 'T\u00e9l\u00e9charger au format texte';<!-- [et_pb_line_break_holder] -->textDownloadButton.id = 'textDownloadButton';  \/\/ Identifiant unique<!-- [et_pb_line_break_holder] -->textDownloadButton.addEventListener('click', downloadTextArchive);<!-- [et_pb_line_break_holder] -->document.body.appendChild(textDownloadButton);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] -->[\/et_pb_code][et_pb_code admin_label=&#8221;DELETE ALL RECORDS&#8221; _builder_version=&#8221;4.22.1&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<!-- Division pour le bouton de suppression --><!-- [et_pb_line_break_holder] --><\/p>\n<div id=\"deleteAllDiv\" style=\"text-align: center;\"><!-- [et_pb_line_break_holder] -->  <button id=\"deleteAllButton\">Delete all records<\/button><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- Code JavaScript --><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] --> \/\/ Fonction pour supprimer tous les enregistrements<!-- [et_pb_line_break_holder] -->function deleteAllEntries() {<!-- [et_pb_line_break_holder] -->  console.log(\"Tentative de suppression de tous les enregistrements...\");  \/\/ Ajout\u00e9 pour le d\u00e9bogage<!-- [et_pb_line_break_holder] -->  fetch('\/wp-json\/bnoid\/v1\/delete_all_archives', {<!-- [et_pb_line_break_holder] -->    method: 'POST',<!-- [et_pb_line_break_holder] -->    headers: {<!-- [et_pb_line_break_holder] -->      'Content-Type': 'application\/json',<!-- [et_pb_line_break_holder] -->    },<!-- [et_pb_line_break_holder] -->  })<!-- [et_pb_line_break_holder] -->  .then(response =&gt; response.json())<!-- [et_pb_line_break_holder] -->  .then(data =&gt; {<!-- [et_pb_line_break_holder] -->    console.log(\"R\u00e9ponse re\u00e7ue:\", data);  \/\/ Ajout\u00e9 pour le d\u00e9bogage<!-- [et_pb_line_break_holder] -->    if (data.status === 200) {<!-- [et_pb_line_break_holder] -->      alert('Tous les enregistrements ont \u00e9t\u00e9 supprim\u00e9s');<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->  })<!-- [et_pb_line_break_holder] -->  .catch(error =&gt; {<!-- [et_pb_line_break_holder] -->    console.error('Erreur:', error);<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/ Ajout de l'\u00e9couteur d'\u00e9v\u00e9nements au bouton<!-- [et_pb_line_break_holder] -->document.getElementById('deleteAllButton').addEventListener('click', deleteAllEntries);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] -->[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p><div class=\"custom-breadcrumb\"><\/div>The great B-Noid is an AI program developed using an OpenAI API, which enables a work of art to be created and described in collaboration with the program. Simply write down a series of keywords and co-sign your creation. If you would like your work to be added to the public archive, send a message [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":87478,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"project_category":[900,868],"project_tag":[],"class_list":["post-91619","project","type-project","status-publish","has-post-thumbnail","hentry","project_category-ia-en","project_category-works"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>LE GRAND BENOID - benoit-barbagli.com<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/benoit-barbagli.com\/en\/project\/le-grand-benoid\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"LE GRAND BENOID - benoit-barbagli.com\" \/>\n<meta property=\"og:description\" content=\"The great B-Noid is an AI program developed using an OpenAI API, which enables a work of art to be created and described in collaboration with the program. Simply write down a series of keywords and co-sign your creation. If you would like your work to be added to the public archive, send a message [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/benoit-barbagli.com\/en\/project\/le-grand-benoid\/\" \/>\n<meta property=\"og:site_name\" content=\"benoit-barbagli.com\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-03T09:47:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/benoit-barbagli.com\/wp-content\/uploads\/2022\/08\/benoitb_half_robot_half_man_blue_fashion_photo_realistic_37889729-1c92-4500-a5f6-df3767b69312_ins.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/benoit-barbagli.com\\\/en\\\/project\\\/le-grand-benoid\\\/\",\"url\":\"https:\\\/\\\/benoit-barbagli.com\\\/en\\\/project\\\/le-grand-benoid\\\/\",\"name\":\"LE GRAND BENOID - benoit-barbagli.com\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/benoit-barbagli.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/benoit-barbagli.com\\\/en\\\/project\\\/le-grand-benoid\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/benoit-barbagli.com\\\/en\\\/project\\\/le-grand-benoid\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/benoit-barbagli.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/benoitb_half_robot_half_man_blue_fashion_photo_realistic_37889729-1c92-4500-a5f6-df3767b69312_ins.jpg\",\"datePublished\":\"2024-02-03T09:46:59+00:00\",\"dateModified\":\"2024-02-03T09:47:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/benoit-barbagli.com\\\/en\\\/project\\\/le-grand-benoid\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/benoit-barbagli.com\\\/en\\\/project\\\/le-grand-benoid\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/benoit-barbagli.com\\\/en\\\/project\\\/le-grand-benoid\\\/#primaryimage\",\"url\":\"https:\\\/\\\/benoit-barbagli.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/benoitb_half_robot_half_man_blue_fashion_photo_realistic_37889729-1c92-4500-a5f6-df3767b69312_ins.jpg\",\"contentUrl\":\"https:\\\/\\\/benoit-barbagli.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/benoitb_half_robot_half_man_blue_fashion_photo_realistic_37889729-1c92-4500-a5f6-df3767b69312_ins.jpg\",\"width\":1024,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/benoit-barbagli.com\\\/en\\\/project\\\/le-grand-benoid\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/benoit-barbagli.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Projets\",\"item\":\"https:\\\/\\\/benoit-barbagli.com\\\/project\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"LE GRAND BENOID\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/benoit-barbagli.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/benoit-barbagli.com\\\/en\\\/\",\"name\":\"benoit-barbagli.com\",\"description\":\"Sous le chaos, la vie\",\"publisher\":{\"@id\":\"https:\\\/\\\/benoit-barbagli.com\\\/en\\\/#\\\/schema\\\/person\\\/78c8df9be07e5f4f79d983f84aafeefd\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/benoit-barbagli.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/benoit-barbagli.com\\\/en\\\/#\\\/schema\\\/person\\\/78c8df9be07e5f4f79d983f84aafeefd\",\"name\":\"benoitbarbagli\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/benoit-barbagli.com\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/Sisyphe-V-V3-final-scaled.jpg\",\"url\":\"https:\\\/\\\/benoit-barbagli.com\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/Sisyphe-V-V3-final-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/benoit-barbagli.com\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/Sisyphe-V-V3-final-scaled.jpg\",\"width\":1713,\"height\":2560,\"caption\":\"benoitbarbagli\"},\"logo\":{\"@id\":\"https:\\\/\\\/benoit-barbagli.com\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/Sisyphe-V-V3-final-scaled.jpg\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"LE GRAND BENOID - benoit-barbagli.com","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/benoit-barbagli.com\/en\/project\/le-grand-benoid\/","og_locale":"en_US","og_type":"article","og_title":"LE GRAND BENOID - benoit-barbagli.com","og_description":"The great B-Noid is an AI program developed using an OpenAI API, which enables a work of art to be created and described in collaboration with the program. Simply write down a series of keywords and co-sign your creation. If you would like your work to be added to the public archive, send a message [&hellip;]","og_url":"https:\/\/benoit-barbagli.com\/en\/project\/le-grand-benoid\/","og_site_name":"benoit-barbagli.com","article_modified_time":"2024-02-03T09:47:25+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/benoit-barbagli.com\/wp-content\/uploads\/2022\/08\/benoitb_half_robot_half_man_blue_fashion_photo_realistic_37889729-1c92-4500-a5f6-df3767b69312_ins.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/benoit-barbagli.com\/en\/project\/le-grand-benoid\/","url":"https:\/\/benoit-barbagli.com\/en\/project\/le-grand-benoid\/","name":"LE GRAND BENOID - benoit-barbagli.com","isPartOf":{"@id":"https:\/\/benoit-barbagli.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/benoit-barbagli.com\/en\/project\/le-grand-benoid\/#primaryimage"},"image":{"@id":"https:\/\/benoit-barbagli.com\/en\/project\/le-grand-benoid\/#primaryimage"},"thumbnailUrl":"https:\/\/benoit-barbagli.com\/wp-content\/uploads\/2022\/08\/benoitb_half_robot_half_man_blue_fashion_photo_realistic_37889729-1c92-4500-a5f6-df3767b69312_ins.jpg","datePublished":"2024-02-03T09:46:59+00:00","dateModified":"2024-02-03T09:47:25+00:00","breadcrumb":{"@id":"https:\/\/benoit-barbagli.com\/en\/project\/le-grand-benoid\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/benoit-barbagli.com\/en\/project\/le-grand-benoid\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/benoit-barbagli.com\/en\/project\/le-grand-benoid\/#primaryimage","url":"https:\/\/benoit-barbagli.com\/wp-content\/uploads\/2022\/08\/benoitb_half_robot_half_man_blue_fashion_photo_realistic_37889729-1c92-4500-a5f6-df3767b69312_ins.jpg","contentUrl":"https:\/\/benoit-barbagli.com\/wp-content\/uploads\/2022\/08\/benoitb_half_robot_half_man_blue_fashion_photo_realistic_37889729-1c92-4500-a5f6-df3767b69312_ins.jpg","width":1024,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/benoit-barbagli.com\/en\/project\/le-grand-benoid\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/benoit-barbagli.com\/en\/"},{"@type":"ListItem","position":2,"name":"Projets","item":"https:\/\/benoit-barbagli.com\/project\/"},{"@type":"ListItem","position":3,"name":"LE GRAND BENOID"}]},{"@type":"WebSite","@id":"https:\/\/benoit-barbagli.com\/en\/#website","url":"https:\/\/benoit-barbagli.com\/en\/","name":"benoit-barbagli.com","description":"Sous le chaos, la vie","publisher":{"@id":"https:\/\/benoit-barbagli.com\/en\/#\/schema\/person\/78c8df9be07e5f4f79d983f84aafeefd"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/benoit-barbagli.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/benoit-barbagli.com\/en\/#\/schema\/person\/78c8df9be07e5f4f79d983f84aafeefd","name":"benoitbarbagli","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/benoit-barbagli.com\/wp-content\/uploads\/2025\/04\/Sisyphe-V-V3-final-scaled.jpg","url":"https:\/\/benoit-barbagli.com\/wp-content\/uploads\/2025\/04\/Sisyphe-V-V3-final-scaled.jpg","contentUrl":"https:\/\/benoit-barbagli.com\/wp-content\/uploads\/2025\/04\/Sisyphe-V-V3-final-scaled.jpg","width":1713,"height":2560,"caption":"benoitbarbagli"},"logo":{"@id":"https:\/\/benoit-barbagli.com\/wp-content\/uploads\/2025\/04\/Sisyphe-V-V3-final-scaled.jpg"}}]}},"_links":{"self":[{"href":"https:\/\/benoit-barbagli.com\/en\/wp-json\/wp\/v2\/project\/91619","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/benoit-barbagli.com\/en\/wp-json\/wp\/v2\/project"}],"about":[{"href":"https:\/\/benoit-barbagli.com\/en\/wp-json\/wp\/v2\/types\/project"}],"author":[{"embeddable":true,"href":"https:\/\/benoit-barbagli.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/benoit-barbagli.com\/en\/wp-json\/wp\/v2\/comments?post=91619"}],"version-history":[{"count":6,"href":"https:\/\/benoit-barbagli.com\/en\/wp-json\/wp\/v2\/project\/91619\/revisions"}],"predecessor-version":[{"id":91741,"href":"https:\/\/benoit-barbagli.com\/en\/wp-json\/wp\/v2\/project\/91619\/revisions\/91741"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/benoit-barbagli.com\/en\/wp-json\/wp\/v2\/media\/87478"}],"wp:attachment":[{"href":"https:\/\/benoit-barbagli.com\/en\/wp-json\/wp\/v2\/media?parent=91619"}],"wp:term":[{"taxonomy":"project_category","embeddable":true,"href":"https:\/\/benoit-barbagli.com\/en\/wp-json\/wp\/v2\/project_category?post=91619"},{"taxonomy":"project_tag","embeddable":true,"href":"https:\/\/benoit-barbagli.com\/en\/wp-json\/wp\/v2\/project_tag?post=91619"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}