Spaces:
Sleeping
Sleeping
File size: 1,090 Bytes
b7cc73a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
from langchain.vectorstores import VectorStore
from langchain.schema.retriever import BaseRetriever
from langchain_core.documents import Document
from typing import List
from langchain.callbacks.manager import CallbackManagerForRetrieverRun
from langchain_core.documents import Document
from langchain_core.runnables import chain
class CustomRetriever(BaseRetriever):
vectorstore:VectorStore
thold:float
def _get_relevant_documents(
self, query: str, *, run_manager: CallbackManagerForRetrieverRun
) -> List[Document]:
docs, scores = zip(*self.vectorstore.similarity_search_with_relevance_scores(query, callbacks=run_manager.get_child()))#get_relevant_documents(query, callbacks=run_manager.get_child())
result=[]
for doc, score in zip(docs, scores):
if score>self.thold:
doc.metadata["score"] = score
result.append(doc)
if len(result)==0:
result.append(Document(metadata={}, page_content='No data'))
return result |