Quiz: Construindo Pipelines RAG
Teste seus conhecimentos sobre LangChain, LlamaIndex e construção de pipelines RAG.
30 questões - Clique em cada pergunta para revelar a resposta correta.
Questão 1-10: LangChain
Pergunta 1: O que é LCEL no LangChain?
Resposta: LangChain Expression Language - uma forma composável e declarativa de construir chains usando o operador pipe (|).
Pergunta 2: O que o tipo de chain "stuff" faz?
Resposta: Coloca todos os documentos recuperados em um único prompt - melhor para contextos pequenos que cabem na janela de contexto do LLM.
Pergunta 3: Quando você deve usar o tipo de chain map_reduce?
Resposta: Ao lidar com grandes volumes de dados que não cabem em um único prompt - processa os documentos separadamente e depois combina os resultados.
Pergunta 4: Para que serve o ConversationBufferMemory?
Resposta: Para manter o histórico da conversa em aplicações RAG no estilo chatbot.
Pergunta 5: O que o RunnablePassthrough faz no LCEL?
Resposta: Passa a entrada sem alterações - útil para incluir a consulta original em composições de chains.
Pergunta 6: Como você cria um retriever a partir de um vector store no LangChain?
Resposta: Usando o método vectorstore.as_retriever().
Pergunta 7: Qual é o propósito do ChatPromptTemplate?
Resposta: Criar templates de prompt reutilizáveis com variáveis para conteúdo dinâmico.
Pergunta 8: O que o StrOutputParser faz?
Resposta: Faz o parsing da saída do LLM para extrair apenas o conteúdo em string da resposta.
Pergunta 9: Para que o tipo de chain "refine" é mais indicado?
Resposta: Consultas complexas onde refinar iterativamente a resposta com cada documento melhora a qualidade.
Pergunta 10: Como adicionar streaming a uma chain do LangChain?
Resposta: Use chain.stream() em vez de chain.invoke() para obter um iterador de partes da resposta.
Questão 11-20: LlamaIndex
Pergunta 11: Como o LlamaIndex era chamado anteriormente?
Resposta: GPT Index
Pergunta 12: Qual é o principal tipo de índice no LlamaIndex?
Resposta: VectorStoreIndex - armazena documentos com seus embeddings para busca por similaridade.
Pergunta 13: Como criar um query engine a partir de um índice?
Resposta: Usando o método index.as_query_engine().
Pergunta 14: O que é um chat engine no LlamaIndex?
Resposta: Um query engine com memória de conversação embutida para interações de múltiplas rodadas.
Pergunta 15: O que o modo de resposta "compact" faz?
Resposta: Coloca todo o contexto em um único prompt - é o modo padrão e mais eficiente.
Pergunta 16: O que é o modo de resposta tree_summarize?
Resposta: Resume documentos de forma hierárquica, útil para conjuntos de resultados muito grandes.
Pergunta 17: O que é o SimpleDirectoryReader?
Resposta: Uma utilidade para carregar todos os documentos de um diretório com detecção automática do tipo de arquivo.
Pergunta 18: O que o parâmetro similarity_top_k controla?
Resposta: O número de documentos similares a serem recuperados para cada consulta.
Pergunta 19: Para que serve o SummaryIndex?
Resposta: Criar resumos sobre documentos em vez de busca por similaridade.
Pergunta 20: Em que o LlamaIndex difere do LangChain em foco?
Resposta: LlamaIndex foca em indexação e consulta de dados, enquanto LangChain é mais generalista para construção de chains.
Questão 21-30: RAG Geral & Customizado
Pergunta 21: Quando você deve construir um RAG customizado em vez de usar frameworks?
Resposta: Quando precisa de controle detalhado, dependências mínimas ou requisitos específicos de performance.
Pergunta 22: Quais são as três etapas principais em qualquer sistema RAG?
Resposta: 1) Gerar embedding da consulta, 2) Recuperar documentos relevantes, 3) Gerar resposta com contexto.
Pergunta 23: Por que um RAG customizado pode ser mais rápido que frameworks?
Resposta: Menos overhead, sem camadas de abstração, otimizado para o caso de uso específico.
Pergunta 24: Qual é a principal desvantagem do RAG customizado?
Resposta: Mais trabalho de desenvolvimento e manutenção - você constrói tudo do zero.
Pergunta 25: Como adicionar cache a um RAG customizado?
Resposta: Usando técnicas como @lru_cache para cache de embeddings ou Redis para cache de resultados.
Pergunta 26: Para que o streaming é útil em RAG?
Resposta: Fornecer saída de resposta em tempo real para os usuários sem esperar a geração completa.
Pergunta 27: Qual framework é melhor para prototipagem rápida?
Resposta: LlamaIndex para perguntas e respostas simples sobre documentos, LangChain para pipelines mais complexos.
Pergunta 28: Qual é o mínimo necessário para um sistema RAG básico?
Resposta: Modelo de embeddings, vector store, LLM e código para conectá-los.
Pergunta 29: Como lidar com erros em RAG em produção?
Resposta: Blocos try-catch, respostas de fallback, logging e monitoramento.
Pergunta 30: O que mais determina a qualidade da resposta do RAG?
Resposta: Qualidade da recuperação - se você recupera os documentos certos, o LLM pode gerar boas respostas.
Resultados
| Pontuação | Nível |
|---|---|
| 27-30 | Excelente - Forte entendimento dos frameworks RAG |
| 21-26 | Bom - Recomendada revisão de alguns tópicos |
| 15-20 | Médio - Revise os capítulos novamente |
| Abaixo de 15 | Precisa de revisão abrangente |