Fix created_at problem for Qdrant vector db
This commit is contained in:
@@ -88,9 +88,14 @@ class QdrantVectorDBStorage(BaseVectorStorage):
|
|||||||
logger.info(f"Inserting {len(data)} to {self.namespace}")
|
logger.info(f"Inserting {len(data)} to {self.namespace}")
|
||||||
if not data:
|
if not data:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
import time
|
||||||
|
current_time = int(time.time())
|
||||||
|
|
||||||
list_data = [
|
list_data = [
|
||||||
{
|
{
|
||||||
"id": k,
|
"id": k,
|
||||||
|
"created_at": current_time,
|
||||||
**{k1: v1 for k1, v1 in v.items() if k1 in self.meta_fields},
|
**{k1: v1 for k1, v1 in v.items() if k1 in self.meta_fields},
|
||||||
}
|
}
|
||||||
for k, v in data.items()
|
for k, v in data.items()
|
||||||
@@ -137,7 +142,14 @@ class QdrantVectorDBStorage(BaseVectorStorage):
|
|||||||
|
|
||||||
logger.debug(f"query result: {results}")
|
logger.debug(f"query result: {results}")
|
||||||
|
|
||||||
return [{**dp.payload, "distance": dp.score} for dp in results]
|
return [
|
||||||
|
{
|
||||||
|
**dp.payload,
|
||||||
|
"distance": dp.score,
|
||||||
|
"created_at": dp.payload.get("created_at")
|
||||||
|
}
|
||||||
|
for dp in results
|
||||||
|
]
|
||||||
|
|
||||||
async def index_done_callback(self) -> None:
|
async def index_done_callback(self) -> None:
|
||||||
# Qdrant handles persistence automatically
|
# Qdrant handles persistence automatically
|
||||||
@@ -298,8 +310,13 @@ class QdrantVectorDBStorage(BaseVectorStorage):
|
|||||||
|
|
||||||
if not result:
|
if not result:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
return result[0].payload
|
# Ensure the result contains created_at field
|
||||||
|
payload = result[0].payload
|
||||||
|
if "created_at" not in payload:
|
||||||
|
payload["created_at"] = None
|
||||||
|
|
||||||
|
return payload
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Error retrieving vector data for ID {id}: {e}")
|
logger.error(f"Error retrieving vector data for ID {id}: {e}")
|
||||||
return None
|
return None
|
||||||
@@ -326,8 +343,16 @@ class QdrantVectorDBStorage(BaseVectorStorage):
|
|||||||
ids=qdrant_ids,
|
ids=qdrant_ids,
|
||||||
with_payload=True,
|
with_payload=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
return [point.payload for point in results]
|
# Ensure each result contains created_at field
|
||||||
|
payloads = []
|
||||||
|
for point in results:
|
||||||
|
payload = point.payload
|
||||||
|
if "created_at" not in payload:
|
||||||
|
payload["created_at"] = None
|
||||||
|
payloads.append(payload)
|
||||||
|
|
||||||
|
return payloads
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Error retrieving vector data for IDs {ids}: {e}")
|
logger.error(f"Error retrieving vector data for IDs {ids}: {e}")
|
||||||
return []
|
return []
|
||||||
|
Reference in New Issue
Block a user