Aller au contenu

Évaluer et gouverner le contenu généré par l’IA dans Strapi 5

Découvrez une démarche pas à pas pour auditer, réviser et conserver le contenu généré par l’IA dans Strapi 5, grâce à Revisionary et aux meilleures pratiques de gouvernance afin de rester conforme aux nouvelles réglementations.

Par l’équipe Revisionary · · 7 min de lecture

man in black crew neck t-shirt using macbook
Photo de Anthony Riera sur Unsplash

Réponse : Utilisez le versionnage, l’espace de révision, le journal d’audit et les paramètres de conservation de Revisionary pour créer un flux de travail reproductible qui capture chaque modification générée par l’IA, la fait passer par une révision humaine et stocke les preuves pour la conformité.


Pourquoi le contenu généré par l’IA nécessite une gouvernance

Les grands modèles de langage (LLM) peuvent créer du texte, des extraits de code et des métadonnées instantanément, mais ils introduisent :

  • Risque juridique – Attribution erronée, extraits protégés par le droit d’auteur ou contenu interdit.
  • Risque de qualité – Hallucinations, biais ou ton qui ne correspond pas aux directives de la marque.
  • Risque opérationnel – Modifications inattendues du contenu publié qui cassent les intégrations en aval.

Un CMS sans tête comme Strapi enregistre déjà qui a modifié quoi et quand. Étendre cet enregistrement pour inclure comment le contenu a été créé (humain vs. IA) donne aux équipes la visibilité nécessaire aux audits, à la conformité et à l’amélioration continue.

a group of people sitting around a table with laptops
Photo de Lyubomyr Reverchuk sur Unsplash

Checklist rapide de gouvernance

✅Action
1Activer Revisionary sur chaque type de contenu susceptible de recevoir une sortie IA.
2Ajouter un champ méta caché (par ex. generated_by) pour capturer le nom du LLM et l’ID de la requête.
3Configurer l’espace de Révision pour exiger une approbation humaine avant la publication des brouillons IA.
4Consigner chaque requête IA dans le journal d’audit via un hook lifecycle Strapi personnalisé.
5Définir des politiques de rétention qui conservent les versions générées par IA pendant la durée requise par votre juridiction.
6Définir des permissions basées sur les rôles afin que seuls les éditeurs approuvés puissent publier du contenu IA.
7Exécuter périodiquement des contrôles de qualité (plagiat, conformité aux politiques) sur l’historique des versions.

Comprendre le paysage juridique émergent

Les régulateurs de plusieurs régions élaborent des règles qui impactent directement les médias générés par IA. Bien que les spécificités évoluent, les thèmes communs incluent :

  • Transparence – Les éditeurs doivent divulguer quand le contenu est généré par IA.
  • Traçabilité – Les organisations doivent conserver les versions du modèle et le prompt utilisé.
  • Sécurité – Le contenu prohibé (discours haineux, persuasion politique interdite, etc.) doit être filtré.

Rester conforme signifie donc capturer la provenance au moment de la génération et la conserver pendant la période de rétention requise. Le journal d’audit de Strapi et l’historique des versions de Revisionary offrent une piste d’audit intégrée et infalsifiable.

Mettre en place un flux de génération sécurisé dans Strapi

1. Installer Revisionary et marquer les types de contenu comme versionnés

bash
# En supposant que vous avez Strapi 5 installé
unzip revisionary.zip -d ./src/plugins
npm run build && npm run develop

Après l’installation, rendez‑vous dans Paramètres → Plugins → Revisionary et activez le versionnage pour tout type de collection qui recevra des données générées par IA (par ex. article, blogPost, productDescription). Cela ajoute un panneau Historique des versions sur le côté droit du Gestionnaire de contenu, comme décrit dans le guide utilisateur [/docs/everyday-use/panel].

2. Ajouter un champ méta pour la provenance IA

Créez un champ JSON caché nommé generated_by sur les types de contenu sélectionnés. Exemple d’extrait de schéma :

json
{
  "kind": "collectionType",
  "collectionName": "articles",
  "info": {"singularName": "article", "pluralName": "articles"},
  "options": {"draftAndPublish": true},
  "attributes": {
    "title": {"type": "string"},
    "body": {"type": "richtext"},
    "generated_by": {"type": "json", "private": true}
  }
}

Le champ sera rempli automatiquement par un petit hook lifecycle qui s’exécute après la fin d’une requête IA.

