Fix get_by_ids to return None for missing records consistently

This commit is contained in:
yangdx 2025-10-11 13:34:26 +08:00
parent b7216ede58
commit e1e4f1b02c

View file

@ -450,23 +450,23 @@ class FaissVectorDBStorage(BaseVectorStorage):
if not ids:
return []
results = []
results: list[dict[str, Any] | None] = []
for id in ids:
record = None
fid = self._find_faiss_id_by_custom_id(id)
if fid is not None:
metadata = self._id_to_meta.get(fid, {})
metadata = self._id_to_meta.get(fid)
if metadata:
# Filter out __vector__ from metadata to avoid returning large vector data
filtered_metadata = {
k: v for k, v in metadata.items() if k != "__vector__"
}
results.append(
{
**filtered_metadata,
"id": metadata.get("__id__"),
"created_at": metadata.get("__created_at__"),
}
)
record = {
**filtered_metadata,
"id": metadata.get("__id__"),
"created_at": metadata.get("__created_at__"),
}
results.append(record)
return results