Guide

Statut éditorial : En attente de relecture

Créer des composants personnalisés dans Langflow

Étendre Langflow avec des composants Python typés, testables et sûrs, sans enfouir toute la logique métier dans l’interface.

Classification du contenu

Types

  • Modèles et API

Technologies

Niveau
Avancé
Publié le
13 août 2026
Dernière relecture
Relecture en attente
Prochaine vérification
13 novembre 2026

Un composant personnalisé encapsule une opération que l’éditeur visuel peut configurer et relier à d’autres nœuds. C’est utile pour une API interne, une transformation métier ou un connecteur absent. Le composant doit rester une petite couche d’adaptation : la logique réutilisable appartient à un module Python testé indépendamment.

Définir un contrat clair

Choisissez un nom, une description et des entrées compréhensibles. Distinguez texte, données structurées, secrets et connexions. Les sorties doivent avoir un type stable pour que le graphe détecte les incompatibilités. Une entrée facultative doit posséder un comportement documenté ; évitez les valeurs implicites qui changent silencieusement le résultat.

Organiser l’implémentation

La classe du composant déclare ses champs et les méthodes associées aux sorties. Validez les entrées avant tout appel externe, transformez les erreurs techniques en messages exploitables et conservez la cause dans les logs. Injectez le client métier plutôt que de mélanger authentification, requête HTTP et formatage dans une longue méthode.

Secrets et effets externes

Ne placez jamais une clé dans le code ou une valeur par défaut. Utilisez le mécanisme de secrets de l’environnement et masquez les valeurs dans les traces. Séparez les composants de lecture et d’écriture. Pour une action irréversible, exigez confirmation, idempotence et autorisation côté service cible ; le graphe visuel n’est pas un contrôle d’accès.

Tester avant l’interface

Testez la logique Python avec entrées normales, vides, invalides et délais réseau. Ajoutez ensuite un petit flow de démonstration qui vérifie les types et l’affichage des erreurs. Épinglez les dépendances et testez le chargement du composant après une mise à jour de Langflow.

FAQ

Peut-on installer n’importe quelle bibliothèque ?

Techniquement selon l’environnement, mais chaque dépendance augmente démarrage, surface d’attaque et conflits de versions.

Où placer la logique métier ?

Dans un module indépendant ; le composant adapte ses entrées et sorties à Langflow.

Comment distribuer un composant ?

Versionnez son code, ses dépendances, un exemple de flow et ses tests avec le projet.

Exemple minimal de composant

Un composant doit déclarer explicitement ses entrées, ses sorties et la méthode exécutée. Voici un composant qui normalise un texte avant de le transmettre au flux :

from langflow.custom import Component
from langflow.io import MultilineInput, Output
from langflow.schema import Data

class NormalizeText(Component):
    display_name = "Normalize Text"
    description = "Nettoie les espaces sans modifier le sens."
    inputs = [MultilineInput(name="text", display_name="Texte", required=True)]
    outputs = [Output(name="result", display_name="Résultat", method="normalize")]

    def normalize(self) -> Data:
        cleaned = " ".join(self.text.split())
        self.status = f"{len(cleaned)} caractères"
        return Data(data={"text": cleaned})

Testez la logique hors de l’interface, avec une entrée vide, Unicode et un texte très long. N’effectuez pas d’appel réseau dans le constructeur. Placez les secrets dans les variables sécurisées de Langflow, ajoutez des délais aux clients externes et retournez des objets typés : cela rend les connexions du graphe compréhensibles et limite les erreurs à l’exécution.

Expérience de la communauté

Ce que signalent les praticiens

Retour du terrain

Après une mise à niveau, actualisez les composants sérialisés dans les flows

Après une mise à niveau Langflow, ouvrez les flows existants et utilisez l’action de mise à jour ou recréez les composants signalés. Les flows sérialisés peuvent conserver d’anciens identifiants ou schémas.

Voir la discussion sur GitHub (s’ouvre dans un nouvel onglet)

Point de vigilance

Testez un composant Langflow dans une chaîne complète

Ne vous contentez pas du test unitaire du composant. Ajoutez un flow minimal qui relie deux composants personnalisés, exécute leurs sorties réelles et vérifie l’ordre de construction.

Voir la discussion sur GitHub (s’ouvre dans un nouvel onglet)

Sources utilisées