3. Brancher le processus de génération IA

En supposant que vous appelez le point d’accès chat/completions d’OpenAI depuis un service Strapi personnalisé, ajoutez un hook pour stocker la provenance :

js
// src/api/article/services/article.js
const { createCoreService } = require('@strapi/strapi').factories;

module.exports = createCoreService('api::article.article', ({ strapi }) => ({
  async generateFromAI(entryId, prompt) {
    const response = await strapi.plugin('openai').service('client').createChatCompletion({
      model: 'gpt-4',
      messages: [{ role: 'user', content: prompt }],
    });

    // Enregistrer la sortie IA et la provenance
    const updated = await strapi.entityService.update('api::article.article', entryId, {
      data: {
        body: response.choices[0].message.content,
        generated_by: {
          model: 'gpt-4',
          requestId: response.id,
          timestamp: new Date().toISOString(),
          prompt,
        },
      },
    });

    // Enregistrer une entrée d’audit personnalisée (voir la section suivante)
    await strapi.service('api::audit.audit').logAIAction(entryId, response.id);
    return updated;
  },
}));

Le champ generated_by est stocké avec la version du contenu, de sorte que chaque modification puisse être inspectée plus tard via le panneau Historique des versions.

4. Obliger une révision humaine avant la publication

Revisionary fournit un espace de Révision (/docs/teamwork/review) qui regroupe les entrées en attente d’approbation. Configurez le workflow :

  1. Dans Paramètres → Plugins → Revisionary → Review, définissez l’état par défaut des nouveaux brouillons sur « Needs Review ».
  2. Assignez au rôle « Reviewer » les permissions review:read et review:update.
  3. Lorsqu’un éditeur enregistre un brouillon généré par IA, il apparaît automatiquement dans la file d’attente de Révision.
  4. Le·la reviewer ouvre la version, vérifie les métadonnées generated_by, exécute les contrôles de conformité externes (plagiat, etc.) et Approuve (publie) ou Rejette (retourne en brouillon).

Comme Revisionary consigne chaque transition d’état, le journal d’audit indique qui a approuvé le contenu IA et à quel moment.

5. Consigner les actions spécifiques à l’IA dans le journal d’audit

Le journal d’audit natif de Strapi capture les actions génériques comme create, update, delete. Pour ajouter des entrées spécifiques à l’IA, créez un plugin léger ou utilisez un service personnalisé :

js
// src/api/audit/services/audit.js
module.exports = ({ strapi }) => ({
  async logAIAction(entryId, requestId) {
    await strapi.entityService.create('plugin::audit.audit-log', {
      data: {
        action: 'ai_generate',
        entity: 'article',
        entityId: entryId,
        details: { requestId },
        user: strapi.admin.getCurrentAdmin().id,
      },
    });
  },
});

Ces entrées apparaissent aux côtés de la trace d’audit standard, offrant un dossier complet pour les régulateurs.

Politiques de rétention et de stockage

Les juridictions prescrivent des durées de conservation différentes pour le contenu généré par IA. Les paramètres Rétention et stockage de Revisionary (/docs/settings/retention) vous permettent de définir une règle globale (par ex. 24 mois) ou des dépassements par type de contenu.

  1. Accédez à Paramètres → Plugins → Revisionary → Retention.
  2. Choisissez « Conserver toutes les versions pendant » et indiquez le nombre de jours souhaité.
  3. Activez « Purger automatiquement » afin que les versions anciennes soient supprimées sans intervention manuelle.

Lorsqu’une version est purgée, l’entrée du journal d’audit demeure, préservant la preuve de génération tout en libérant de l’espace de stockage.

Permissions : qui peut générer, réviser et publier ?

Un contrôle d’accès granulaire est essentiel pour empêcher une utilisation non autorisée de l’IA. La matrice de permissions de Strapi (/docs/getting-started/permissions) vous permet de :

  • Créer un rôle dédié « AI‑Operator » qui peut appeler le service de génération mais ne peut pas publier directement.
  • Accorder au rôle « Reviewer » la capacité de passer un brouillon de Needs Review à Approved.
  • Restreindre le rôle « Publisher » pour ne publier que du contenu ayant passé la révision.

En séparant ces responsabilités, vous imposez un principe des quatre yeux et respectez de nombreux cadres de conformité.

Étapes pratiques de contrôle qualité

