Titre RNCP Niveau 7

Maîtrisez pipelines, cloud & IA pour devenir Data Engineer opérationnel.

Devenez Data Engineer

DataScientist.fr

Formations

L'équipeLa plateforme
Offre entreprises

🇫🇷

Comprendre et utiliser les Example Selectors dans LangChain
Artificial Intelligence
LLM
Python

Comprendre et utiliser les Example Selectors dans LangChain

Romain DE LA SOUCHÈRE

Lead Developer, Expert Cloud et DevOps

Publié le 16 mai 2025 · 10 min de lecture

Dans le domaine du développement avec les grands modèles de langage (LLMs), la pertinence des prompts conditionne largement la qualité des résultats obtenus. Les Example Selectors jouent un rôle crucial dans la construction de prompts adaptés et intelligents. Ces composants permettent de sélectionner dynamiquement les meilleurs exemples à inclure dans un prompt, en fonction de l'entrée fournie, tout en respectant les limites imposées par la taille de la fenêtre de contexte du modèle.
Que vous soyez en train de construire un agent conversationnel, une application de question-réponse, une interface de traduction ou un système de classification, les Example Selectors vous permettent d'adapter vos exemples à la volée pour améliorer la compréhension du modèle. Ils répondent à un enjeu central : comment fournir au modèle suffisamment de contexte pertinent sans l'encombrer inutilement ?
Dans cet article, nous allons plonger en profondeur dans l'univers des Example Selectors de LangChain. Nous détaillerons les types existants, leur fonctionnement interne, les cas d'usage dans lesquels ils excellent, et comment les intégrer dans vos flux de prompts dynamiques. Nous verrons aussi comment créer vos propres logiques de sélection personnalisées pour des scénarios spécifiques, notamment lorsqu'aucune solution préexistante ne répond exactement à votre besoin. Enfin, nous aborderons les possibilités d'intégration avec des jeux de données versionnés comme ceux de LangSmith pour pousser encore plus loin l'automatisation de la sélection d'exemples.

Qu'est-ce qu'un Example Selector ?

Un ExampleSelector est une interface fournie par LangChain, dont la méthode principale est selectexamples(inputvariables: Dict[str, str]) -> List[dict]. Cette méthode retourne dynamiquement une liste d'exemples à inclure dans un prompt, en fonction des variables d'entrée. L'objectif est de fournir des exemples pertinents sans surcharger le contexte utilisé par le LLM, ce qui permet de maximiser la performance du modèle.
Chaque implémentation d'Example Selector peut avoir sa propre logique de sélection : similarité sémantique, longueur du contenu, chevauchement lexical, ou toute autre métrique pertinente. LangChain fournit plusieurs implémentations prêtes à l'emploi, mais vous pouvez également définir vos propres sélecteurs si vos besoins dépassent les cas standards.

Les principaux types d'Example Selectors

LangChain propose plusieurs stratégies intégrées pour la sélection automatique d'exemples. Voici les plus utilisées :

1. Similarity Selector

Ce sélecteur choisit les exemples les plus proches de l'entrée en utilisant des embeddings vectoriels. Il repose sur des bibliothèques comme OpenAI Embeddings et des moteurs de recherche vectorielle tels que Chroma ou FAISS. Il est idéal lorsque la compréhension du sens global est plus importante que la correspondance exacte des mots.
python
Cette approche permet de capter les nuances sémantiques entre l'entrée et les exemples. Elle est particulièrement efficace dans les applications nécessitant une compréhension contextuelle profonde, comme lors de la gestion de l'historique de conversation avec LangChain.

2. MMR (Maximal Marginal Relevance) Selector

La sélection MMR combine la similarité sémantique avec une métrique de diversité. Cela signifie qu'en plus de chercher les exemples les plus pertinents par rapport à l'entrée, elle tente d'éviter de sélectionner des exemples trop similaires entre eux.
python
Cette méthode est idéale pour créer des prompts équilibrés contenant des cas variés et complémentaires, améliorant ainsi la robustesse des réponses du modèle.

3. Length-Based Selector

