Aller au contenu principal

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​

ScoreNiveau
27-30Excellent - Forte compréhension des frameworks RAG
21-26Bon - Révision recommandée
15-20Moyen - Revoir les chapitres à nouveau
Moins de 15Besoin d'une révision complète

Retour au Module 6 | Continuer au Module 7