Quiz : Construire des pipelines RAG
Testez vos connaissances sur LangChain, LlamaIndex et la construction de pipelines RAG.
30 questions - Cliquez sur chaque question pour révéler la réponse correcte.
Question 1-10 : LangChain
Question 1 : Qu'est-ce que LCEL dans LangChain ?
Réponse : LangChain Expression Language - une manière composable et déclarative de construire des chaînes en utilisant l'opérateur pipe (|).
Question 2 : Que fait le type de chaîne "stuff" ?
Réponse : Met tous les documents récupérés dans une seule invite - idéal pour les petits contextes qui tiennent dans la fenêtre de contexte du LLM.
Question 3 : Quand devriez-vous utiliser le type de chaîne map_reduce ?
Réponse : Lorsqu'on traite de grands ensembles de données qui ne tiennent pas dans une seule invite - il traite les documents séparément puis combine les résultats.
Question 4 : À quoi sert ConversationBufferMemory ?
Réponse : Pour maintenir l'historique des conversations dans les applications RAG de type chatbot.
Question 5 : Que fait RunnablePassthrough dans LCEL ?
Réponse : Transmet l'entrée inchangée - utile pour inclure la requête originale dans les compositions de chaînes.
Question 6 : Comment créer un récupérateur à partir d'un magasin de vecteurs dans LangChain ?
Réponse : En utilisant la méthode vectorstore.as_retriever().
Question 7 : Quel est le but de ChatPromptTemplate ?
Réponse : Créer des modèles d'invite réutilisables avec des espaces réservés pour le contenu dynamique.
Question 8 : Que fait StrOutputParser ?
Réponse : Analyse la sortie du LLM pour extraire uniquement le contenu textuel de la réponse.
Question 9 : Pour quoi le type de chaîne "refine" est-il le meilleur ?
Réponse : Requêtes complexes où affiner la réponse de manière itérative avec chaque document améliore la qualité.
Question 10 : Comment ajouter le streaming à une chaîne LangChain ?
Réponse : Utilisez chain.stream() au lieu de chain.invoke() pour obtenir un itérateur de morceaux de réponse.
Question 11-20 : LlamaIndex
Question 11 : Comment s'appelait LlamaIndex auparavant ?
Réponse : GPT Index
Question 12 : Quel est le type d'index principal dans LlamaIndex ?
Réponse : VectorStoreIndex - stocke les documents avec leurs embeddings pour la recherche de similarité.
Question 13 : Comment créer un moteur de requête à partir d'un index ?
Réponse : En utilisant la méthode index.as_query_engine().
Question 14 : Qu'est-ce qu'un moteur de chat dans LlamaIndex ?
Réponse : Un moteur de requête avec mémoire de conversation intégrée pour les interactions multi-tours.
Question 15 : Que fait le mode de réponse "compact" ?
Réponse : Met tout le contexte dans une seule invite - le mode par défaut et le plus efficace.
Question 16 : Qu'est-ce que le mode de réponse tree_summarize ?
Réponse : Résume hiérarchiquement les documents, utile pour des ensembles de résultats très larges.
Question 17 : Qu'est-ce que SimpleDirectoryReader ?
Réponse : Un utilitaire pour charger tous les documents d'un répertoire avec détection automatique du type de fichier.
Question 18 : Que contrôle le paramètre similarity_top_k ?
Réponse : Le nombre de documents similaires à récupérer pour chaque requête.
Question 19 : À quoi sert SummaryIndex ?
Réponse : Créer des résumés sur les documents plutôt que la recherche de similarité.
Question 20 : En quoi LlamaIndex diffère-t-il de LangChain en termes de focus ?
Réponse : LlamaIndex se concentre sur l'indexation et la requête de données, tandis que LangChain est plus général pour construire des chaînes.
Question 21-30 : Général & RAG Personnalisé
Question 21 : Quand devriez-vous construire un RAG personnalisé au lieu d'utiliser des frameworks ?
Réponse : Lorsque vous avez besoin d'un contrôle précis, de dépendances minimales ou de spécifications de performance particulières.
Question 22 : Quelles sont les trois étapes principales dans tout système RAG ?
Réponse : 1) Intégrer la requête, 2) Récupérer les documents pertinents, 3) Générer une réponse avec le contexte.
Question 23 : Pourquoi un RAG personnalisé pourrait-il être plus rapide que des frameworks ?
Réponse : Moins de surcharge, pas de couches d'abstraction, optimisé pour un cas d'utilisation spécifique.
Question 24 : Quel est le principal inconvénient d'un RAG personnalisé ?
Réponse : Plus de travail de développement et de maintenance - vous construisez tout vous-même.
Question 25 : Comment ajouter de la mise en cache à un RAG personnalisé ?
Réponse : Utilisez des techniques comme @lru_cache pour la mise en cache des embeddings ou Redis pour la mise en cache des résultats.
Question 26 : À quoi sert le streaming dans RAG ?
Réponse : Fournir une sortie de réponse en temps réel aux utilisateurs sans attendre la génération complète.
Question 27 : Quel framework est meilleur pour le prototypage rapide ?
Réponse : LlamaIndex pour une simple Q&R de documents, LangChain pour des pipelines plus complexes.
Question 28 : Quel est le minimum nécessaire pour un système RAG de base ?
Réponse : Modèle d'embeddings, magasin de vecteurs, LLM, et code pour les connecter.
Question 29 : Comment gérer les erreurs dans un RAG en production ?
Réponse : Blocs try-catch, réponses de secours, journalisation et surveillance.
Question 30 : Qu'est-ce qui détermine le plus la qualité des réponses RAG ?
Réponse : La qualité de la récupération - si vous récupérez les bons documents, le LLM peut générer de bonnes réponses.
Résultats
| Score | Niveau |
|---|---|
| 27-30 | Excellent - Forte compréhension des frameworks RAG |
| 21-26 | Bon - Révision recommandée |
| 15-20 | Moyen - Revoir les chapitres à nouveau |
| Moins de 15 | Besoin d'une révision complète |