from langchain.retrievers.contextual_compression import ContextualCompressionRetriever
from langchain_community.vectorstores import FAISS
from langchain_core.documents import Document
from langchain_greennode import GreenNodeEmbeddings
# Initialize the embeddings model
embeddings = GreenNodeEmbeddings(
# api_key="YOUR_API_KEY", # You can pass the API key directly
model="BAAI/bge-m3" # The default embedding model
)
# Prepare documents (finance/economics domain)
docs = [
Document(
page_content="Inflation represents the rate at which the general level of prices for goods and services rises"
),
Document(
page_content="Central banks use interest rates to control inflation and stabilize the economy"
),
Document(
page_content="Cryptocurrencies like Bitcoin operate on decentralized blockchain networks"
),
Document(
page_content="Stock markets are influenced by corporate earnings, investor sentiment, and economic indicators"
),
]
# Create a vector store and a base retriever
vector_store = FAISS.from_documents(docs, embeddings)
base_retriever = vector_store.as_retriever(search_kwargs={"k": 4})
rerank_retriever = ContextualCompressionRetriever(
base_compressor=reranker, base_retriever=base_retriever
)
# Perform retrieval with reranking
query = "How do central banks fight rising prices?"
results = rerank_retriever.get_relevant_documents(query)
results