AI Automators transforme les workflows IA complexes du code en configuration. Cette étude de cas révèle comment BetterRegulation a construit des workflows IA de qualité production traitant plus de 200 documents par mois avec une précision supérieure à 95 % – en utilisant des chaînes multi-étapes, des files d'attente en arrière-plan et des prompts gérés par l'administration. Aucun code d'intégration personnalisé requis.
Dans cet article :
- Qu'est-ce qu'AI Automators ?
- Contexte du projet
- Quand utiliser AI Automators vs du code personnalisé
- Comment fonctionnent les entités AI Automator ?
- Comment construire un workflow IA multi-étapes avec des chaînes ?
- Comment gérer les prompts dans AI Automators ?
- Comment intégrer AI Automators avec les formulaires Drupal ?
- Intégration des files d'attente avec RabbitMQ
- Comment surveiller et déboguer AI Automators ?
- Exemple concret : BetterRegulation
- Quelles sont les bonnes pratiques pour AI Automators ?
- AI Automators : avantages et résultats concrets
Qu'est-ce qu'AI Automators ?
AI Automators est un sous-module du module Drupal AI qui fournit un framework pour construire des workflows automatisés dans Drupal, particulièrement puissant pour les intégrations IA. Un AI Automator peut être une opération unique (comme la synthèse de texte), tandis qu'une AI Automator Chain crée des workflows multi-étapes où la sortie de chaque opération devient l'entrée de la suivante.
Considérez-le comme un moteur de workflow pour des processus complexes et multi-étapes qui vous permet de construire des workflows IA via la configuration d'administration plutôt que par le code. Il offre une abstraction des fournisseurs, ce qui signifie qu'il fonctionne de manière transparente avec OpenAI, Anthropic, les modèles locaux, et plus encore. Les workflows que vous créez deviennent des composants réutilisables. Construisez une fois, appliquez à plusieurs types de contenu.
Sans AI Automators, intégrer l'IA dans Drupal signifie écrire du code personnalisé pour chaque workflow, intégrer manuellement chaque fournisseur d'API, coder en dur les prompts dans votre base de code, gérer du code boilerplate répétitif et administrer vous-même une logique d'orchestration complexe. C'est faisable, mais chronophage et fragile.
Avec AI Automators, vous configurez les workflows via l'interface utilisateur, gérez les prompts dans l'interface d'administration où les non-développeurs peuvent les affiner, changez de fournisseur IA sans modifier le code, réutilisez les workflows pour différents types de contenu et construisez des processus multi-étapes visuellement. Le passage du code à la configuration réduit considérablement le temps de développement et permet l'itération par les experts métier.
BetterRegulation utilise AI Automators pour gérer la catégorisation de documents où 15 champs sont auto-remplis à partir de l'analyse PDF, la génération de résumés créant trois types différents (long, court et obligations), le traitement en arrière-plan via des files d'attente pour les opérations chronophages, ainsi qu'une gestion complète des erreurs et une journalisation tout au long du workflow.
Ce guide vous montre comment exploiter AI Automators pour vos workflows IA.
Contexte du projet
Cette analyse approfondie est basée sur l'implémentation réelle de BetterRegulation. Ils disposaient d'une plateforme Drupal 11 existante et souhaitaient ajouter des capacités IA sans perturber leur workflow éditorial ni nécessiter un développement personnalisé extensif.
Les défis étaient multiples. Plusieurs types de contenu – documents Know How, Consultations Générales et contenu Station – nécessitaient tous un traitement IA, mais chacun exigeait une approche différente. La catégorisation en temps réel fonctionnait pour certains workflows, tandis que la génération de résumés en arrière-plan était plus appropriée pour d'autres. Les éditeurs juridiques, qui comprenaient les nuances de la taxonomie documentaire mieux que quiconque, avaient besoin de pouvoir affiner les prompts en fonction des tests de précision sans attendre les cycles de développement. Et, point crucial, l'infrastructure était déjà en place : RabbitMQ gérait d'autres besoins de mise en file d'attente, Drupal 11 fonctionnait en production, et l'environnement était stable – ils ne voulaient pas introduire de changements architecturaux majeurs.
La solution consistait à utiliser AI Automators pour configurer les workflows IA via l'interface d'administration plutôt que d'écrire du code personnalisé pour chaque intégration. Cette décision architecturale a permis une itération rapide pendant le développement et, plus important encore, a donné aux experts métier (les éditeurs juridiques) la capacité d'affiner les prompts en fonction de la précision réelle sans intervention des développeurs.

