Home / Class/ BaseDocumentCompressor Class — langchain Architecture

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
        )

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