|
|
@ -51,13 +51,14 @@ class KNNRetriever(BaseRetriever, BaseModel):
|
|
|
|
denominator = np.max(similarities) - np.min(similarities) + 1e-6
|
|
|
|
denominator = np.max(similarities) - np.min(similarities) + 1e-6
|
|
|
|
normalized_similarities = (similarities - np.min(similarities)) / denominator
|
|
|
|
normalized_similarities = (similarities - np.min(similarities)) / denominator
|
|
|
|
|
|
|
|
|
|
|
|
top_k_results = []
|
|
|
|
top_k_results = [
|
|
|
|
for row in sorted_ix[0 : self.k]:
|
|
|
|
Document(page_content=self.texts[row])
|
|
|
|
|
|
|
|
for row in sorted_ix[0 : self.k]
|
|
|
|
if (
|
|
|
|
if (
|
|
|
|
self.relevancy_threshold is None
|
|
|
|
self.relevancy_threshold is None
|
|
|
|
or normalized_similarities[row] >= self.relevancy_threshold
|
|
|
|
or normalized_similarities[row] >= self.relevancy_threshold
|
|
|
|
):
|
|
|
|
)
|
|
|
|
top_k_results.append(Document(page_content=self.texts[row]))
|
|
|
|
]
|
|
|
|
return top_k_results
|
|
|
|
return top_k_results
|
|
|
|
|
|
|
|
|
|
|
|
async def aget_relevant_documents(self, query: str) -> List[Document]:
|
|
|
|
async def aget_relevant_documents(self, query: str) -> List[Document]:
|
|
|
|