XThomasBU
more modularization for vectorestore and retriever
a2ac5f7
raw
history blame
925 Bytes
from modules.retriever.faiss_retriever import FaissRetriever
from modules.retriever.chroma_retriever import ChromaRetriever
from modules.retriever.colbert_retriever import ColbertRetriever
class Retriever:
def __init__(self, config):
self.config = config
self._create_retriever()
def _create_retriever(self):
if self.config["vectorstore"]["db_option"] == "FAISS":
self.retriever = FaissRetriever()
elif self.config["vectorstore"]["db_option"] == "Chroma":
self.retriever = ChromaRetriever()
elif self.config["vectorstore"]["db_option"] == "RAGatouille":
self.retriever = ColbertRetriever()
else:
raise ValueError(
"Invalid db_option: {}".format(self.config["vectorstore"]["db_option"])
)
def _return_retriever(self, db):
return self.retriever.return_retriever(db, self.config)