Ce sélecteur évalue la taille totale des exemples formatés et sélectionne ceux qui respectent un seuil de longueur. Il est très utile pour contrôler le volume du prompt généré, surtout si vous travaillez avec des modèles ayant des contextes limités.
python
En fonction de la longueur de l'entrée, ce sélecteur peut ajuster dynamiquement le nombre d'exemples inclus. Cela permet d'optimiser l'utilisation de l'espace de contexte sans sacrifier la qualité.

4. N-gram Overlap Selector

Le NGramOverlapExampleSelector classe les exemples en fonction du nombre de n-grammes partagés avec l'entrée. Il repose sur un score BLEU calculé via la bibliothèque NLTK.
python
Cette approche est simple, rapide, et très utile lorsque les entrées ont des structures lexicales proches des exemples disponibles. Elle offre un bon compromis entre performance et coût computationnel.
On peut facilement enrichir le pool d'exemples avec de nouveaux cas :
python

Créer un Example Selector personnalisé

Dans certains cas, vous souhaiterez créer votre propre logique de sélection. Voici un exemple simple qui sélectionne un exemple en fonction de la longueur du mot d'entrée. Cela peut être utile pour des cas pédagogiques ou des entrées très contrôlées.
python
Un tel sélecteur personnalisé peut également être enrichi pour intégrer des critères supplémentaires : score de confiance, présence de mots-clés, etc.

Intégration dans un Prompt Few-Shot

Tous les Example Selectors peuvent être intégrés dans des prompts dynamiques via la classe FewShotPromptTemplate.
python
Cela permet d'automatiser complètement la sélection et la mise en forme des exemples pour chaque nouvelle requête utilisateur.

Utilisation avec LangSmith

LangSmith est une plateforme complémentaire à LangChain qui permet de gérer des datasets versionnés. Ces jeux de données peuvent être utilisés comme source dynamique d'exemples pertinents grâce à des fonctionnalités d'indexation et de recherche.
python
Cette méthode permet d’externaliser les exemples, d’assurer leur traçabilité, et de faciliter leur mise à jour sans avoir à modifier le code de l’application.
Vous pouvez même combiner cela avec des chaînes asynchrones en utilisant RunnableLambda pour adapter dynamiquement les exemples au contexte d’appel.

Conclusion

Les Example Selectors de LangChain représentent une pièce maîtresse dans la création de prompts efficaces, évolutifs et adaptés au contexte. Grâce à eux, vous pouvez automatiser la sélection des exemples, optimiser l’utilisation de l’espace de contexte, et améliorer significativement la qualité des réponses produites par les LLMs.
LangChain vous donne le choix entre des sélecteurs prônant la similarité sémantique, la diversité, l’optimisation de la longueur, ou le chevauchement lexical. Et si aucune méthode existante ne suffit, vous avez la liberté de créer vos propres stratégies. En combinant ces outils à des sources dynamiques comme LangSmith, vous obtenez une solution robuste, personnalisable, et prête pour la production.

Partager avec

💙 Merci d'avoir parcouru l'article jusqu'à la fin !

Romain DE LA SOUCHÈRE

Romain DE LA SOUCHÈRE - Lead Developer, Expert Cloud et DevOps

Ingénieur de formation avec plus de 11 ans d'expérience dans le développement back-end et le data engineering. Expert dans l’industrialisation des projets data dans le cloud.

» En savoir plus

Formations associés

Toutes nos formations

Préparez la certification PL‑300
Préparez la certification PL‑300
24 heures
Débutant
Garantie
Préparez la certification AZ-900
Préparez la certification AZ-900
10 heures
Débutant
Garantie
Préparez la certification DP‑700
Préparez la certification DP‑700
24 heures
Débutant
Garantie
Préparez la certification DP‑900
Préparez la certification DP‑900
10 heures
Débutant
Garantie

DataScientist.fr

By AXI Technologies

128 Rue de la Boétie,
75008, Paris, France

bonjour@datascientist.fr

+33 1 70 39 08 31

+33 6 86 99 34 78

© 2026 DataScientist.fr - AXI Technologies - Tous droits réservés