fix: serialize UUID in pgvector data point payload
This commit is contained in:
parent
758698a35b
commit
897bbac699
2 changed files with 8 additions and 5 deletions
|
|
@ -8,7 +8,7 @@ from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker
|
|||
|
||||
from cognee.infrastructure.engine import DataPoint
|
||||
|
||||
from .serialize_datetime import serialize_datetime
|
||||
from .serialize_data import serialize_data
|
||||
from ..models.ScoredResult import ScoredResult
|
||||
from ..vector_db_interface import VectorDBInterface
|
||||
from ..embeddings.EmbeddingEngine import EmbeddingEngine
|
||||
|
|
@ -113,7 +113,7 @@ class PGVectorAdapter(SQLAlchemyAdapter, VectorDBInterface):
|
|||
PGVectorDataPoint(
|
||||
id=data_point.id,
|
||||
vector=data_vectors[data_index],
|
||||
payload=serialize_datetime(data_point.model_dump()),
|
||||
payload=serialize_data(data_point.model_dump()),
|
||||
)
|
||||
for (data_index, data_point) in enumerate(data_points)
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,12 +1,15 @@
|
|||
from datetime import datetime
|
||||
from uuid import UUID
|
||||
|
||||
def serialize_datetime(data):
|
||||
def serialize_data(data):
|
||||
"""Recursively convert datetime objects in dictionaries/lists to ISO format."""
|
||||
if isinstance(data, dict):
|
||||
return {key: serialize_datetime(value) for key, value in data.items()}
|
||||
return {key: serialize_data(value) for key, value in data.items()}
|
||||
elif isinstance(data, list):
|
||||
return [serialize_datetime(item) for item in data]
|
||||
return [serialize_data(item) for item in data]
|
||||
elif isinstance(data, datetime):
|
||||
return data.isoformat() # Convert datetime to ISO 8601 string
|
||||
elif isinstance(data, UUID):
|
||||
return str(data)
|
||||
else:
|
||||
return data
|
||||
Loading…
Add table
Reference in a new issue