refactor: Add search_documents method to LCVectorStoreComponent for searching documents in the Chroma vector store
This commit is contained in:
parent
d090a18004
commit
8b2ea1b175
2 changed files with 22 additions and 21 deletions
|
|
@ -1,6 +1,7 @@
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from langchain_core.documents import Document
|
from langchain_core.documents import Document
|
||||||
|
from loguru import logger
|
||||||
|
|
||||||
from langflow.custom import Component
|
from langflow.custom import Component
|
||||||
from langflow.field_typing import Retriever, Text, VectorStore
|
from langflow.field_typing import Retriever, Text, VectorStore
|
||||||
|
|
@ -80,3 +81,24 @@ class LCVectorStoreComponent(Component):
|
||||||
return vector_store.as_retriever()
|
return vector_store.as_retriever()
|
||||||
else:
|
else:
|
||||||
raise ValueError(f"Vector Store {vector_store.__class__.__name__} does not have an as_retriever method.")
|
raise ValueError(f"Vector Store {vector_store.__class__.__name__} does not have an as_retriever method.")
|
||||||
|
|
||||||
|
def search_documents(self) -> List[Data]:
|
||||||
|
"""
|
||||||
|
Search for documents in the Chroma vector store.
|
||||||
|
"""
|
||||||
|
search_query: str = self.search_query
|
||||||
|
if not search_query:
|
||||||
|
self.status = ""
|
||||||
|
return []
|
||||||
|
|
||||||
|
vector_store = self.build_vector_store()
|
||||||
|
|
||||||
|
logger.debug(f"Search input: {search_query}")
|
||||||
|
logger.debug(f"Search type: {self.search_type}")
|
||||||
|
logger.debug(f"Number of results: {self.number_of_results}")
|
||||||
|
|
||||||
|
search_results = self.search_with_vector_store(
|
||||||
|
search_query, self.search_type, vector_store, k=self.number_of_results
|
||||||
|
)
|
||||||
|
self.status = search_results
|
||||||
|
return search_results
|
||||||
|
|
|
||||||
|
|
@ -167,24 +167,3 @@ class ChromaVectorStoreComponent(LCVectorStoreComponent):
|
||||||
vector_store.add_documents(documents)
|
vector_store.add_documents(documents)
|
||||||
else:
|
else:
|
||||||
logger.debug("No documents to add to the Vector Store.")
|
logger.debug("No documents to add to the Vector Store.")
|
||||||
|
|
||||||
def search_documents(self) -> List[Data]:
|
|
||||||
"""
|
|
||||||
Search for documents in the Chroma vector store.
|
|
||||||
"""
|
|
||||||
search_query: str = self.search_query
|
|
||||||
if not search_query:
|
|
||||||
self.status = ""
|
|
||||||
return []
|
|
||||||
|
|
||||||
vector_store = self.build_vector_store()
|
|
||||||
|
|
||||||
logger.debug(f"Search input: {search_query}")
|
|
||||||
logger.debug(f"Search type: {self.search_type}")
|
|
||||||
logger.debug(f"Number of results: {self.number_of_results}")
|
|
||||||
|
|
||||||
search_results = self.search_with_vector_store(
|
|
||||||
search_query, self.search_type, vector_store, k=self.number_of_results
|
|
||||||
)
|
|
||||||
self.status = search_results
|
|
||||||
return search_results
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue