LangChain 연동 — 리랭킹을 RAG 파이프라인에 연결

LangChain 연동 — 리랭킹을 RAG 파이프라인에 연결

RAG에서 검색(retrieval) 후 리랭킹을 붙이면 상위 문서의 관련성이 크게 좋아져요. rerankers는 LangChain의 ContextualCompressionRetriever와 함께 쓰도록 설계된 래퍼를 제공해요. 연동 흐름을 볼게요.

출처: https://github.com/AnswerDotAI/rerankers/blob/main/examples/langchain_integration.ipynb

from langchain_community.retrievers import ContextualCompressionRetriever
from rerankers import Reranker
from rerankers.models.rankgpt import Reranker as RankGPT

ranker = Reranker("cross-encoder")
compressor = ContextualCompressionRetriever(
    base_compressor=ranker.as_langchain_compressor(),
    base_retriever=base_retriever,
)
compressed_docs = compressor.get_relevant_documents(query)

핵심은 ranker.as_langchain_compressor()예요. 이 메서드가 리랭커를 LangChain compressor로 감싸서, ContextualCompressionRetriever가 검색 결과를 리랭킹해 최종 문서를 돌려주게 해요. 리랭커를 cross-encoder, T5, ColBERT 등으로 바꿔도 연동 코드는 그대로예요.

더 알아보기