feat: adding last_accessed_at field to the models and updating the retrievers to update the timestamp
This commit is contained in:
parent
3372679f7b
commit
3f27c5592b
2 changed files with 44 additions and 32 deletions
|
|
@ -29,26 +29,34 @@ class ChunksRetriever(BaseRetriever):
|
|||
self.top_k = top_k
|
||||
|
||||
async def get_context(self, query: str) -> Any:
|
||||
"""Retrieves document chunks context based on the query."""
|
||||
logger.info(
|
||||
f"Starting chunk retrieval for query: '{query[:100]}{'...' if len(query) > 100 else ''}'"
|
||||
)
|
||||
|
||||
vector_engine = get_vector_engine()
|
||||
|
||||
try:
|
||||
found_chunks = await vector_engine.search("DocumentChunk_text", query, limit=self.top_k)
|
||||
logger.info(f"Found {len(found_chunks)} chunks from vector search")
|
||||
|
||||
# NEW: Update access timestamps
|
||||
await update_node_access_timestamps(found_chunks, "DocumentChunk")
|
||||
except CollectionNotFoundError as error:
|
||||
logger.error("DocumentChunk_text collection not found in vector database")
|
||||
raise NoDataError("No data found in the system, please add data first.") from error
|
||||
|
||||
chunk_payloads = [result.payload for result in found_chunks]
|
||||
logger.info(f"Returning {len(chunk_payloads)} chunk payloads")
|
||||
return chunk_payloads
|
||||
"""
|
||||
Retrieves document chunks context based on the query.
|
||||
Searches for document chunks relevant to the specified query using a vector engine.
|
||||
Raises a NoDataError if no data is found in the system.
|
||||
Parameters:
|
||||
-----------
|
||||
- query (str): The query string to search for relevant document chunks.
|
||||
Returns:
|
||||
--------
|
||||
- Any: A list of document chunk payloads retrieved from the search.
|
||||
"""
|
||||
logger.info(
|
||||
f"Starting chunk retrieval for query: '{query[:100]}{'...' if len(query) > 100 else ''}'"
|
||||
)
|
||||
|
||||
vector_engine = get_vector_engine()
|
||||
|
||||
try:
|
||||
found_chunks = await vector_engine.search("DocumentChunk_text", query, limit=self.top_k)
|
||||
logger.info(f"Found {len(found_chunks)} chunks from vector search")
|
||||
await update_node_access_timestamps(found_chunks, "DocumentChunk")
|
||||
|
||||
except CollectionNotFoundError as error:
|
||||
logger.error("DocumentChunk_text collection not found in vector database")
|
||||
raise NoDataError("No data found in the system, please add data first.") from error
|
||||
|
||||
chunk_payloads = [result.payload for result in found_chunks]
|
||||
logger.info(f"Returning {len(chunk_payloads)} chunk payloads")
|
||||
|
||||
async def get_completion(
|
||||
self, query: str, context: Optional[Any] = None, session_id: Optional[str] = None
|
||||
|
|
|
|||
|
|
@ -48,19 +48,23 @@ class SummariesRetriever(BaseRetriever):
|
|||
f"Starting summary retrieval for query: '{query[:100]}{'...' if len(query) > 100 else ''}'"
|
||||
)
|
||||
|
||||
vector_engine = get_vector_engine()
|
||||
|
||||
try:
|
||||
summaries_results = await vector_engine.search(
|
||||
"TextSummary_text", query, limit=self.top_k
|
||||
)
|
||||
|
||||
vector_engine = get_vector_engine()
|
||||
|
||||
try:
|
||||
summaries_results = await vector_engine.search(
|
||||
"TextSummary_text", query, limit=self.top_k
|
||||
)
|
||||
logger.info(f"Found {len(summaries_results)} summaries from vector search")
|
||||
|
||||
await update_node_access_timestamps(summaries_results, "TextSummary")
|
||||
|
||||
except CollectionNotFoundError as error:
|
||||
raise NoDataError("No data found in the system, please add data first.") from error
|
||||
|
||||
return [summary.payload for summary in summaries_results]
|
||||
|
||||
except CollectionNotFoundError as error:
|
||||
logger.error("TextSummary_text collection not found in vector database")
|
||||
raise NoDataError("No data found in the system, please add data first.") from error
|
||||
|
||||
summary_payloads = [summary.payload for summary in summaries_results]
|
||||
logger.info(f"Returning {len(summary_payloads)} summary payloads")
|
||||
return summary_payloads
|
||||
|
||||
async def get_completion(
|
||||
self, query: str, context: Optional[Any] = None, session_id: Optional[str] = None, **kwargs
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue