| | from langchain.schema.vectorstore import VectorStoreRetriever |
| | from langchain.callbacks.manager import CallbackManagerForRetrieverRun |
| | from langchain.schema.document import Document |
| | from langchain_core.callbacks import AsyncCallbackManagerForRetrieverRun |
| | from typing import List |
| |
|
| |
|
| | class VectorStoreRetrieverScore(VectorStoreRetriever): |
| |
|
| | |
| | def _get_relevant_documents( |
| | self, query: str, *, run_manager: CallbackManagerForRetrieverRun |
| | ) -> List[Document]: |
| | docs_and_similarities = ( |
| | self.vectorstore.similarity_search_with_relevance_scores( |
| | query, **self.search_kwargs |
| | ) |
| | ) |
| | |
| | for doc, similarity in docs_and_similarities: |
| | doc.metadata["score"] = similarity |
| |
|
| | docs = [doc for doc, _ in docs_and_similarities] |
| | return docs |
| |
|
| | async def _aget_relevant_documents( |
| | self, query: str, *, run_manager: AsyncCallbackManagerForRetrieverRun |
| | ) -> List[Document]: |
| | docs_and_similarities = ( |
| | self.vectorstore.similarity_search_with_relevance_scores( |
| | query, **self.search_kwargs |
| | ) |
| | ) |
| | |
| | for doc, similarity in docs_and_similarities: |
| | doc.metadata["score"] = similarity |
| |
|
| | docs = [doc for doc, _ in docs_and_similarities] |
| | return docs |
| |
|