ContextualCompressionRetriever Class — langchain Architecture
Architecture documentation for the ContextualCompressionRetriever class in contextual_compression.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD a72ed538_14ed_ca72_449e_79f0b4ec0262["ContextualCompressionRetriever"] 3a20478a_3692_141f_433b_a32429b00020["BaseRetriever"] a72ed538_14ed_ca72_449e_79f0b4ec0262 -->|extends| 3a20478a_3692_141f_433b_a32429b00020 90a392be_990f_c062_428a_77d9ff956b44["contextual_compression.py"] a72ed538_14ed_ca72_449e_79f0b4ec0262 -->|defined in| 90a392be_990f_c062_428a_77d9ff956b44 3512fa71_906e_cd7a_f242_4073e815d9ed["_get_relevant_documents()"] a72ed538_14ed_ca72_449e_79f0b4ec0262 -->|method| 3512fa71_906e_cd7a_f242_4073e815d9ed 118a8bdb_e78f_28b2_4f17_28fa0abbb067["_aget_relevant_documents()"] a72ed538_14ed_ca72_449e_79f0b4ec0262 -->|method| 118a8bdb_e78f_28b2_4f17_28fa0abbb067
Relationship Graph
Source Code
libs/langchain/langchain_classic/retrievers/contextual_compression.py lines 13–68
class ContextualCompressionRetriever(BaseRetriever):
"""Retriever that wraps a base retriever and compresses the results."""
base_compressor: BaseDocumentCompressor
"""Compressor for compressing retrieved documents."""
base_retriever: RetrieverLike
"""Base Retriever to use for getting relevant documents."""
model_config = ConfigDict(
arbitrary_types_allowed=True,
)
@override
def _get_relevant_documents(
self,
query: str,
*,
run_manager: CallbackManagerForRetrieverRun,
**kwargs: Any,
) -> list[Document]:
docs = self.base_retriever.invoke(
query,
config={"callbacks": run_manager.get_child()},
**kwargs,
)
if docs:
compressed_docs = self.base_compressor.compress_documents(
docs,
query,
callbacks=run_manager.get_child(),
)
return list(compressed_docs)
return []
@override
async def _aget_relevant_documents(
self,
query: str,
*,
run_manager: AsyncCallbackManagerForRetrieverRun,
**kwargs: Any,
) -> list[Document]:
docs = await self.base_retriever.ainvoke(
query,
config={"callbacks": run_manager.get_child()},
**kwargs,
)
if docs:
compressed_docs = await self.base_compressor.acompress_documents(
docs,
query,
callbacks=run_manager.get_child(),
)
return list(compressed_docs)
return []
Extends
Source
Frequently Asked Questions
What is the ContextualCompressionRetriever class?
ContextualCompressionRetriever is a class in the langchain codebase, defined in libs/langchain/langchain_classic/retrievers/contextual_compression.py.
Where is ContextualCompressionRetriever defined?
ContextualCompressionRetriever is defined in libs/langchain/langchain_classic/retrievers/contextual_compression.py at line 13.
What does ContextualCompressionRetriever extend?
ContextualCompressionRetriever extends BaseRetriever.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free