É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
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.
Checklist rapide de gouvernance
| ✅ | Action |
|---|---|
| 1 | Activer Revisionary sur chaque type de contenu susceptible de recevoir une sortie IA. |
| 2 | Ajouter un champ méta caché (par ex. generated_by) pour capturer le nom du LLM et l’ID de la requête. |
| 3 | Configurer l’espace de Révision pour exiger une approbation humaine avant la publication des brouillons IA. |
| 4 | Consigner chaque requête IA dans le journal d’audit via un hook lifecycle Strapi personnalisé. |
| 5 | Définir des politiques de rétention qui conservent les versions générées par IA pendant la durée requise par votre juridiction. |
| 6 | Définir des permissions basées sur les rôles afin que seuls les éditeurs approuvés puissent publier du contenu IA. |
| 7 | Exé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
# En supposant que vous avez Strapi 5 installé
unzip revisionary.zip -d ./src/plugins
npm run build && npm run developAprè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 :
{
"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 :
// 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 :
- Dans Paramètres → Plugins → Revisionary → Review, définissez l’état par défaut des nouveaux brouillons sur « Needs Review ».
- Assignez au rôle « Reviewer » les permissions
review:readetreview:update. - Lorsqu’un éditeur enregistre un brouillon généré par IA, il apparaît automatiquement dans la file d’attente de Révision.
- 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é :
// 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.
- Accédez à Paramètres → Plugins → Revisionary → Retention.
- Choisissez « Conserver toutes les versions pendant » et indiquez le nombre de jours souhaité.
- 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é
| Étape | Outil/Fonctionnalité | Ce qu’il faut vérifier |
|---|---|---|
| 1 | Différence de version Revisionary | Comparer les champs générés par IA avec la version précédente pour repérer les hallucinations. |
| 2 | Script de linting personnalisé | Exécuter une vérification grammaticale/orthographique sur le champ body avant qu’il n’entre en Révision. |
| 3 | API de plagiat | Valider que la sortie IA ne reproduit pas de texte protégé par le droit d’auteur. |
| 4 | Filtre de politique | Si vous utilisez déjà la modération OpenAI, faire passer le texte généré et stocker le résultat dans generated_by.moderation. |
| 5 | Checklist du·de la reviewer humaine | Confirmer 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
- 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).
- Le service renvoie le texte, le stocke et enregistre la provenance.
- Revisionary crée une nouvelle version brouillon avec le statut « Needs Review ».
- Le·la reviewer ouvre l’espace de Révision, examine le diff de version, lance les contrôles externes et clique sur Approuver.
- L’approbation change le statut en « Ready to Publish » ; le rôle Publisher peut alors rendre le contenu public.
- 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églementation | Exigence principale | Comment Revisionary aide |
|---|---|---|
| EU AI Act (proposé) | Transparence des médias générés par IA | Le 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 clair | Ajouter un booléen calculé is_ai_generated que le front‑end peut lire via l’API Contenu. |
| UK Online Safety Bill | Conservation des traces de contenu nocif | Le 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.
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.
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.