fix: Update metadata type handling in KnowledgeStorage

Co-Authored-By: Joe Moura <joao@crewai.com>
This commit is contained in:
Devin AI
2025-02-09 19:44:22 +00:00
parent 86844ff3df
commit c149b75874

View File

@@ -154,13 +154,15 @@ class KnowledgeStorage(BaseKnowledgeStorage):
filtered_ids.append(doc_id)
# If we have no metadata at all, set it to None
final_metadata: Optional[List[Dict[str, Union[str, int, float, bool]]]] = (
None if all(m is None for m in filtered_metadata) else [
{k: v for k, v in m.items() if isinstance(v, (str, int, float, bool))}
if m is not None else None
for m in filtered_metadata
]
)
final_metadata: Optional[List[Dict[str, Union[str, int, float, bool]]]] = None
if not all(m is None for m in filtered_metadata):
final_metadata = []
for m in filtered_metadata:
if m is not None:
filtered_m = {k: v for k, v in m.items() if isinstance(v, (str, int, float, bool))}
final_metadata.append(filtered_m)
else:
final_metadata.append({"empty": True})
self.collection.upsert(
documents=filtered_docs,