|
from langchain.retrievers.multi_query import MultiQueryRetriever |
|
from langchain_openai import ChatOpenAI |
|
from ragatouille import RAGPretrainedModel |
|
|
|
|
|
def create_retriever(texts): |
|
colbert = RAGPretrainedModel.from_pretrained("colbert-ir/colbertv1.9") |
|
colbert.index( |
|
collection=[chunk.page_content for chunk in texts], |
|
split_documents=False, |
|
document_metadatas=[chunk.metadata for chunk in texts], |
|
index_name="vector_store", |
|
) |
|
retriever = colbert.as_langchain_retriever(k=5) |
|
retriever = MultiQueryRetriever.from_llm( |
|
retriever=retriever, llm=ChatOpenAI(temperature=0) |
|
) |
|
return retriever |
|
|