BaseDocumentCompressor Class — langchain Architecture
Architecture documentation for the BaseDocumentCompressor class in compressor.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 56ee7e00_cbf2_37e6_b294_468dfe7f2941["BaseDocumentCompressor"] 0fa7b156_7bfe_5d8d_3c47_b4b3ab1f086c["compressor.py"] 56ee7e00_cbf2_37e6_b294_468dfe7f2941 -->|defined in| 0fa7b156_7bfe_5d8d_3c47_b4b3ab1f086c e5009790_5a9c_fd25_4a11_3f8b72330c84["compress_documents()"] 56ee7e00_cbf2_37e6_b294_468dfe7f2941 -->|method| e5009790_5a9c_fd25_4a11_3f8b72330c84 509dffe4_0b9c_12dd_63b1_f929e53df03a["acompress_documents()"] 56ee7e00_cbf2_37e6_b294_468dfe7f2941 -->|method| 509dffe4_0b9c_12dd_63b1_f929e53df03a
Relationship Graph
Source Code
libs/core/langchain_core/documents/compressor.py lines 19–74
class BaseDocumentCompressor(BaseModel, ABC):
"""Base class for document compressors.
This abstraction is primarily used for post-processing of retrieved documents.
`Document` objects matching a given query are first retrieved.
Then the list of documents can be further processed.
For example, one could re-rank the retrieved documents using an LLM.
!!! note
Users should favor using a `RunnableLambda` instead of sub-classing from this
interface.
"""
@abstractmethod
def compress_documents(
self,
documents: Sequence[Document],
query: str,
callbacks: Callbacks | None = None,
) -> Sequence[Document]:
"""Compress retrieved documents given the query context.
Args:
documents: The retrieved `Document` objects.
query: The query context.
callbacks: Optional `Callbacks` to run during compression.
Returns:
The compressed documents.
"""
async def acompress_documents(
self,
documents: Sequence[Document],
query: str,
callbacks: Callbacks | None = None,
) -> Sequence[Document]:
"""Async compress retrieved documents given the query context.
Args:
documents: The retrieved `Document` objects.
query: The query context.
callbacks: Optional `Callbacks` to run during compression.
Returns:
The compressed documents.
"""
return await run_in_executor(
None, self.compress_documents, documents, query, callbacks
)
Source
Frequently Asked Questions
What is the BaseDocumentCompressor class?
BaseDocumentCompressor is a class in the langchain codebase, defined in libs/core/langchain_core/documents/compressor.py.
Where is BaseDocumentCompressor defined?
BaseDocumentCompressor is defined in libs/core/langchain_core/documents/compressor.py at line 19.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free