graph LR
Reranker_Core_Interface["Reranker Core Interface"]
API_Reranker_Clients["API Reranker Clients"]
LLM_Based_Reranker_Strategies["LLM-Based Reranker Strategies"]
Transformer_Based_Reranker_Strategies["Transformer-Based Reranker Strategies"]
Utility_Services["Utility Services"]
Reranker_Core_Interface -- "Delegates API-based ranking requests" --> API_Reranker_Clients
Reranker_Core_Interface -- "Delegates LLM-based ranking requests" --> LLM_Based_Reranker_Strategies
Reranker_Core_Interface -- "Delegates Transformer-based ranking requests" --> Transformer_Based_Reranker_Strategies
API_Reranker_Clients -- "Utilizes common helper functions" --> Utility_Services
LLM_Based_Reranker_Strategies -- "Utilizes common helper functions" --> Utility_Services
Transformer_Based_Reranker_Strategies -- "Utilizes common helper functions" --> Utility_Services
click Reranker_Core_Interface href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/rerankers/Reranker_Core_Interface.md" "Details"
click API_Reranker_Clients href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/rerankers/API_Reranker_Clients.md" "Details"
click Transformer_Based_Reranker_Strategies href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/rerankers/Transformer_Based_Reranker_Strategies.md" "Details"
The rerankers library employs a robust, extensible architecture designed for diverse reranking needs. At its heart, the Reranker Core Interface serves as a central facade, providing a unified entry point for all reranking operations. This interface intelligently dispatches requests to specialized strategy components: API Reranker Clients for seamless integration with external reranking services, LLM-Based Reranker Strategies for advanced reranking powered by large language models, and Transformer-Based Reranker Strategies for efficient local inference using various transformer models. All these specialized components consistently interact with a Utility Services module, which provides essential helper functions and common data structures, ensuring a clean separation of concerns and promoting code reusability. This design allows for easy expansion with new reranking models and APIs while maintaining a consistent and intuitive user experience.
Reranker Core Interface [Expand]
The central entry point and factory for the entire library, providing a unified Reranker function. It dynamically selects and instantiates the correct reranker strategy.
Related Classes/Methods:
rerankers.reranker.Reranker:196-247rerankers.reranker._get_api_provider:73-90rerankers.reranker._get_defaults:171-194rerankers.reranker._get_model_type:92-169
API Reranker Clients [Expand]
Handles interactions with external reranking APIs (e.g., Cohere, Jina, MixedBread, Pinecone, Isaacus, OpenAI, Voyage AI, HuggingFace TEI), managing request formatting and response parsing.
Related Classes/Methods:
rerankers.models.api_rankers.rank:104-115rerankers.models.api_rankers.score:138-142rerankers.models.api_rankers._format_payload:118-136rerankers.models.api_rankers._parse_response:87-102
Implements reranking logic leveraging Large Language Models (LLMs), including techniques like layer-wise ranking, relevance filtering, and permutation-based ranking (e.g., RankGPT, RankLLM).
Related Classes/Methods:
rerankers.models.llm_layerwise_ranker.rank:138-187rerankers.models.llm_relevance_filter.rank:157-193rerankers.models.rankgpt_rankers.rank:126-160
Transformer-Based Reranker Strategies [Expand]
Implements reranking logic based on various transformer architectures (e.g., CrossEncoder, ColBERT, MonoVLM, T5, MXBAI V2, UPR), handling model loading, tokenization, and inference.
Related Classes/Methods:
rerankers.models.transformer_ranker.rank:57-96rerankers.models.colbert_ranker.rank:257-273rerankers.models.monovlm_ranker.rank:145-160rerankers.models.mxbai_v2.rank:358-413rerankers.models.t5ranker.rank:160-178rerankers.models.upr.rank:84-108
Provides common helper functions and utilities used across different reranker implementations, such as verbose output, data preprocessing, and common data structures.
Related Classes/Methods: