CrossEncoderReranker Class — langchain Architecture
Architecture documentation for the CrossEncoderReranker class in cross_encoder_rerank.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD b57d0bc1_34a8_c3ef_14bc_10afd0822334["CrossEncoderReranker"] 56ee7e00_cbf2_37e6_b294_468dfe7f2941["BaseDocumentCompressor"] b57d0bc1_34a8_c3ef_14bc_10afd0822334 -->|extends| 56ee7e00_cbf2_37e6_b294_468dfe7f2941 cf3fb802_b44c_402b_c5f4_21bfdba2648f["cross_encoder_rerank.py"] b57d0bc1_34a8_c3ef_14bc_10afd0822334 -->|defined in| cf3fb802_b44c_402b_c5f4_21bfdba2648f 9c91c123_fd5c_2b24_8848_8ee641345546["compress_documents()"] b57d0bc1_34a8_c3ef_14bc_10afd0822334 -->|method| 9c91c123_fd5c_2b24_8848_8ee641345546
Relationship Graph
Source Code
libs/langchain/langchain_classic/retrievers/document_compressors/cross_encoder_rerank.py lines 16–50
class CrossEncoderReranker(BaseDocumentCompressor):
"""Document compressor that uses CrossEncoder for reranking."""
model: BaseCrossEncoder
"""CrossEncoder model to use for scoring similarity
between the query and documents."""
top_n: int = 3
"""Number of documents to return."""
model_config = ConfigDict(
arbitrary_types_allowed=True,
extra="forbid",
)
@override
def compress_documents(
self,
documents: Sequence[Document],
query: str,
callbacks: Callbacks | None = None,
) -> Sequence[Document]:
"""Rerank documents using CrossEncoder.
Args:
documents: A sequence of documents to compress.
query: The query to use for compressing the documents.
callbacks: Callbacks to run during the compression process.
Returns:
A sequence of compressed documents.
"""
scores = self.model.score([(query, doc.page_content) for doc in documents])
docs_with_scores = list(zip(documents, scores, strict=False))
result = sorted(docs_with_scores, key=operator.itemgetter(1), reverse=True)
return [doc for doc, _ in result[: self.top_n]]
Extends
Source
Frequently Asked Questions
What is the CrossEncoderReranker class?
CrossEncoderReranker is a class in the langchain codebase, defined in libs/langchain/langchain_classic/retrievers/document_compressors/cross_encoder_rerank.py.
Where is CrossEncoderReranker defined?
CrossEncoderReranker is defined in libs/langchain/langchain_classic/retrievers/document_compressors/cross_encoder_rerank.py at line 16.
What does CrossEncoderReranker extend?
CrossEncoderReranker extends BaseDocumentCompressor.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free