Langflow permet de rendre visible la circulation des données dans un RAG. L’objectif n’est pas seulement d’obtenir une réponse, mais de vérifier quels documents ont été découpés, retrouvés et transmis au modèle.
Préparer l’environnement
Installez Langflow dans un environnement isolé ou utilisez son image Docker officielle. Placez les clés fournisseur dans les variables d’environnement ou le gestionnaire de secrets, jamais dans un composant texte exporté avec le flow.
Construire le flux d’indexation
Ajoutez successivement : File → Parser → Split Text → Embeddings → Vector Store. Commencez avec quelques documents courts et des métadonnées explicites : source, titre, page et date.
Réglez le découpage avec une taille modérée et un chevauchement faible. Inspectez les chunks : une phrase coupée au mauvais endroit ou une page sans source restera mauvaise après l’embedding.
Construire le flux de requête
Reliez Chat Input → même modèle d’embeddings → Retriever → Prompt → Chat Model → Chat Output. Le prompt doit demander d’utiliser uniquement le contexte, de signaler une information absente et de citer les métadonnées des passages.
Le modèle d’embeddings de la requête doit être identique à celui de l’index. Si vous le changez, réindexez dans une nouvelle collection.
Tester la recherche séparément
Avant le générateur, affichez les documents retournés, leur score et leur source. Préparez des questions avec passage attendu et mesurez recall@k. Une réponse convaincante ne corrige pas un retrieval hors sujet.
Exposer le flow
Une fois validé, utilisez l’endpoint fourni par Langflow. Authentifiez l’accès, limitez la taille des entrées et ne laissez pas l’utilisateur sélectionner arbitrairement modèle ou collection. Exportez le flow en JSON dans votre dépôt, sans credentials.
Production
Séparez indexation et requêtes. Versionnez flow, prompt, modèle d’embeddings et collection. Ajoutez traces de latence, tokens et documents récupérés. Pour les contenus sensibles, appliquez l’autorisation avant le retrieval, pas après la réponse.
FAQ
Pourquoi aucun document pertinent ne remonte ?
Vérifiez ingestion, langue, modèle d’embeddings, dimension, découpage et filtres de métadonnées.
Langflow remplace-t-il les tests ?
Non. Le graphe accélère l’assemblage ; les jeux de requêtes et assertions restent indispensables.
Tester le flow comme une API
Une fois le flow sauvegardé, récupérez son identifiant et exécutez-le avec une requête reproductible.
~~~bash export LANGFLOW_URL=http://localhost:7860 export FLOW_ID=remplacer-par-identifiant curl -fsS -X POST \ "$LANGFLOW_URL/api/v1/run/$FLOW_ID" \ -H "Content-Type: application/json" \ -H "x-api-key: $LANGFLOW_API_KEY" \ -d '{"input_value":"Quelle est la durée du jeton ?","input_type":"chat","output_type":"chat"}' ~~~
Vérifiez dans la réponse le texte final et, si votre flow les expose, les documents récupérés. Exportez le flow JSON et versionnez-le sans secrets. Ajoutez un cas sans source pertinente : le composant de génération doit refuser de répondre. Mesurez séparément embedding, recherche et génération afin de ne pas attribuer toute la latence au modèle.