Exemple de mise en œuvre d'un flux de travail IA pour la catégorisation de documents chez Better Regulation
Voir l'étude de cas complète sur la catégorisation de documents par IA ici →
Quand utiliser AI Automators vs du code personnalisé
Toutes les intégrations IA n'ont pas besoin d'AI Automators. La décision dépend de la complexité de votre workflow, de la structure de votre équipe et de vos exigences en matière de vitesse d'itération.
AI Automators excelle pour les workflows complexes
AI Automators devient précieux lorsque vous avez affaire à des workflows multi-étapes – pensez à l'extraction PDF, puis à l'analyse de texte, puis au parsing des résultats et au remplissage des champs. Chaque étape dépend de la précédente, et coordonner cela manuellement signifie écrire du code d'orchestration qui devient rapidement complexe.
Le module prouve vraiment sa valeur lorsque vous avez besoin de plusieurs opérations IA travaillant ensemble. La catégorisation, la synthèse et l'analyse peuvent toutes s'exécuter sur le même contenu, chacune avec des prompts et des modèles différents. AI Automators gère cette coordination par la configuration plutôt que par le code.
La configuration non technique est un autre avantage majeur. Lorsque les éditeurs juridiques ou les experts métier doivent affiner les prompts en fonction des tests de précision, leur donner accès à l'interface d'administration est toujours préférable à attendre la disponibilité des développeurs. Votre cycle d'itération passe de jours à minutes.
Si vous souhaitez de la flexibilité entre les fournisseurs IA – tester si Claude est plus performant que GPT pour votre cas d'usage spécifique, ou garder les options ouvertes à mesure que le paysage IA évolue – AI Automators abstrait le code spécifique au fournisseur. Changez de modèle via la configuration, pas via le déploiement de code.
L'itération rapide pendant le développement et les tests devient simple. Clonez un automator, modifiez les prompts, testez sur de vrais documents, comparez les résultats. Pas de branches Git, pas de pipelines de déploiement – configurez, testez, affinez, tout simplement.
Enfin, AI Automators aide à la standardisation. Lorsque plusieurs types de contenu nécessitent un traitement IA similaire, la création de modèles de workflow réutilisables évite la duplication de code et assure la cohérence.
Quand le code personnalisé est plus approprié
Le code personnalisé reste le meilleur choix pour une logique hautement spécialisée qui ne correspond pas au modèle de workflow. Si vos règles métier impliquent des branchements conditionnels complexes, une orchestration de systèmes externes ou un traitement algorithmique au-delà des appels IA, les services personnalisés vous donnent un contrôle total.
Les chemins critiques en termes de performance peuvent également justifier du code personnalisé. Bien qu'AI Automators n'ajoute qu'un overhead minimal, si vous traitez des milliers de documents par heure et que chaque milliseconde compte, l'intégration directe de l'API élimine les couches d'abstraction.
Pour les intégrations complexes impliquant plusieurs systèmes externes avec des exigences de coordination complexes, le code personnalisé offre la flexibilité nécessaire pour gérer les cas limites que la configuration de workflow ne peut pas facilement exprimer.
Et parfois, vous avez simplement une opération unique et simple – un appel API, un traitement direct. Ajouter une orchestration de workflow serait excessif. L'intégration directe est plus propre.
Le choix de BetterRegulation
BetterRegulation a choisi AI Automators parce que leurs besoins correspondaient parfaitement aux forces du module. Ils avaient plusieurs étapes de workflow – extraction PDF, nettoyage de texte, analyse IA, parsing des résultats et remplissage des champs – qui nécessitaient une orchestration. Leurs éditeurs juridiques, les experts métier qui comprenaient le mieux les nuances de la taxonomie, devaient pouvoir affiner les prompts sans passer par les développeurs. Ils voulaient la flexibilité de tester différents modèles IA à mesure que le paysage évoluait. Une approche cohérente entre les types de documents était essentielle pour la maintenabilité. Et pendant le développement, l'itération rapide importait plus que de gagner chaque milliseconde de performance.
Le résultat : un développement initial plus rapide, une maintenance continue plus facile et plus de flexibilité pour s'adapter à l'évolution des exigences.
Lire aussi : AGENTS.md Tool : comment l'IA accélère réellement le travail avec Drupal
Comment fonctionnent les entités AI Automator ?
Comprendre les blocs de construction fondamentaux d'AI Automators vous aide à concevoir des workflows efficaces. Le module organise le traitement autour de trois concepts clés qui fonctionnent ensemble pour transformer les entrées en sorties.
Le concept de base
Un AI Automator dans le module peut représenter soit une opération IA unique, soit un workflow multi-étapes complet. Lorsque plusieurs étapes doivent travailler ensemble, vous créez une AI Automator Chain – une séquence où la sortie de chaque opération devient l'entrée de l'opération suivante.
Anatomie d'une AI Automator Chain :
Une chaîne d'automators contient trois parties principales : les Automator Base Fields qui fournissent les données d'entrée (comme un fichier PDF téléchargé), les champs de sortie qui stockent les résultats de chaque étape de traitement (comme le texte extrait et les réponses IA), et la configuration de la chaîne qui définit la séquence des opérations (extraire le texte du PDF, analyser avec l'IA, parser les résultats et remplir les champs).
Champ de base de l'automator (entrée)
L'Automator Base Field est le terme du module pour la source de données d'entrée. Ce champ fournit le matériau brut que votre workflow va traiter – qu'il s'agisse d'un fichier PDF, de contenu textuel, d'une image ou d'autres données nécessitant une transformation ou une analyse.
Dans l'implémentation de BetterRegulation, l'Automator Base Field est field_pdf_file, qui contient le document PDF téléchargé qui circule à travers le pipeline d'extraction et d'analyse. Le module peut également utiliser l'Automator Input Mode pour choisir entre le mode basique (un seul champ) ou le mode avancé (plusieurs champs via des tokens), vous offrant de la flexibilité dans la manière dont les données entrent dans votre workflow.
Champs de sortie (résultats)
Les champs de sortie (parfois appelés AI Automator Output Fields dans la documentation) stockent les résultats intermédiaires et finaux de l'exécution du workflow. Contrairement à l'Automator Base Field qui contient l'entrée brute, les champs de sortie capturent l'état « après » – ce qui émerge de chaque étape de traitement dans votre chaîne.
Les champs de sortie typiques comprennent le texte extrait des PDF, les réponses IA brutes (généralement du JSON), les métadonnées de traitement comme les horodatages et le nombre de tokens, et les messages d'erreur lorsque quelque chose ne va pas. Dans une AI Automator Chain, ces champs forment un pipeline où la sortie d'une étape devient l'entrée de la suivante.
L'implémentation de BetterRegulation utilise field_extracted_text pour stocker le texte nettoyé extrait des PDF et field_ai_response pour contenir la réponse JSON brute de GPT-4o-mini. Cette séparation des responsabilités s'avère précieuse de plusieurs façons.
Des champs de sortie séparés permettent le débogage en vous laissant inspecter ce qui s'est passé à chaque étape. Ils prennent en charge les stratégies de mise en cache où le texte extrait peut être réutilisé pour différents prompts sans retraiter le PDF. Ils offrent des capacités d'audit en suivant exactement ce que l'IA a renvoyé avant tout parsing ou transformation. Et ils permettent des workflows de retraitement où vous pouvez réexécuter les étapes ultérieures sans réextraire les données antérieures – particulièrement utile lors de l'affinage des prompts.
Configuration de la chaîne
La configuration de la chaîne définit votre workflow – la séquence d'AI Automators exécutés dans l'ordre. C'est ici que vit votre logique multi-étapes. Selon la documentation du module, les chaînes sont créées comme des entités temporaires et groupables avec un champ par étape IA, traitant les données à travers plusieurs stages au sein d'un workflow unifié.
Chaque étape de la chaîne comporte quatre composants clés. Le type définit quelle opération effectuer – extraction de texte, analyse IA, parsing ou autre opération – dans les termes du module, cela peut être un automator de complétion de texte, un automator d'analyse d'image ou un plugin d'automator personnalisé. La source spécifie quels champs utiliser comme entrée, en tirant les données soit de l'Automator Base Field, soit des champs de sortie des étapes précédentes. La configuration contient les paramètres spécifiques à cette étape, comme l'Automator Prompt, la sélection du modèle ou les options de traitement. Et la sortie détermine dans quel champ écrire les résultats, les rendant disponibles pour les étapes suivantes ou l'utilisation finale.
Le module utilise également l'Automator Weight pour contrôler l'ordre d'exécution lorsque plusieurs automators sont appliqués au même champ – un poids inférieur s'exécute en premier.
Comment construire un workflow IA multi-étapes avec des chaînes ?
Construisons le workflow de synthèse de documents de BetterRegulation en tant qu'AI Automator Chain – un processus multi-étapes où la sortie de chaque automator alimente le suivant.
Exemple de chaîne : synthèse de documents
Objectif : générer trois types de résumés (long, court, obligations) à partir d'un document PDF.
Étapes de la chaîne :
La chaîne se compose de quatre AI Automators séquentiels. Premièrement, le fichier PDF est envoyé à Unstructured.io pour l'extraction de texte, produisant un texte nettoyé dans un champ de sortie. Deuxièmement, ce texte est envoyé à GPT-4o-mini avec un prompt demandant un résumé long et complet. Troisièmement, le résumé long est condensé en une version courte via un autre appel GPT. Enfin, le texte extrait original est analysé à nouveau avec un prompt différent axé spécifiquement sur l'extraction des obligations juridiques.
Pourquoi cette séquence ?
Cette conception de workflow reflète des contraintes pratiques et des opportunités d'optimisation. Le traitement parallèle n'est pas possible car le résumé court dépend du résumé long – on ne peut pas condenser ce qui n'existe pas encore. Le texte extrait est réutilisé pour plusieurs opérations de synthèse plutôt que de réextraire le PDF trois fois, ce qui économise du temps de traitement et des coûts d'API.
Étape 1 : PDF → texte (Unstructured.io)
La première étape utilise un plugin d'extraction de texte personnalisé qui s'intègre à Unstructured.io. L'automator récupère le PDF depuis l'Automator Base Field, l'envoie à l'API Unstructured.io avec l'analyse de mise en page haute résolution activée, reçoit en retour des éléments structurés (titres, paragraphes, éléments de liste), filtre le bruit comme les en-têtes et les pieds de page, concatène le contenu nettoyé avec un espacement approprié et sauvegarde le résultat dans un champ de sortie. Cela produit un texte propre et prêt pour l'IA à partir de mises en page PDF complexes.
Étape 2 : Texte → résumé long (GPT)
La deuxième étape utilise la fonctionnalité intégrée de complétion de texte d'AI Automators. Elle prend le texte extrait et l'envoie au modèle GPT-4o-mini d'OpenAI avec un prompt qui demande un résumé complet axé sur l'objectif du document, sa portée, les parties concernées, les thèmes clés et le contexte. Le paramètre de température est bas (0,3) pour assurer des résumés cohérents et factuels plutôt que des variations créatives. Le prompt utilise la substitution de tokens pour injecter dynamiquement le texte extrait, et la réponse de l'IA est sauvegardée dans un autre champ pour utilisation dans les étapes suivantes.
Étape 3 : Résumé long → résumé court (GPT)
La troisième étape prend le résumé long de l'étape 2 et le condense en utilisant un prompt différent axé sur la distillation plutôt que sur la création. Cette approche utilise moins de tokens car elle traite un résumé plutôt que le texte complet du document. Garder cela comme une étape séparée permet de régénérer le résumé court sans régénérer le long, et facilite l'optimisation indépendante de chaque type de résumé en fonction des retours utilisateurs.
Comment gérer les prompts dans AI Automators ?
L'une des fonctionnalités les plus puissantes d'AI Automators est la capacité de gérer les prompts via l'interface d'administration plutôt que de les coder en dur. Cela permet une itération rapide et donne aux experts métier un contrôle direct sur l'affinage du workflow.
Stockage et modification des prompts
Emplacement dans l'interface d'administration : /admin/config/ai/automators pour la gestion des automators et des chaînes. Chaque automator peut avoir un Automator Prompt configuré via l'interface d'administration.
Avantages des prompts gérés via l'interface :
Gérer les Automator Prompts via l'interface plutôt que de les coder en dur apporte plusieurs avantages. Vous pouvez modifier les prompts sans changement de code – pas de déploiements, pas de commits Git, pas d'attente des pipelines CI/CD. Les non-développeurs – les éditeurs et experts métier qui comprennent réellement les nuances du contenu – peuvent affiner les prompts eux-mêmes sans impliquer de développeurs. Les tests A/B deviennent simples : clonez une configuration de chaîne, modifiez l'Automator Prompt, testez avec de vrais documents et comparez les résultats. Le contrôle de version reste intact car les Automator Prompts vivent dans la configuration Drupal, qui peut être exportée, suivie et restaurée comme du code. Et le cycle d'itération se réduit de jours à minutes – modifiez le prompt, cliquez sur enregistrer, testez immédiatement.
Workflow de BetterRegulation :
- Le développeur crée le prompt initial.
- L'éditeur juridique examine et suggère des améliorations.
- Modification du prompt dans l'interface d'administration.
- Test avec 10 à 20 documents.
- Mesure de la précision.
- Affinage et répétition.
Résultat : les prompts sont passés de 85 % à 95 % de précision grâce à l'itération.
Injection de tokens
Automators prend en charge le remplacement dynamique de tokens, vous permettant de construire des prompts qui s'adaptent au contenu en cours de traitement.
Les tokens disponibles incluent {{ field_name }} pour référencer n'importe quel champ de l'Automator Base Field ou des champs de sortie des étapes de traitement précédentes, {{ node:title }} pour le titre du node, {{ node:created }} pour la date de création, {{ user:name }} pour l'utilisateur actuel, et des tokens personnalisés que vous définissez via hook_token_info(). Cette flexibilité signifie que vos prompts peuvent référencer des données d'entité, le contexte utilisateur ou tout autre token Drupal.
Les prompts peuvent utiliser plusieurs tokens pour créer des instructions contextuelles. Par exemple, un prompt pourrait référencer le type de contenu, le titre, la date de création et le rôle de l'utilisateur pour générer des résumés adaptés à des audiences ou types de documents spécifiques – le tout via de simples placeholders de tokens qui sont remplacés automatiquement pendant l'exécution.
Lire aussi : LangChain vs LangGraph vs Raw OpenAI : comment choisir votre stack RAG
Comment intégrer AI Automators avec les formulaires Drupal ?
AI Automators peut être déclenché depuis les formulaires d'édition de contenu de Drupal, donnant aux éditeurs un contrôle direct sur le moment où le traitement a lieu. L'approche d'implémentation dépend de si vous avez besoin de résultats immédiats ou si le traitement peut se faire en arrière-plan.
Déclencher AI Automators depuis l'interface
Option 1 : clic sur un bouton (traitement en temps réel)
Pour la catégorisation de documents, BetterRegulation ajoute un bouton « Générer avec l'IA » au formulaire d'édition de contenu en utilisant le système form alter de Drupal. Lorsqu'il est cliqué, le bouton déclenche un handler AJAX qui affiche un indicateur de progression pendant le traitement. Le handler charge la configuration de l'automator, transmet le fichier PDF téléchargé, exécute le workflow, récupère la réponse JSON de l'IA, la parse et remplit les champs du formulaire avec les valeurs extraites. Le formulaire se reconstruit automatiquement pour afficher les champs remplis, permettant aux éditeurs de vérifier et d'ajuster avant d'enregistrer.
Option 2 : déclenchement automatique – traitement en arrière-plan
Pour la génération de résumés, le système utilise les hooks d'entité de Drupal pour mettre automatiquement en file d'attente le traitement lorsqu'un document est créé ou mis à jour. Le système de file d'attente ajoute un job avec un horodatage de délai de 15 minutes, garantissant que le document a le temps de se stabiliser avant que le traitement IA coûteux ne commence. Cette approche ne nécessite aucune interaction utilisateur – les résumés se génèrent automatiquement en arrière-plan.

Un flux de travail basé sur l'IA pour la synthèse automatisée de documents mis en œuvre dans Better Regulation
Voir l'étude de cas complète sur les résumés de documents IA ici →
Traitement en temps réel vs en arrière-plan
Temps réel (synchrone) :
Utilisez le traitement en temps réel lorsque les utilisateurs ont besoin de résultats immédiats. La catégorisation de documents est un bon exemple – les éditeurs téléchargent un PDF, cliquent sur « Générer avec l'IA » et attendent pendant que les champs se remplissent. Le traitement prend généralement de 10 secondes à 2 minutes. L'UX comprend un indicateur de progression et des mises à jour AJAX du formulaire montrant les champs remplis au fur et à mesure de leur disponibilité.
Arrière-plan (asynchrone) :
Le traitement en arrière-plan fonctionne lorsque les résultats ne sont pas nécessaires immédiatement. La génération de résumés correspond à ce modèle – les éditeurs n'ont pas besoin de résumés pour terminer leur travail, donc le traitement peut avoir lieu plus tard. La durée peut être plus longue puisqu'elle ne bloque pas le travail de l'utilisateur, et les résumés apparaissent simplement lorsqu'ils sont prêts sans aucune attente.
L'approche de BetterRegulation :
La catégorisation s'exécute en temps réel parce que les éditeurs ont besoin que ces champs soient remplis avant d'enregistrer le document – les affectations de taxonomie font partie du workflow principal de création de contenu. Les résumés s'exécutent en arrière-plan parce qu'il n'y a pas d'urgence et ils ne devraient pas bloquer le workflow éditorial. Les éditeurs peuvent créer, catégoriser et enregistrer des documents immédiatement pendant que les résumés se génèrent en coulisses.
Retour utilisateur pendant le traitement
Pour le traitement en temps réel, le système affiche un throbber (indicateur rotatif) avec un message de temps estimé, tenant les utilisateurs informés pendant le traitement. Une fois terminé, les messages de succès indiquent combien de champs ont été remplis et rappellent aux éditeurs de vérifier les résultats. Les messages d'erreur fournissent des raisons spécifiques de l'échec, aidant les éditeurs à comprendre ce qui s'est mal passé et s'ils doivent réessayer ou traiter le document manuellement.
Intégration des files d'attente avec RabbitMQ
Pour les opérations IA chronophages, la mise en file d'attente offre des avantages cruciaux par rapport au traitement synchrone. BetterRegulation utilise RabbitMQ pour gérer le traitement en arrière-plan, avec un mécanisme de délai astucieux qui empêche les appels API redondants.
Pourquoi mettre en file d'attente l'exécution des Automators ?
Le traitement synchrone crée plusieurs problèmes dans les environnements de production. Le blocage de l'interface signifie que les utilisateurs attendent 30 à 60 secondes pendant que le traitement se termine, incapables de faire autre chose. Le risque de timeout émerge lorsque de longues opérations de traitement dépassent les limites de timeout de PHP ou du serveur web, causant des échecs. Le traitement redondant survient lorsqu'un éditeur effectue cinq modifications rapides successives, déclenchant cinq appels IA coûteux pour essentiellement le même document. Et les problèmes de charge de pointe surviennent parce que tout le traitement a lieu pendant les heures ouvrables lorsque les serveurs sont déjà occupés.
Les files d'attente résolvent ces problèmes avec élégance. Le traitement en arrière-plan est non bloquant – les utilisateurs continuent de travailler pendant que le traitement se fait en arrière-plan. Les workers fonctionnant en dehors du cycle de requête web ont un temps illimité, éliminant les préoccupations de timeout. Le mécanisme de délai (plus de détails sous peu) empêche le traitement redondant en consolidant les modifications rapides multiples. Et la distribution de charge devient possible – traiter les documents pendant les heures creuses lorsque les ressources serveur sont plus disponibles.
Le délai de 15 minutes expliqué
Le problème auquel BetterRegulation faisait face :
Les éditeurs allaient :
- Créer un document (déclenche la génération de résumé).
- Se rendre compte que le titre est erroné (modifier et enregistrer).
- Ajouter plus de métadonnées (modifier et enregistrer).
- Corriger une faute de frappe (modifier et enregistrer).
- Révision finale (modifier et enregistrer).
Résultat : 5 opérations d'enregistrement en 10 minutes = 5 générations de résumés IA coûteuses pour le même document.
La solution : retarder l'exécution de la file d'attente
L'implémentation vérifie si un document est déjà en file d'attente. Si c'est le cas, le système réinitialise simplement le minuteur de délai à 15 minutes à partir de maintenant. Si ce n'est pas le cas, il crée un nouvel élément de file d'attente avec un horodatage de délai de 15 minutes. Les workers de la file d'attente vérifient l'horodatage du délai avant le traitement – si le délai n'est pas écoulé, ils remettent l'élément en file d'attente pour plus tard. S'il est écoulé, ils procèdent à la génération du résumé.
Résultat : un éditeur effectuant 5 modifications en 10 minutes ne déclenche qu'un seul appel IA (15 minutes après la dernière modification), économisant 4 appels API inutiles et leurs coûts associés.
La durée du délai est configurable via le système de configuration de Drupal, permettant aux administrateurs d'ajuster le timing en fonction des workflows de leurs éditeurs et des considérations de coûts.
Intégration RabbitMQ + Drupal
Pourquoi RabbitMQ ?
RabbitMQ offre une livraison de messages fiable, une persistance qui survit aux redémarrages du serveur, un système d'acquittement qui empêche la perte de jobs, des files de lettres mortes pour gérer les jobs échoués et une mise à l'échelle facile en ajoutant plus de workers.
Remarque : BetterRegulation avait déjà RabbitMQ configuré sur leur projet pour d'autres besoins de mise en file d'attente. L'implémentation IA a tiré parti de cette infrastructure existante.
La mise en place implique l'installation du module Drupal RabbitMQ via Composer, la configuration des identifiants de connexion dans settings.php (hôte, port, nom d'utilisateur, mot de passe, hôte virtuel) et la définition des services de file d'attente dans un fichier services.yml. La configuration connecte le système de file d'attente de Drupal à RabbitMQ, remplaçant la file d'attente basée sur la base de données par défaut.
Configuration des workers
Supervisor (gestionnaire de processus) :
BetterRegulation utilise Supervisor pour gérer les workers de file d'attente. La configuration exécute 2 processus worker en continu, chacun traitant la file d'attente pendant 1 heure avant de redémarrer pour prévenir les fuites de mémoire. Si un worker plante, Supervisor le redémarre automatiquement, maintenant une capacité de traitement constante. Toutes les sorties sont enregistrées pour le débogage.
Pour le développement local, Docker Compose monte la configuration Supervisor et lance supervisord. Pour la production, Kubernetes exécute des pods worker avec des limites de ressources (512Mi de mémoire, 500m de CPU) et une configuration de réplicas (3 workers pour la redondance et le débit). Cette approche conteneurisée assure un comportement cohérent des workers dans tous les environnements.
Comment surveiller et déboguer AI Automators ?
Les workflows IA en production nécessitent une surveillance complète pour détecter les échecs, suivre les performances et optimiser les coûts. Le module s'intègre au système de journalisation de Drupal et peut être étendu avec des solutions de surveillance personnalisées.
Intégration Watchdog
AI Automators enregistre automatiquement dans le système Watchdog de Drupal. Vous pouvez améliorer cela en implémentant des hooks personnalisés qui enregistrent les temps d'exécution de chaque étape, suivent quel automator a été exécuté et capturent des informations d'erreur détaillées incluant les stack traces lorsque le traitement échoue. Certaines implémentations envoient également des notifications d'administration lors des échecs, garantissant que les problèmes ne passent pas inaperçus.
Vues d'administration pour le statut de traitement
Créez une vue d'administration à /admin/reports/ai-processing-status qui affiche les documents récemment traités avec leur statut (succès/échoué/en file d'attente), la durée de traitement, l'utilisation des tokens et les éventuels messages d'erreur. Incluez des champs pour le titre et le lien du node, l'horodatage de traitement, l'indicateur de statut, la durée et les détails d'erreur. Ajoutez des filtres pour le statut, la plage de dates et le type de contenu afin que les administrateurs puissent rapidement trouver les documents problématiques ou analyser les tendances. Triez par horodatage décroissant pour afficher les traitements les plus récents en premier.
Gestion des jobs échoués
Implémentez une logique de nouvelle tentative automatique pour les échecs transitoires comme les erreurs réseau ou les timeouts d'API. Le système tente le traitement jusqu'à 3 fois avant d'abandonner, incrémentant un compteur de tentatives à chaque réessai. Les erreurs non récupérables (comme des données malformées) échouent immédiatement sans nouvelle tentative.
Configurez RabbitMQ avec des files de lettres mortes afin que les jobs échoués soient automatiquement déplacés vers une file d'attente séparée pour révision par l'administration plutôt que de disparaître. Cela garantit qu'aucun document n'est perdu – les administrateurs peuvent inspecter les jobs échoués, corriger les problèmes sous-jacents et réessayer manuellement si nécessaire.
Lire aussi : Comment accélérer les réponses d'un chatbot IA avec la mise en cache intelligente
Exemple concret : BetterRegulation
Examinons les chaînes de production réelles de BetterRegulation pour voir comment les concepts abordés précédemment s'articulent. Ces exemples montrent de vrais choix de configuration et le raisonnement qui les sous-tend.
Exemple de chaîne : catégorisation de documents
La chaîne de catégorisation de documents prend un fichier PDF comme Automator Base Field et produit du texte extrait et du JSON de réponse IA comme champs de sortie intermédiaires. Elle exécute trois automators en séquence : premièrement, extraire le texte du PDF en utilisant Unstructured.io avec une analyse haute résolution ; deuxièmement, envoyer le texte extrait à GPT-4o-mini avec un Automator Prompt complet contenant toutes les options de taxonomie et demander une sortie JSON (température 0,1 pour la cohérence, max 2000 tokens) ; troisièmement, parser la réponse JSON et remplir les champs de taxonomie et de métadonnées du node.
Exemple de chaîne : génération de résumés
La chaîne de génération de résumés commence également avec un fichier PDF comme champ de base et crée quatre champs de sortie : texte extrait, résumé long, résumé court et résumé des obligations. Elle exécute quatre automators en séquence : extraire le texte (comme pour la catégorisation), générer un résumé long complet à partir du texte intégral, condenser ce résumé long en une version courte, et extraire les obligations juridiques du texte intégral en utilisant un prompt spécialisé. Cette chaîne est déclenchée par le système de file d'attente et s'exécute en arrière-plan avec un délai de 15 minutes.
Lire aussi : Synchronisation des données en temps réel pour le RAG. Comment maintenir les connaissances de votre chatbot IA à jour
Quelles sont les bonnes pratiques pour AI Automators ?
Ces enseignements proviennent de l'implémentation de BetterRegulation et peuvent vous aider à éviter les pièges courants. Appliquez-les lors de la conception de vos workflows IA pour construire des systèmes plus maintenables et fiables.
1. Concevoir pour le débogage
Incluez des champs de résultats intermédiaires – texte extrait, réponses IA brutes et journaux de traitement. Quand quelque chose ne va pas, vous pouvez inspecter la sortie de chaque étape pour identifier précisément où l'échec s'est produit – que ce soit la qualité d'extraction PDF, le formatage de la réponse IA ou la logique de remplissage des champs.
2. Prompts modulaires
Évitez de créer un prompt massif qui essaie de tout faire. Au lieu de cela, séparez les prompts par responsabilité – un prompt pour la catégorisation axé sur la correspondance taxonomique, un autre pour la synthèse axé sur des explications claires, et un troisième pour l'extraction des obligations axé sur les exigences.
Cette approche modulaire apporte plusieurs avantages. Chaque prompt devient plus facile à optimiser car vous affinez pour une tâche spécifique plutôt que de jongler avec des préoccupations concurrentes. Vous pouvez tester les prompts indépendamment, isolant ce qui fonctionne et ce qui ne fonctionne pas. Les prompts deviennent réutilisables entre les workflows – votre prompt de synthèse peut fonctionner pour plusieurs types de contenu. Et les instructions restent plus claires lorsqu'elles sont focalisées sur un seul objectif plutôt que d'essayer de tout communiquer en une fois.
3. Versionnez vos Automator Chains
Traitez vos AI Automator Chains comme du code – utilisez la gestion de configuration de Drupal pour les exporter. Exécuter drush config:export sauvegarde vos chaînes et automators dans le répertoire de configuration (ex. config/sync/), les plaçant sous contrôle de version aux côtés de votre code.
Cela apporte les avantages standard du contrôle de version à vos workflows IA. Vous pouvez suivre les changements de prompts dans le temps (puisque les Automator Prompts font partie de la configuration), comprenant ce qui a fonctionné et ce qui n'a pas fonctionné. Le rollback devient possible lorsqu'un changement de prompt réduit la précision. Et le déploiement entre environnements devient fiable – développement, staging et production peuvent synchroniser les configurations d'automator et de chaîne comme ils synchronisent les autres configurations du site.
4. Tester avec des données réelles
Créez un automator de test en clonant votre configuration de production. Modifiez les prompts dans la version de test, traitez 20 à 30 vrais documents et comparez la précision avec la production. Si la version de test est plus performante, promouvez-la en production. Cette approche vous permet d'itérer en toute sécurité sans risquer la précision en production.
5. Surveiller l'utilisation des tokens
Implémentez une journalisation de l'utilisation des tokens qui suit les tokens d'entrée et de sortie pour chaque exécution de traitement, estime les coûts en fonction des tarifs API actuels et stocke les données avec des horodatages. Générez des rapports mensuels montrant les documents traités, le total de tokens consommés et les coûts estimés. Cette visibilité aide à repérer les pics de coûts, optimiser les prompts pour l'efficacité et prévoir les budgets.
6. Dégradation gracieuse
Planifiez les échecs en enveloppant l'exécution des automators dans des blocs try-catch. Lorsque le traitement échoue, enregistrez l'erreur avec les détails complets, définissez des valeurs par défaut pour maintenir le workflow en fonctionnement, marquez le contenu pour révision manuelle et permettez à la publication de continuer. Ne laissez pas les échecs IA bloquer les workflows critiques – les processus éditoriaux devraient se dégrader gracieusement plutôt que de s'arrêter complètement.
7. Sécurité
Validez toutes les entrées avant le traitement. Vérifiez les types MIME des fichiers (PDF uniquement), appliquez des limites de taille (ex. 50 Mo maximum) et analysez les téléchargements pour détecter les malwares si vous gérez des fichiers soumis par les utilisateurs. Implémentez une limitation de débit pour prévenir les abus – par exemple, limitez les utilisateurs à 20 requêtes de traitement IA par heure. Ces mesures de protection protègent contre les téléchargements malveillants, l'épuisement des ressources et l'abus de coûts.
AI Automators : avantages et résultats concrets
AI Automators transforme l'intégration IA d'un code personnalisé complexe en workflows configurables.
Avantages clés :
- Configuration plutôt que code – construire des workflows via l'interface d'administration.
- Itération rapide – tester différents prompts et modèles rapidement.
- Accès pour les non-développeurs – les experts métier peuvent affiner les prompts.
- Orchestration multi-étapes – chaîner les opérations de manière transparente.
- Abstraction des fournisseurs – basculer entre OpenAI, Claude, etc.
- Prêt pour la production – gestion des erreurs et journalisation intégrées.
Résultats de BetterRegulation avec AI Automators :
Le système de production traite désormais plus de 200 documents par mois avec une précision supérieure à 95 % pour la catégorisation. Moins de 5 % des champs nécessitent une correction par les éditeurs – un niveau de précision qui rend l'approche human-in-the-loop pratique plutôt que contraignante. Les gains de temps ont atteint 50 % par rapport au traitement entièrement manuel, et un équivalent temps plein a été libéré pour se concentrer sur un travail à plus forte valeur ajoutée comme l'analyse politique et la planification stratégique de contenu.
Si vous développez des fonctionnalités IA dans Drupal, AI Automators (partie du module AI) réduit considérablement le temps de développement et la complexité. L'approche configuration-plutôt-que-code signifie moins de code personnalisé à maintenir, des cycles d'itération plus rapides et l'implication des experts métier dans l'affinage des workflows. Que vous ayez besoin d'un seul AI Automator pour une opération ou d'une AI Automator Chain pour des workflows multi-étapes complexes, le module fournit le framework dont vous avez besoin.
Commencez simplement : construisez un automator pour un type de contenu. Pour les workflows multi-étapes, créez une AI Automator Chain reliant les opérations entre elles. Testez minutieusement avec des données réelles. Mesurez les résultats. Puis étendez à des types de contenu et workflows supplémentaires, en appliquant les enseignements tirés de la première implémentation.
Vous souhaitez implémenter AI Automators dans votre plateforme Drupal ?
Cette étude de cas est basée sur notre implémentation réelle en production pour BetterRegulation, où nous avons construit des workflows IA multi-étapes qui traitent plus de 200 documents par mois avec une précision supérieure à 95 %. Le système fonctionne en production depuis 2024, fournissant des résultats cohérents avec la catégorisation automatisée de documents, la génération de résumés et le traitement en file d'attente en arrière-plan – économisant 50 % du temps de traitement manuel.
Intéressé par la construction de workflows IA pour votre site Drupal ? Notre équipe est spécialisée dans la création d'implémentations AI Automators de qualité production qui équilibrent précision, performance et maintenabilité. Nous gérons tout, de la conception architecturale initiale et la configuration des workflows jusqu'au déploiement en production et l'optimisation. Visitez nos services de développement IA générative pour découvrir comment nous pouvons vous aider à exploiter AI Automators pour vos workflows de contenu.