SDS Manager
Documentation
Documentation/Pipelines & Automatisation

⚙️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. 1

    Dans la barre latérale, ouvrez Pipelines et cliquez sur Topic Modeling.

  2. 2

    Sélectionnez le Client, le Projet, l'Importation et l'Analyse.

  3. 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. 4

    Configurez le pipeline :

    ChampDescriptionExemple
    Type de donnéesSélectionnez le type de données à clusteriser : le texte des posts, les images ou le transcript de vidéos.texte
    LangueSélectionnez la langue souhaitée pour les résultats (dédié à la traduction du corpus et à l'annotation)fr
    Sentence SplittingActivez le sentence splitting (découpage des textes en paragraphes) pour les textes longs. Recommandé pour Telegram, Facebook, Linkedin, Presse, etc.true
    Activer le clusteringDésactiver cette option si vous souhaitez uniquement préparer les données, sans réaliser le clustering final.true
    Soft ClusteringActivez 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. 5

    (facultatif) Ajustez les paramètres avancés du clustering :

    ChampDescriptionExemple
    Longueur min. du texteNombre de caractères minimum pour considérer les textes à classer.90
    Pourcentage de hashtags maxProportion de hashtags4
    Pourcentage de mentions maxProportion de mentions4
    n_neighborsUMAP - nombre de voisins15
    n_epochsUMAP - nombre d'epochs2500
    learning_rateUMAP - learning_rate0.5
    spreadUMAP - spread1.0
    min_distUMAP - min_dist0.0
    metric_umapUMAP - metriccosine
    random_stateEtat aléatoire42
    min_cluster_sizeHDBSCAN - min_cluster_sizeNone
    min_samplesHDBSCAN - min_samples6
    cluster_method_selectionHDBSCAN - cluster_method_selectioneom
    metric_hdbscanHDBSCAN - metrique de distanceeuclidean
  6. 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. 1

    Dans la barre latérale, ouvrez Pipelines et cliquez sur Narrative Filtering.

  2. 2

    Sélectionnez le Client, le Projet, l'Importation et l'Analyse.

  3. 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. 4

    Sélectionnez le type de documents à classer (texte des posts, résultats OCR sur les iamges ou transcript de vidéos).

  5. 5

    Sélectionnez les narratifs / claims de référence pour la classification.

  6. 6

    Configurez le pipeline :

    ChampDescriptionExemple
    Nombre de claims par chunkNombre 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 rerankerActivez le reranker pour sélectionner les claims les plus pertinents après le calcul de similarité.true
    Nombre de claims par chunk après rerankingNombre de claims de référence à associer à chaque chunk de texte après le reranking.3
    Version du rerankerMoteur 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
    LangueLangue des traductions et du chunkingfr
    Sentence SplittingDé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. 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. 1

    Dans la barre latérale, ouvrez Pipelines et cliquez sur Hate Speech.

  2. 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. 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. 4

    Activez le prétraitement si, et seulement si, il est nécessaire :

    ChampDescriptionExemple
    TraduireN'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 chunksInutile 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 travailDé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. 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. 6

    Restreignez le corpus modéré dans Filtres (facultatif) :

    ChampDescriptionExemple
    Corpus narratifDé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, claimsS'appliquent en ET et ne peuvent que restreindre le corpus modéré.
    Filtre par réponse LLMNe 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. 7

    (facultatif) Ajustez les paramètres avancés :

    ChampDescriptionExemple
    Lettres utiles minimumEn dessous de ce nombre de lettres utiles (hors liens, mentions et hashtags), le chunk est écarté sans être envoyé. 3 = un mot.3
    Tout refaireRelance toutes les étapes, traduction et modération comprises, et repaye tout. Toujours désactivé sur un run planifié.false
    Reseuiller uniquementNe réanalyse rien : recalcule les oui/non à partir des scores déjà en base, avec le seuil courant. Gratuit.false
    task_delay / max_wait_cyclesL'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. 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

ErreurCause probableSolution
translate ou chunking demandé sans périmètre de documentsLe 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. 1

    Dans la barre latérale, cliquez sur Programmer une alerte.

  2. 2

    Sélectionnez l'Importation sur laquelle surveiller les nouveaux contenus.

  3. 3

    Ajoutez les emails des destinataires de l'alerte et indiquez l'intitulé de l'email.

  4. 4

    Configurez les critères de déclenchement :

    ChampDescriptionExemple
    Types de postsSélectionnez les types de posts à surveiller (posts, retweet, commentaire, citations).Posts originaux
    PériodeDé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'emailNombre de posts à inclure dans l'email de notification.20
    Minimum de posts pour déclencher l'alerteNombre minimum de posts requis pour déclencher l'alerte.0
    Minimum d'engagements pour déclencher l'alerteNombre minimum d'engagements requis pour déclencher l'alerte.0
  5. 5

    Filtrez les contenus éligibles à l'alerte:

    ChampDescriptionExemple
    Filtre booléen sur le texte des postsFiltrez 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)
    LangueFiltrez les contenus éligibles à l'alerte en fonction de la langue des posts.fr
    UsernamesFiltrez les contenus éligibles à l'alerte en fonction des noms d'utilisateur.user1, user2, user3
    FollowersFiltrez les contenus éligibles à l'alerte en fonction du nombre de followers des utilisateurs.1000
    EngagementsFiltrez les contenus éligibles à l'alerte en fonction du nombre d'engagements des posts.100
  6. 6

    Activez la synthèse LLM pour produire un résumé des contenus détectés :

    ChampDescriptionExemple
    Rôle du LLMDé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.
    InstructionsFournissez 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. 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.