This notebook shows how to use Jina Reranker for document compression and retrieval.
Copy
Ask AI
%pip install -qU langchain langchain-openai langchain-community langchain-text-splitters langchainhub%pip install -qU faiss# OR (depending on Python version)%pip install -qU faiss_cpu
Copy
Ask AI
# Helper function for printing docsdef pretty_print_docs(docs): print( f"\n{'-' * 100}\n".join( [f"Document {i + 1}:\n\n" + d.page_content for i, d in enumerate(docs)] ) )
Let’s start by initializing a simple vector store retriever and storing the 2023 State of the Union speech (in chunks). We can set up the retriever to retrieve a high number (20) of docs.
Now let’s wrap our base retriever with a ContextualCompressionRetriever, using Jina Reranker as a compressor.
Copy
Ask AI
from langchain.retrievers import ContextualCompressionRetrieverfrom langchain_community.document_compressors import JinaRerankcompressor = JinaRerank()compression_retriever = ContextualCompressionRetriever( base_compressor=compressor, base_retriever=retriever)compressed_docs = compression_retriever.get_relevant_documents( "What did the president say about Ketanji Jackson Brown")
================================ System Message ================================Answer any use questions based solely on the context below:<context>{context}</context>============================= Messages Placeholder ============================={chat_history}================================ Human Message ================================={input}