0
0
LangChainframework~20 mins

Contextual compression in LangChain - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Contextual Compression Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
What is the output of this LangChain Contextual Compression Retriever code?
Given the following code snippet using LangChain's ContextualCompressionRetriever, what will be the output when retrieving documents for the query 'Explain AI'?
LangChain
from langchain.document_loaders import TextLoader
from langchain.indexes import VectorstoreIndexCreator
from langchain.retrievers import ContextualCompressionRetriever
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import FAISS

# Load documents
loader = TextLoader('ai_text.txt')
docs = loader.load()

# Split documents
splitter = RecursiveCharacterTextSplitter(chunk_size=100, chunk_overlap=10)
split_docs = splitter.split_documents(docs)

# Create vectorstore
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.from_documents(split_docs, embeddings)

# Create compression retriever
compression_retriever = ContextualCompressionRetriever(
    base_compressor=None,  # No compressor for simplicity
    base_retriever=vectorstore.as_retriever()
)

# Retrieve compressed docs
results = compression_retriever.get_relevant_documents('Explain AI')
print(len(results))
ARaises a TypeError because base_compressor cannot be None
BPrints the number of documents retrieved, equal to the number of chunks matching 'Explain AI' query
CPrints zero because no compressor filters out all documents
DRaises a NameError because ContextualCompressionRetriever is not imported
Attempts:
2 left
💡 Hint
Think about how the retriever works when no compressor is provided.
📝 Syntax
intermediate
1:30remaining
Which option correctly initializes a ContextualCompressionRetriever with a compressor?
Select the code snippet that correctly creates a ContextualCompressionRetriever with a base compressor and base retriever.
Acompression_retriever = ContextualCompressionRetriever(compressor=compressor, retriever=retriever)
Bcompression_retriever = ContextualCompressionRetriever(base_compressor=compressor)
Ccompression_retriever = ContextualCompressionRetriever(base_compressor=compressor, base_retriever=retriever)
Dcompression_retriever = ContextualCompressionRetriever(base_retriever=retriever)
Attempts:
2 left
💡 Hint
Check the exact parameter names required by ContextualCompressionRetriever.
🔧 Debug
advanced
2:00remaining
Why does this ContextualCompressionRetriever code raise a ValueError?
Consider this code snippet: from langchain.retrievers import ContextualCompressionRetriever retriever = ContextualCompressionRetriever(base_compressor=compressor) What is the cause of the ValueError?
AMissing base_retriever argument causes ValueError because it is required
Bcompressor variable is undefined causing ValueError
CContextualCompressionRetriever cannot be instantiated directly causing ValueError
DValueError occurs because base_compressor must be None
Attempts:
2 left
💡 Hint
Check the required parameters for ContextualCompressionRetriever initialization.
state_output
advanced
1:30remaining
What is the effect of using a compressor in ContextualCompressionRetriever on retrieved documents?
If a compressor is used in ContextualCompressionRetriever, how does it affect the documents returned for a query?
AThe compressor duplicates documents, increasing the number of results
BThe compressor has no effect; all documents are returned unchanged
CThe compressor filters out all documents, returning an empty list
DThe compressor reduces document size by summarizing, so fewer but more relevant documents are returned
Attempts:
2 left
💡 Hint
Think about what compression means in this context.
🧠 Conceptual
expert
2:30remaining
Which statement best describes the role of ContextualCompressionRetriever in LangChain?
Choose the statement that best explains what ContextualCompressionRetriever does in LangChain.
AIt wraps a retriever and a compressor to return compressed, relevant documents for a query
BIt replaces the retriever and compressor with a single unified model
CIt retrieves documents but does not support compression
DIt only compresses documents without retrieving them
Attempts:
2 left
💡 Hint
Consider how retrieval and compression work together.