Quiz: Construcción de pipelines RAG
Ponga a prueba sus conocimientos sobre LangChain, LlamaIndex y la construcción de pipelines RAG.
30 preguntas - Haga clic en cada pregunta para revelar la respuesta correcta.
Pregunta 1-10: LangChain
Pregunta 1: ¿Qué es LCEL en LangChain?
Respuesta: LangChain Expression Language - una forma componible y declarativa de construir cadenas usando el operador pipe (|).
Pregunta 2: ¿Qué hace el tipo de cadena "stuff"?
Respuesta: Coloca todos los documentos recuperados en un solo prompt - ideal para contextos pequeños que caben en la ventana de contexto del LLM.
Pregunta 3: ¿Cuándo debe usar el tipo de cadena map_reduce?
Respuesta: Cuando se trabaja con grandes conjuntos de datos que no caben en un solo prompt - procesa los documentos por separado y luego combina los resultados.
Pregunta 4: ¿Para qué se utiliza ConversationBufferMemory?
Respuesta: Para mantener el historial de la conversación en aplicaciones RAG tipo chatbot.
Pregunta 5: ¿Qué hace RunnablePassthrough en LCEL?
Respuesta: Pasa la entrada sin cambios - útil para incluir la consulta original en composiciones de cadenas.
Pregunta 6: ¿Cómo se crea un retriever a partir de un vector store en LangChain?
Respuesta: Usando el método vectorstore.as_retriever().
Pregunta 7: ¿Cuál es el propósito de ChatPromptTemplate?
Respuesta: Crear plantillas de prompt reutilizables con variables para contenido dinámico.
Pregunta 8: ¿Qué hace StrOutputParser?
Respuesta: Analiza la salida del LLM para extraer solo el contenido de texto de la respuesta.
Pregunta 9: ¿Para qué es mejor el tipo de cadena "refine"?
Respuesta: Consultas complejas donde refinar iterativamente la respuesta con cada documento mejora la calidad.
Pregunta 10: ¿Cómo se agrega streaming a una cadena de LangChain?
Respuesta: Use chain.stream() en lugar de chain.invoke() para obtener un iterador de fragmentos de respuesta.
Pregunta 11-20: LlamaIndex
Pregunta 11: ¿Cómo se llamaba antes LlamaIndex?
Respuesta: GPT Index
Pregunta 12: ¿Cuál es el tipo principal de índice en LlamaIndex?
Respuesta: VectorStoreIndex - almacena documentos con sus embeddings para búsqueda por similitud.
Pregunta 13: ¿Cómo se crea un motor de consulta a partir de un índice?
Respuesta: Usando el método index.as_query_engine().
Pregunta 14: ¿Qué es un chat engine en LlamaIndex?
Respuesta: Un motor de consulta con memoria de conversación incorporada para interacciones de varios turnos.
Pregunta 15: ¿Qué hace el modo de respuesta "compact"?
Respuesta: Coloca todo el contexto en un solo prompt - el modo predeterminado y más eficiente.
Pregunta 16: ¿Qué es el modo de respuesta tree_summarize?
Respuesta: Resume jerárquicamente los documentos, útil para conjuntos de resultados muy grandes.
Pregunta 17: ¿Qué es SimpleDirectoryReader?
Respuesta: Una utilidad para cargar todos los documentos de un directorio con detección automática de tipo de archivo.
Pregunta 18: ¿Qué controla el parámetro similarity_top_k?
Respuesta: La cantidad de documentos similares a recuperar para cada consulta.
Pregunta 19: ¿Para qué se utiliza SummaryIndex?
Respuesta: Para crear resúmenes sobre documentos en lugar de búsqueda por similitud.
Pregunta 20: ¿En qué se diferencia LlamaIndex de LangChain en cuanto a enfoque?
Respuesta: LlamaIndex se centra en la indexación y consulta de datos, mientras que LangChain es más general para construir cadenas.
Pregunta 21-30: General y RAG personalizado
Pregunta 21: ¿Cuándo debería construir un RAG personalizado en lugar de usar frameworks?
Respuesta: Cuando necesita control detallado, dependencias mínimas o tiene requisitos de rendimiento específicos.
Pregunta 22: ¿Cuáles son los tres pasos principales en cualquier sistema RAG?
Respuesta: 1) Embedir la consulta, 2) Recuperar documentos relevantes, 3) Generar la respuesta con contexto.
Pregunta 23: ¿Por qué un RAG personalizado podría ser más rápido que los frameworks?
Respuesta: Menos sobrecarga, sin capas de abstracción, optimizado para el caso de uso específico.
Pregunta 24: ¿Cuál es la principal desventaja de un RAG personalizado?
Respuesta: Más trabajo de desarrollo y mantenimiento - usted construye todo por su cuenta.
Pregunta 25: ¿Cómo se agrega caché a un RAG personalizado?
Respuesta: Use técnicas como @lru_cache para caché de embeddings o Redis para caché de resultados.
Pregunta 26: ¿Para qué es útil el streaming en RAG?
Respuesta: Proporcionar salida de respuesta en tiempo real a los usuarios sin esperar la generación completa.
Pregunta 27: ¿Qué framework es mejor para prototipado rápido?
Respuesta: LlamaIndex para preguntas y respuestas simples sobre documentos, LangChain para pipelines más complejos.
Pregunta 28: ¿Qué es lo mínimo necesario para un sistema RAG básico?
Respuesta: Modelo de embeddings, vector store, LLM y código para conectarlos.
Pregunta 29: ¿Cómo se manejan los errores en RAG en producción?
Respuesta: Bloques try-catch, respuestas de respaldo, registro y monitoreo.
Pregunta 30: ¿Qué determina más la calidad de la respuesta en RAG?
Respuesta: La calidad de la recuperación - si recupera los documentos correctos, el LLM puede generar buenas respuestas.
Resultados
| Puntaje | Nivel |
|---|---|
| 27-30 | Excelente - Fuerte comprensión de los frameworks RAG |
| 21-26 | Bueno - Se recomienda repasar algunos temas |
| 15-20 | Promedio - Revise los capítulos nuevamente |
| Menos de 15 | Requiere revisión exhaustiva |