⚙️Pipelines & Automatisation
Automatiser des analyses récurrentes tels que le Topic Modeling ou Narrative Filtering
Topic Modeling
Objectif
Extraire automatiquement les sujets émergents d'un corpus en combinant traduction, chunking, analyse de sentiment, lemmatisation, vectorisation, clustering et annotation dans un pipeline unique.
Prérequis
- Avoir créé une importation avec des données collectées.
- Avoir créé une analyse.
Étapes
- 1
Dans la barre latérale, ouvrez Pipelines et cliquez sur Topic Modeling.
- 2
Sélectionnez le Client, le Projet, l'Importation et l'Analyse.
- 3
Sélectionnez une ou plusieurs importations que l'on souhaite rattacher à l'analyse. Filtrez les posts éligibles à la classification en filtrant par date, type de posts ou langue.
- 4
Configurez le pipeline :
Champ Description Exemple Type de données Sélectionnez le type de données à clusteriser : le texte des posts, les images ou le transcript de vidéos. texte Langue Sélectionnez la langue souhaitée pour les résultats (dédié à la traduction du corpus et à l'annotation) fr Sentence Splitting Activez le sentence splitting (découpage des textes en paragraphes) pour les textes longs. Recommandé pour Telegram, Facebook, Linkedin, Presse, etc. true Activer le clustering Désactiver cette option si vous souhaitez uniquement préparer les données, sans réaliser le clustering final. true Soft Clustering Activez le soft clustering pour associer l'ensemble des documents à un topic. Si l'option est désactivée, on considère qu'un document peut ne pas être classé (bruit). false - 5
(facultatif) Ajustez les paramètres avancés du clustering :
Champ Description Exemple Longueur min. du texte Nombre de caractères minimum pour considérer les textes à classer. 90 Pourcentage de hashtags max Proportion de hashtags 4 Pourcentage de mentions max Proportion de mentions 4 n_neighbors UMAP - nombre de voisins 15 n_epochs UMAP - nombre d'epochs 2500 learning_rate UMAP - learning_rate 0.5 spread UMAP - spread 1.0 min_dist UMAP - min_dist 0.0 metric_umap UMAP - metric cosine random_state Etat aléatoire 42 min_cluster_size HDBSCAN - min_cluster_size None min_samples HDBSCAN - min_samples 6 cluster_method_selection HDBSCAN - cluster_method_selection eom metric_hdbscan HDBSCAN - metrique de distance euclidean - 6
Cliquez sur Lancer. Le pipeline exécute automatiquement : lemmatisation → vectorisation → clustering → extraction des mots-clés représentatifs.
Narrative Filtering
Objectif
Filtrer les narratifs dans un corpus de données.
Prérequis
- Avoir créé une importation avec des données collectées.
- Avoir créé une analyse.
Étapes
- 1
Dans la barre latérale, ouvrez Pipelines et cliquez sur Narrative Filtering.
- 2
Sélectionnez le Client, le Projet, l'Importation et l'Analyse.
- 3
Sélectionnez une ou plusieurs importations que l'on souhaite rattacher à l'analyse. Filtrez les posts éligibles à la classification en filtrant par date et type de posts.
- 4
Sélectionnez le type de documents à classer (texte des posts, résultats OCR sur les iamges ou transcript de vidéos).
- 5
Sélectionnez les narratifs / claims de référence pour la classification.
- 6
Configurez le pipeline :
Champ Description Exemple Nombre de claims par chunk Nombre de claims de référence à associer à chaque chunk de texte pour la classification, lors de l'étape de calcul de similarité. 5 Seuil de similarité Distance cosinus minimale entre le texte et le claim de référence. 0.7 Activer le reranker Activez le reranker pour sélectionner les claims les plus pertinents après le calcul de similarité. true Nombre de claims par chunk après reranking Nombre de claims de référence à associer à chaque chunk de texte après le reranking. 3 Version du reranker Moteur d'inférence utilisé pour le reranking : v1 (vLLM local sur GPU Cloud Run), v2 (Lambda Labs, en asynchrone) ou v3 (vLLM RunPod). Détermine la Cloud Function appelée et sa file Cloud Tasks. v1 Langue Langue des traductions et du chunking fr Sentence Splitting Découpe le texte en phrases (sentence_split). Recommandé pour les textes longs (ex : posts Facebook, Linkedin, articles de presse) afin d'améliorer la granularité de la classification. true - 7
Cliquez sur Lancer. Le pipeline exécute automatiquement : traduction → narrative-processing (chunking, vectorisation et calcul de similarité FAISS regroupés en une seule étape) → reranking.
Hate Speech
Objectif
Amener un corpus jusqu'à la détection de haine : préparation optionnelle du texte, puis notation de chaque chunk sur des axes de haine (race, religion, origine, genre, âge, handicap, opinion politique, plus les axes définis sur le prompt).
Prérequis
- Avoir créé un prompt hate speech dans **Classification par LLM › Ajouter un prompt** : c'est lui qui porte les axes, leur seuil et l'activation de la phase 2.
- Avoir une analyse déjà découpée en chunks, ou des importations sur lesquelles lancer le prétraitement.
Étapes
- 1
Dans la barre latérale, ouvrez Pipelines et cliquez sur Hate Speech.
- 2
Choisissez le Client, le Projet et, si elle existe déjà, l'Analyse à modérer. Le cas courant est une analyse déjà découpée par la coordination ou par le narratif : une seule fonction tourne alors.
- 3
Sélectionnez les importations et filtrez les posts (période, types de posts, langue, documents). Attention : ces filtres sont lus par la traduction, le découpage et le corpus narratif, mais pas par la modération elle-même, qui prend les chunks que le périmètre lui laisse.
- 4
Activez le prétraitement si, et seulement si, il est nécessaire :
Champ Description Exemple Traduire N'a de sens que HORS anglais, français et espagnol, les trois langues des politiques de Shieldstral. Sur un corpus déjà dans ces langues, traduire affaiblit le signal : la traduction neutralise les insultes que les politiques citent nommément. La cible est l'anglais. false Découper en chunks Inutile si l'analyse a déjà été découpée par un autre pipeline. Traduire sans redécouper ne change rien à ce qui est modéré : la modération lit les chunks déjà en base. false Langue de travail Décide la cible de la traduction ET la colonne que lit le découpage. La poser sur un corpus non traduit ferait lire une colonne vide : zéro chunk, aucune erreur, et une modération sur un corpus inexistant. Laissez vide sans traduction. en - 5
Dans Paramètres LLM, choisissez le prompt hate speech. Ses axes et son seuil s'affichent en lecture seule : pour les changer, créez un nouveau prompt. C'est aussi la fiche dans laquelle les verdicts sont écrits.
- 6
Restreignez le corpus modéré dans Filtres (facultatif) :
Champ Description Exemple Corpus narratif Délègue tout le prétraitement à pipeline-narrative-filtering-v2, puis ne modère que les chunks portant un claim confirmé par le reranker. C'est la seule branche qui accepte l'image et la vidéo, parce qu'elle porte l'OCR et la transcription. false Sujets, narratifs, claims S'appliquent en ET et ne peuvent que restreindre le corpus modéré. — Filtre par réponse LLM Ne garde que les chunks portant déjà une réponse de la fiche choisie. C'est un filtre de LECTURE, à ne pas confondre avec le prompt de la section Paramètres LLM, où les verdicts sont écrits. — - 7
(facultatif) Ajustez les paramètres avancés :
Champ Description Exemple Lettres utiles minimum En dessous de ce nombre de lettres utiles (hors liens, mentions et hashtags), le chunk est écarté sans être envoyé. 3 = un mot. 3 Tout refaire Relance toutes les étapes, traduction et modération comprises, et repaye tout. Toujours désactivé sur un run planifié. false Reseuiller uniquement Ne réanalyse rien : recalcule les oui/non à partir des scores déjà en base, avec le seuil courant. Gratuit. false task_delay / max_wait_cycles L'orchestrateur se réveille toutes les task_delay minutes pour sonder les files, jusqu'à max_wait_cycles fois. Avec les défauts, 24 heures avant timeout. 2 / 720 - 8
Choisissez quand lancer (immédiatement, à une date précise, ou de façon récurrente) puis cliquez sur le bouton. Le pipeline enchaîne : [traduction] → [découpage] → modération, ou délègue au narratif puis modère.
✓ Résultat attendu
Chaque chunk retenu porte un score et un verdict par axe, écrits sur le prompt choisi. Le suivi des files se fait depuis Monitoring avec le service `pipeline-hatespeech`.
Erreurs fréquentes
| Erreur | Cause probable | Solution |
|---|---|---|
| translate ou chunking demandé sans périmètre de documents | Le prétraitement travaille sur des documents, et une analyse ne désigne que des chunks déjà produits. | Sélectionnez des importations, ou saisissez des documents_ids — ou désactivez la traduction et le découpage. |
| data_type='image' avec un prétraitement demandé n'est pas supporté | Ce pipeline ne porte ni l'OCR ni la transcription. | Activez le corpus narratif, qui les porte, ou lancez sans prétraitement sur une analyse déjà découpée. |
Programmer une alerte
Objectif
Configurer une alerte automatique qui se déclenche lorsque de nouveaux contenus correspondant à des critères définis apparaissent dans une importation.
Prérequis
- Avoir une importation en collecte active.
Étapes
- 1
Dans la barre latérale, cliquez sur Programmer une alerte.
- 2
Sélectionnez l'Importation sur laquelle surveiller les nouveaux contenus.
- 3
Ajoutez les emails des destinataires de l'alerte et indiquez l'intitulé de l'email.
- 4
Configurez les critères de déclenchement :
Champ Description Exemple Types de posts Sélectionnez les types de posts à surveiller (posts, retweet, commentaire, citations). Posts originaux Période Définissez la période des posts éligibles à génération d'un email. Uniquement pour les données historiques Nombre de posts à afficher dans l'email Nombre de posts à inclure dans l'email de notification. 20 Minimum de posts pour déclencher l'alerte Nombre minimum de posts requis pour déclencher l'alerte. 0 Minimum d'engagements pour déclencher l'alerte Nombre minimum d'engagements requis pour déclencher l'alerte. 0 - 5
Filtrez les contenus éligibles à l'alerte:
Champ Description Exemple Filtre booléen sur le texte des posts Filtrez les contenus éligibles à l'alerte en utilisant un filtre booléen sur le texte des posts. (Apple OR Samsung) AND (iPhone OR Galaxy) AND NOT (reconditionné OR occasion) Langue Filtrez les contenus éligibles à l'alerte en fonction de la langue des posts. fr Usernames Filtrez les contenus éligibles à l'alerte en fonction des noms d'utilisateur. user1, user2, user3 Followers Filtrez les contenus éligibles à l'alerte en fonction du nombre de followers des utilisateurs. 1000 Engagements Filtrez les contenus éligibles à l'alerte en fonction du nombre d'engagements des posts. 100 - 6
Activez la synthèse LLM pour produire un résumé des contenus détectés :
Champ Description Exemple Rôle du LLM Définissez le rôle du LLM pour produire un résumé des contenus détectés. Tu es un analyste qui réalise une veille concurrentielle quotidienne sur les smartphones. Instructions Fournissez des instructions supplémentaires au LLM pour produire un résumé des contenus détectés. Résume les points clés des discussions sur les smartphones. - 7
Cliquez sur Créer l'alerte.
✓ Résultat attendu
L'alerte est active. Lorsque le seuil est atteint, les destinataires reçoivent un e-mail de notification avec un résumé des contenus détectés.