ÉtapeOutil/FonctionnalitéCe qu’il faut vérifier
1Différence de version RevisionaryComparer les champs générés par IA avec la version précédente pour repérer les hallucinations.
2Script de linting personnaliséExécuter une vérification grammaticale/orthographique sur le champ body avant qu’il n’entre en Révision.
3API de plagiatValider que la sortie IA ne reproduit pas de texte protégé par le droit d’auteur.
4Filtre de politiqueSi vous utilisez déjà la modération OpenAI, faire passer le texte généré et stocker le résultat dans generated_by.moderation.
5Checklist du·de la reviewer humaineConfirmer le ton, la voix de marque et la présence de mentions légales.

Toutes ces étapes peuvent être automatisées dans un pipeline CI/CD qui récupère le dernier brouillon via l’API Contenu (/docs/reference/content-api) et exécute les tests avant l’étape de Révision.

Exemple de flux de bout en bout

  1. L’éditeur de contenu clique sur le bouton « Generate with AI » dans l’interface Strapi (bouton personnalisé déclenchant le service présenté plus haut).
  2. Le service renvoie le texte, le stocke et enregistre la provenance.
  3. Revisionary crée une nouvelle version brouillon avec le statut « Needs Review ».
  4. Le·la reviewer ouvre l’espace de Révision, examine le diff de version, lance les contrôles externes et clique sur Approuver.
  5. L’approbation change le statut en « Ready to Publish » ; le rôle Publisher peut alors rendre le contenu public.
  6. Chaque transition (génération, révision, approbation, publication) apparaît dans le journal d’audit, et la chaîne complète de versions est conservée pendant la période de rétention configurée.

Alignement avec la réglementation IA

RéglementationExigence principaleComment Revisionary aide
EU AI Act (proposé)Transparence des médias générés par IALe champ generated_by stocke le nom du modèle et l’ID de la requête ; visible dans l’historique des versions.
US FTC Guidance (déclarations IA)Étiquetage clairAjouter un booléen calculé is_ai_generated que le front‑end peut lire via l’API Contenu.
UK Online Safety BillConservation des traces de contenu nocifLe journal d’audit consigne les résultats de modération et les décisions du·de la reviewer.

En faisant correspondre chaque clause réglementaire à une fonctionnalité Strapi concrète, vous pouvez bâtir une matrice de conformité qui reste à jour à mesure que les lois évoluent.

Checklist de gouvernance continue

  • Activer Revisionary sur tous les types de contenu éligibles à l’IA.
  • Ajouter les métadonnées de provenance (generated_by).
  • Imposer la Révision avant la publication des brouillons IA.
  • Consigner les actions IA dans le journal d’audit.
  • Définir la rétention pour répondre aux exigences légales.
  • Définir les rôles : AI‑Operator, Reviewer, Publisher.
  • Intégrer les contrôles qualité externes (plagiat, modération).
  • Auditer périodiquement le journal d’audit pour détecter les entrées manquantes.
  • Mettre à jour les politiques dès l’apparition de nouvelles régulations.

En suivant cette checklist, le contenu généré par IA passe d’un raccourci risqué à un actif contrôlé et auditable.


Server rack with blinking green lights
Photo de Domaintechnik sur Unsplash

Conclusion

L’IA peut accélérer la création de contenu, mais sans couche de gouvernance structurée les équipes s’exposent à des risques juridiques, de qualité et opérationnels. Strapi 5 couplé au plugin Revisionary vous offre une chaîne de provenance complète : chaque édition générée par IA est versionnée, révisée, consignée et conservée selon la politique définie. En intégrant un petit champ de provenance, en imposant un workflow de Révision et en configurant la rétention et les permissions, vous vous alignez sur les nouvelles régulations IA tout en conservant une expérience éditoriale rapide et collaborative.

Mots-clésIAgouvernance du contenuStrapiRevisionaryLLMCMS sans tête

L’équipe Revisionary

Les développeurs de Revisionary, un plugin d’historique des versions pour Strapi 5. Nous écrivons sur Strapi, le développement web, l’IA et la sécurité des applications.

Cet article a été rédigé avec l'aide d'une IA.

Tous les articles

IA

RAG versionné avec Strapi et Revisionary

Apprenez à créer un pipeline RAG qui interroge le contenu de Strapi tout en respectant l’historique des versions, grâce à Revisionary pour des réponses à jour et traçables.

· 5 min de lecture